netfishing-dedicated-server/scripts/package-native.sh

40 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 1 || -z "$1" ]]; then
echo "Usage: $0 VERSION" >&2
exit 2
fi
version="$1"
repository_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
dist_dir="${repository_dir}/dist"
packages_dir="${repository_dir}/packages"
package_name="netfishing-dedicated-server-${version}-linux-x86_64"
staging_dir="$(mktemp -d)"
trap 'rm -rf -- "${staging_dir}"' EXIT
for filename in NETfishingServer.x86_64 NETfishingServer.pck; do
if [[ ! -f "${dist_dir}/${filename}" ]]; then
echo "Run scripts/stage-build.sh before packaging." >&2
exit 1
fi
done
install -d "${staging_dir}/${package_name}"
install -m 0755 "${dist_dir}/NETfishingServer.x86_64" \
"${staging_dir}/${package_name}/NETfishingServer.x86_64"
install -m 0644 "${dist_dir}/NETfishingServer.pck" \
"${staging_dir}/${package_name}/NETfishingServer.pck"
install -m 0644 "${repository_dir}/config/server.cfg.example" \
"${staging_dir}/${package_name}/server.cfg"
install -m 0644 "${repository_dir}/README.md" \
"${staging_dir}/${package_name}/README.md"
mkdir -p -- "${packages_dir}"
archive="${packages_dir}/${package_name}.tar.gz"
tar --sort=name --mtime=@0 --owner=0 --group=0 --numeric-owner \
-C "${staging_dir}" -czf "${archive}" "${package_name}"
cd -- "${packages_dir}"
sha256sum "${package_name}.tar.gz" > "${package_name}.tar.gz.sha256"
echo "Created ${archive}"