23 lines
976 B
Bash
Executable file
23 lines
976 B
Bash
Executable file
#!/usr/bin/env bash
|
||
# Кросс-компилирует пример внешнего модуля hello под linux/amd64 и
|
||
# linux/arm64 и кладёт результат в modules.d/hello/ рядом с manifest.json.
|
||
# Тот же паттерн (GOOS/GOARCH + go build) применим к любому другому
|
||
# внешнему модулю — имя бинарника обязано быть <name>-<goos>-<goarch>,
|
||
# это соглашение, по которому internal/module/external его находит.
|
||
set -euo pipefail
|
||
|
||
MODULE_NAME="hello"
|
||
SRC_DIR="$(dirname "$0")"
|
||
OUT_DIR="$(dirname "$0")/../../modules.d/${MODULE_NAME}"
|
||
|
||
mkdir -p "${OUT_DIR}"
|
||
|
||
for target in "linux/amd64" "linux/arm64"; do
|
||
goos="${target%/*}"
|
||
goarch="${target#*/}"
|
||
out="${OUT_DIR}/${MODULE_NAME}-${goos}-${goarch}"
|
||
echo "сборка ${out}..."
|
||
GOOS="${goos}" GOARCH="${goarch}" go build -o "${out}" "${SRC_DIR}/main.go"
|
||
done
|
||
|
||
echo "готово: ${OUT_DIR}"
|