ctf-ad-mirror-tool-rust/scripts/package-linux.sh

26 lines
1.0 KiB
Bash

#!/bin/sh
# Run from the repository root after building the musl target.
set -eu
binary=${1:-target/x86_64-unknown-linux-musl/release/mirror-tool}
out=${2:-dist/release}
readelf -h "$binary" | grep -q 'Advanced Micro Devices X86-64'
if readelf -l "$binary" | grep -q INTERP || readelf -d "$binary" | grep -q NEEDED; then
echo 'Refusing to package a dynamically linked binary.' >&2
exit 1
fi
mkdir -p "$out"
stage=$(mktemp -d)
trap 'rm -rf "$stage"' EXIT HUP INT TERM
package="$stage/mirror-tool-linux-x64"
mkdir -p "$package/docs"
cp "$binary" "$package/mirror-tool"
cp deploy/run.sh "$package/run.sh"
chmod 755 "$package/mirror-tool" "$package/run.sh"
cp mirror.example.toml "$package/"
cp deploy/QUICKSTART.md "$package/README.md"
cp docs/configuration.md docs/flag-protection.md "$package/docs/"
cp deploy/mirror-tool.service "$package/"
git rev-parse HEAD > "$package/BUILD-COMMIT"
tar -czf "$out/mirror-tool-linux-x64.tar.gz" -C "$stage" mirror-tool-linux-x64
(cd "$out" && sha256sum mirror-tool-linux-x64.tar.gz > SHA256SUMS)