Add verifiable atomic server updates
This commit is contained in:
parent
2d135acab7
commit
a68d6157be
8 changed files with 371 additions and 24 deletions
|
|
@ -7,6 +7,10 @@ if [[ $# -ne 1 || -z "$1" ]]; then
|
|||
fi
|
||||
|
||||
version="$1"
|
||||
if [[ ! "${version}" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
|
||||
echo "VERSION must contain only letters, numbers, dots, underscores, or hyphens." >&2
|
||||
exit 2
|
||||
fi
|
||||
repository_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
dist_dir="${repository_dir}/dist"
|
||||
packages_dir="${repository_dir}/packages"
|
||||
|
|
@ -14,18 +18,27 @@ 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
|
||||
for filename in NETfishingServer.x86_64 NETfishingServer.pck BUILD_INFO SHA256SUMS; do
|
||||
if [[ ! -f "${dist_dir}/${filename}" ]]; then
|
||||
echo "Run scripts/stage-build.sh before packaging." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
if ! grep -Fxq "game_version=${version}" "${dist_dir}/BUILD_INFO"; then
|
||||
echo "Staged BUILD_INFO does not match package version ${version}." >&2
|
||||
exit 1
|
||||
fi
|
||||
(cd -- "${dist_dir}" && sha256sum -c SHA256SUMS)
|
||||
|
||||
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 "${dist_dir}/BUILD_INFO" \
|
||||
"${staging_dir}/${package_name}/BUILD_INFO"
|
||||
install -m 0644 "${dist_dir}/SHA256SUMS" \
|
||||
"${staging_dir}/${package_name}/SHA256SUMS"
|
||||
install -m 0644 "${repository_dir}/config/server.cfg.example" \
|
||||
"${staging_dir}/${package_name}/server.cfg"
|
||||
install -m 0644 "${repository_dir}/README.md" \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue