#!/usr/bin/env bash # Кросс-компилирует пример внешнего модуля hello под linux/amd64 и # linux/arm64 и кладёт результат в modules.d/hello/ рядом с manifest.json. # Тот же паттерн (GOOS/GOARCH + go build) применим к любому другому # внешнему модулю — имя бинарника обязано быть --, # это соглашение, по которому 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}"