git init
This commit is contained in:
37
scripts/package-agent-release.sh
Executable file
37
scripts/package-agent-release.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
if [[ $# -ne 3 ]]; then
|
||||
printf 'Usage: %s X86_64_BINARY AARCH64_BINARY OUTPUT_DIRECTORY\n' "$0" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
AMD64_BINARY="$1"
|
||||
ARM64_BINARY="$2"
|
||||
OUTPUT_DIRECTORY="$3"
|
||||
|
||||
[[ -x "$AMD64_BINARY" ]] || { printf 'amd64 binary is not executable\n' >&2; exit 1; }
|
||||
[[ -x "$ARM64_BINARY" ]] || { printf 'arm64 binary is not executable\n' >&2; exit 1; }
|
||||
command -v sha256sum >/dev/null || { printf 'sha256sum is required\n' >&2; exit 1; }
|
||||
command -v file >/dev/null || { printf 'file is required\n' >&2; exit 1; }
|
||||
|
||||
AMD64_DESCRIPTION="$(file -b "$AMD64_BINARY")"
|
||||
ARM64_DESCRIPTION="$(file -b "$ARM64_BINARY")"
|
||||
[[ "$AMD64_DESCRIPTION" == *ELF* && "$AMD64_DESCRIPTION" == *x86-64* ]] || {
|
||||
printf 'amd64 artifact is not an x86-64 Linux ELF binary\n' >&2; exit 1;
|
||||
}
|
||||
[[ "$ARM64_DESCRIPTION" == *ELF* && ("$ARM64_DESCRIPTION" == *aarch64* || "$ARM64_DESCRIPTION" == *ARM64*) ]] || {
|
||||
printf 'arm64 artifact is not an aarch64 Linux ELF binary\n' >&2; exit 1;
|
||||
}
|
||||
install -d -m 0755 "$OUTPUT_DIRECTORY"
|
||||
install -m 0755 "$AMD64_BINARY" "$OUTPUT_DIRECTORY/vps-agent-linux-amd64"
|
||||
install -m 0755 "$ARM64_BINARY" "$OUTPUT_DIRECTORY/vps-agent-linux-arm64"
|
||||
(
|
||||
cd "$OUTPUT_DIRECTORY"
|
||||
sha256sum vps-agent-linux-amd64 vps-agent-linux-arm64 > SHA256SUMS
|
||||
if [[ -n "${VPS_AGENT_MINISIGN_SECRET_KEY:-}" ]]; then
|
||||
command -v minisign >/dev/null || { printf 'minisign is required for signing\n' >&2; exit 1; }
|
||||
minisign -Sm SHA256SUMS -s "$VPS_AGENT_MINISIGN_SECRET_KEY"
|
||||
fi
|
||||
)
|
||||
Reference in New Issue
Block a user