summaryrefslogtreecommitdiffstats
path: root/scripts/publish.sh
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-30 00:17:06 +0100
committersalmonik <salmonik@tuta.io>2026-10-30 00:17:06 +0100
commit2fe76b0db5e528c47bb2730d40aad0556af9cf88 (patch)
treeb7ef0bc39ae42aafb92cccab1608505e9659f2d3 /scripts/publish.sh
parentstrip the download page to plain HTML: no CSS, sha256sum-format checksums (diff)
downloadzagan-bet-2fe76b0db5e528c47bb2730d40aad0556af9cf88.tar.gz
zagan-bet-2fe76b0db5e528c47bb2730d40aad0556af9cf88.zip
add publish script that names release artifacts from Cargo.toml and the target triple
Diffstat (limited to '')
-rwxr-xr-xscripts/publish.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/publish.sh b/scripts/publish.sh
new file mode 100755
index 0000000..d8cc77a
--- /dev/null
+++ b/scripts/publish.sh
@@ -0,0 +1,57 @@
1#!/usr/bin/env bash
2# Build the release artifacts and publish them under web/bin with the names the
3# download page expects:
4#
5# zagan-bet-client-<version>-<platform>-<arch>[.exe]
6# zagan-bet-server-<version>-<platform>-<arch>
7#
8# Cargo always writes target/<triple>/release/<bin>, so the rename happens here
9# after each build. The version comes from Cargo.toml.
10#
11# Usage:
12# ./scripts/publish.sh
13# DEST=/srv/www/bin ./scripts/publish.sh
14set -euo pipefail
15
16ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
17cd "$ROOT"
18
19VERSION=$(awk -F'"' '/^version = / { print $2; exit }' Cargo.toml)
20if [ -z "${VERSION:-}" ]; then
21 echo "could not read the version from Cargo.toml" >&2
22 exit 1
23fi
24
25DEST=${DEST:-web/bin}
26
27publish() {
28 local triple=$1 kind=$2 platform=$3 arch=$4
29 local ext=""
30 if [ "$kind" = client ] && [ "$platform" = windows ]; then
31 ext=".exe"
32 fi
33
34 local artifact="zagan-bet-$kind-$VERSION-$platform-$arch$ext"
35 local source="target/$triple/release/$kind$ext"
36
37 echo "==> $artifact"
38 if [ "$kind" = client ]; then
39 # rustls-only: never link the server's OpenSSL.
40 cargo build --release --quiet --bin client --no-default-features --target "$triple"
41 else
42 cargo build --release --quiet --bin server --target "$triple"
43 fi
44
45 mkdir -p "$DEST/$kind"
46 install -m 0755 "$source" "$DEST/$kind/$artifact"
47 echo " $DEST/$kind/$artifact ($(du -h "$DEST/$kind/$artifact" | cut -f1))"
48}
49
50publish x86_64-unknown-linux-gnu client linux x86_64
51publish i686-unknown-linux-gnu client linux i686
52publish x86_64-pc-windows-gnu client windows x86_64
53publish x86_64-unknown-linux-gnu server linux x86_64
54
55echo
56echo "published $VERSION to $DEST"
57echo "prune old versions from $DEST by hand; the page lists every file it finds."