#!/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 )