#!/usr/bin/env bash # Compila o CLI para uma plataforma e empacota como o atualizador espera: # sabia--.tar.gz com um .sha256 ao lado. # # scripts/package-cli.sh v1.0.3 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 } case "$target" in x86_64-unknown-linux-gnu) if [ "$(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 ;; esac rustup target add "$target" >/dev/null 2>&1 || true cargo build --release --locked -p sabia-cli --target "$target" name="sabia-${tag}-${platform}" rm -rf "$name"; mkdir "$name" cp "${CARGO_TARGET_DIR:-target}/${target}/release/sabia" "$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"