Some checks failed
Cache: Publish Nix / Publish Nix Cache (push) Waiting to run
Build Rust / Cargo Test (push) Successful in 4m14s
Build Site / Next.js Build (push) Failing after 6s
Infra: OpenTofu / OpenTofu (grafana) (push) Successful in 5s
Lint Governance / BEP Metadata (push) Successful in 0s
Build: Android / Android Rust Core Stub (push) Failing after 23s
60 lines
1.6 KiB
Bash
Executable file
60 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if command -v spacectl >/dev/null 2>&1; then
|
|
spacectl version || true
|
|
exit 0
|
|
fi
|
|
|
|
if ! command -v curl >/dev/null 2>&1; then
|
|
echo "::error ::curl is required to install spacectl" >&2
|
|
exit 1
|
|
fi
|
|
if ! command -v tar >/dev/null 2>&1; then
|
|
echo "::error ::tar is required to install spacectl" >&2
|
|
exit 1
|
|
fi
|
|
|
|
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
|
arch="$(uname -m)"
|
|
case "$arch" in
|
|
x86_64|amd64) arch="amd64" ;;
|
|
aarch64|arm64) arch="arm64" ;;
|
|
*)
|
|
echo "::error ::Unsupported arch for spacectl: ${arch}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [[ "$os" != "linux" && "$os" != "darwin" ]]; then
|
|
echo "::error ::Unsupported OS for spacectl: ${os}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
version="${SPACECTL_VERSION:-v0.5.0}"
|
|
version_num="${version#v}"
|
|
asset="spacectl_${version_num}_${os}_${arch}.tar.gz"
|
|
url="https://github.com/namespacelabs/spacectl/releases/download/${version}/${asset}"
|
|
tmp_dir="${RUNNER_TEMP:-${TMPDIR:-/tmp}}/burrow-spacectl.$$"
|
|
install_dir="${RUNNER_TEMP:-${TMPDIR:-/tmp}}/spacectl-bin"
|
|
mkdir -p "$tmp_dir" "$install_dir"
|
|
trap 'rm -rf "$tmp_dir"' EXIT
|
|
|
|
curl -fsSL -o "${tmp_dir}/${asset}" "$url"
|
|
tar -xzf "${tmp_dir}/${asset}" -C "$tmp_dir"
|
|
|
|
bin="${tmp_dir}/spacectl"
|
|
if [[ ! -x "$bin" ]]; then
|
|
bin="$(find "$tmp_dir" -maxdepth 3 -type f -name spacectl -perm -111 | head -n1 || true)"
|
|
fi
|
|
if [[ -z "${bin}" || ! -x "${bin}" ]]; then
|
|
echo "::error ::Failed to locate spacectl binary in ${asset}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
install -m 0755 "$bin" "${install_dir}/spacectl"
|
|
if [[ -n "${GITHUB_PATH:-}" ]]; then
|
|
echo "${install_dir}" >> "${GITHUB_PATH}"
|
|
fi
|
|
export PATH="${install_dir}:$PATH"
|
|
spacectl version || true
|