#!/usr/bin/env bash # Compila o CLI para uma plataforma e empacota: guara--.tar.gz # com um .sha256 ao lado. # # scripts/package-cli.sh v1.3.2 linux-x86_64 x86_64-unknown-linux-gnu # # Plataformas: linux-x86_64 e linux-aarch64. O alvo diferente da máquina de # build usa o linker cruzado correspondente (gcc-x86-64-linux-gnu). Escreve os # arquivos na raiz do repositório e imprime os nomes. set -euo pipefail cd "$(dirname "$0")/.." tag=${1:?uso: package-cli.sh } platform=${2:?uso: package-cli.sh } target=${3:?uso: package-cli.sh } if [ "$target" = x86_64-unknown-linux-gnu ] && [ "$(uname -m)" != x86_64 ]; then export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc export CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc fi rustup target add "$target" >/dev/null 2>&1 || true cargo build --release --locked -p guara-cli --target "$target" name="guara-${tag}-${platform}" rm -rf "$name"; mkdir "$name" cp "${CARGO_TARGET_DIR:-target}/${target}/release/guara" "$name/" cp README.md LICENSE-MIT LICENSE-APACHE "$name/" tar czf "$name.tar.gz" "$name" asset="$name.tar.gz" rm -rf "$name" sha256sum "$asset" > "$asset.sha256" echo "$asset" echo "$asset.sha256"