小编Naf*_*Kay的帖子

Makefile中的词典/地图/查找表

我需要在Makefile中创建一个查找表/字典/映射来查找键值信息.

我一直在尝试使用ifeq语句来做同样的事情,但我的陈述似乎失败了:

# this gets the account id from the current user's ARN, you must have the AWS CLI and jq installed
AWS_ACCOUNT_ID:=$(shell aws iam get-user | jq -r '.User.Arn' | awk -F ':' '{print $$5;}')

# define a friendly account name for output
ifeq ($(AWS_ACCOUNT_ID), 123456)
AWS_ACCOUNT_FRIENDLY:=staging
endif

ifeq ($(AWS_ACCOUNT_ID), 789012)
AWS_ACCOUNT_FRIENDLY:=preprod
endif

ifeq ($(AWS_ACCOUNT_ID), 345678)
AWS_ACCOUNT_FRIENDLY:=production
endif
Run Code Online (Sandbox Code Playgroud)

它似乎只适用于第一个值123456而不适用于其他值.

有没有办法在Make中定义字典/地图,只需通过帐户ID的密钥查找帐户友好名称?

makefile gnu-make

5
推荐指数
1
解决办法
2922
查看次数

脚本状态的条件?

我有一个 SystemD 单元,用于格式化云中的文件系统。

根据systemd 单元文档,单元接受许多不同的Condition*参数来确定它们是否应该运行。我需要能够确定是否/dev/xvdb格式化为 ext4,我发现做到这一点的唯一方法是执行以下操作:

if ! blkid -t TYPE=ext4 | grep xvdb >/dev/null; then
    mkfs.ext4 /dev/xvdb
fi
Run Code Online (Sandbox Code Playgroud)

虽然我可以将此 bash 脚本放在文件系统上的某个位置,但如果 SystemD 可以执行脚本来确定服务是否应有条件启动,则看起来会更直观。

是否有解决方法,不涉及在文件系统上删除文件?

我看到的唯一两个选择是:

  1. 在文件系统上放置一个 bash 脚本,该脚本始终返回 0,并且仅在必要时进行格式化。
  2. 使用ExecStartPost,touch文件系统上的文件作为标记,然后ConditionPathExists=!/path.

有没有办法让 SystemD 调用脚本来确定它是否应该执行某个单元?

systemd

5
推荐指数
1
解决办法
2810
查看次数

Bash 脚本可以确定它是否已被获取吗?

在 Python 中,常见的习惯用法是编写如下代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def main():
    pass

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

这样做是为了如果导入而不是执行 Python 脚本,则其 main 方法将不会运行。

Bash 中有类似的习惯用法吗?

python bash

5
推荐指数
2
解决办法
989
查看次数

向stderr报告HTTP响应标头?

我已经使用curl -i http://website.com了很长时间了。很棒,它报告了响应头和信息。

我还使用了一种jq可以解析和打印JSON 的工具。我想做以下事情:

curl -i http://website.com | jq -r .
Run Code Online (Sandbox Code Playgroud)

问题是HTTP标头转发到jq

有没有一种方法可以重定向-i到标准错误?

curl

5
推荐指数
2
解决办法
134
查看次数

在单独的文件中编译带有调试符号的静态 Go 二进制文件?

我不记得在哪里看到过它,我以为是在 Datadog 或 NewRelic 或 CloudFlare 上?但我记得有人提到,使用 Golang,他们在生产中运行发布二进制文件(当然),并且在 Docker 容器中,他们还包含一个包含调试符号的单独文件,以防发生崩溃,以便能够看到发生了什么。

背景

我正在使用如下 Dockerfile 在 Docker 中构建和运行:

# do all of our docker building in one image
FROM golang:latest as build

WORKDIR /usr/src/api

COPY go.mod go.sum ./
RUN go mod download

COPY . .

# build the application with relevant flags to make it completely self-contained for a scratch container
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-s" -a -installsuffix cgo -o app

# and then copy the built binary to an …
Run Code Online (Sandbox Code Playgroud)

debugging debug-symbols go docker

5
推荐指数
1
解决办法
2584
查看次数

Get Name of Current Module in Go

I am attempting to create named loggers automatically for HTTP handlers that I'm writing, where I am passed a function (pointer).

I'm using the code mentioned in this question to get the name of a function:

package utils

import (
    "reflect"
    "runtime"
)

func GetFunctionName(fn interface{}) string {
    value := reflect.ValueOf(fn)
    ptr := value.Pointer()
    ffp := runtime.FuncForPC(ptr)

    return ffp.Name()
}
Run Code Online (Sandbox Code Playgroud)

I'm using this in my main function to try it out like so:

package main

import (
    "github.com/naftulikay/golang-webapp/experiments/functionname/long"
    "github.com/naftulikay/golang-webapp/experiments/functionname/long/nested/path"
    "github.com/naftulikay/golang-webapp/experiments/functionname/utils" …
Run Code Online (Sandbox Code Playgroud)

reflection go go-modules

5
推荐指数
2
解决办法
3983
查看次数

通过Mutagen更改APIC ID3标签中的嵌入图像类型

我有一个大型音乐库,我刚刚花了大约30个小时组织.对于某些MP3文件,我将封面艺术图像嵌入类型0(其他),我想将其更改为类型3(封面).有没有办法在Python中执行此操作,特别是在Mutagen中?

python mp3 id3 apic mutagen

4
推荐指数
1
解决办法
2530
查看次数

Django:在哪里放置全球模型?

我正在Django建立一个相当大的网站,这是我第一次使用框架做这种规模的任何事情.(我有,但是,用它在过去,所以我身边知道我的方式,我不总新手.)我有许多将整个应用程序中使用的模型类的,所以我的问题是,什么是最好的放他们的地方?

我还可以使用一些提示来了解如何构建我的项目.我不想有一些疯狂的等级制度,我想./manage.py startapp尽可能少地使用.

python django django-models

4
推荐指数
1
解决办法
2075
查看次数

如何在Android中的活动中保留视图

我正在开发一个Android应用程序,根据Twitter和Facebook应用程序,我想在我的大多数活动中维持一个顶级的排序.这是怎么做到的?我想随时保留它,因为它将为整个应用程序提供功能核心.

android

4
推荐指数
1
解决办法
1836
查看次数

在ImageView中加载图像时显示ProgressBar?

有没有办法在运行时"交换"视图?这是我的目标:我想显示一个动画的,不确定的ProgressBar视图,直到我的图像被加载.有没有办法轻松做到这一点,而不必做一堆疯狂的东西?有没有办法可以获得ProgressBar微调器动画的资源ID 并简单地重用它?

android android-layout

4
推荐指数
1
解决办法
9591
查看次数