mirror of
https://github.com/lkmio/lkm.git
synced 2025-09-26 19:21:14 +08:00
59 lines
1.4 KiB
Bash
59 lines
1.4 KiB
Bash
#!/bin/bash
|
||
|
||
# 默认的 GOOS 和 GOARCH 值
|
||
DEFAULT_GOOS="linux"
|
||
DEFAULT_GOARCH="amd64"
|
||
|
||
# 初始化 GOOS 和 GOARCH 变量
|
||
GOOS=""
|
||
GOARCH=""
|
||
|
||
# 解析命令行参数
|
||
while [ $# -gt 0 ]; do
|
||
case "$1" in
|
||
*=*) # 如果参数是键值对形式
|
||
key="${1%%=*}" # 提取键
|
||
value="${1#*=}" # 提取值
|
||
case "$key" in
|
||
GOOS) GOOS="$value" ;; # 如果键是 GOOS,则设置 GOOS
|
||
GOARCH) GOARCH="$value" ;; # 如果键是 GOARCH,则设置 GOARCH
|
||
*) echo "Unknown parameter: $key" ;;
|
||
esac
|
||
shift
|
||
;;
|
||
*) # 如果参数不是键值对形式
|
||
echo "Usage: $0 [GOOS=operating_system] [GOARCH=architecture]"
|
||
exit 1
|
||
;;
|
||
esac
|
||
done
|
||
|
||
# 如果没有通过命令行参数设置 GOOS,则尝试从 go env 读取
|
||
if [ -z "$GOOS" ]; then
|
||
GOOS=$(go env GOOS 2>/dev/null)
|
||
|
||
# 如果 go env 失败,则使用默认值
|
||
if [ -z "$GOOS" ]; then
|
||
GOOS="$DEFAULT_GOOS"
|
||
fi
|
||
fi
|
||
|
||
# 如果没有通过命令行参数设置 GOARCH,则尝试从 go env 读取
|
||
if [ -z "$GOARCH" ]; then
|
||
GOARCH=$(go env GOARCH 2>/dev/null)
|
||
|
||
# 如果 go env 失败,则使用默认值
|
||
if [ -z "$GOARCH" ]; then
|
||
GOARCH="$DEFAULT_GOARCH"
|
||
fi
|
||
fi
|
||
|
||
# 输出 GOOS 和 GOARCH 的值
|
||
echo "The value of GOOS is: $GOOS"
|
||
echo "The value of GOARCH is: $GOARCH"
|
||
|
||
|
||
cp ../avformat ./ -r
|
||
|
||
docker build --build-arg GOOS=$GOOS --build-arg GOARCH=$GOARCH -t lkm .
|