nitai/projects
noxstrap / src / deploy.sh
61 lines · 2.0 KB Raw
1#!/usr/bin/env bash
2set -euo pipefail
3
4SITE=/root/projects-site
5PROJ=/root/noxstrap
6OUT=$SITE/data/noxstrap
7SHOTS=${SHOTS:-/tmp/noxstrap-shots}
8
9echo "==> running the test suite"
10cd "$PROJ"
11cargo test --release
12
13echo "==> building the windows executable"
14cargo build --release --target x86_64-pc-windows-gnu -p noxstrap
15
16echo "==> staging the binary"
17mkdir -p "$OUT/files"
18rm -f "$OUT/files/"*.exe "$OUT/files/"*.zip
19cp target/x86_64-pc-windows-gnu/release/noxstrap.exe "$OUT/files/noxstrap.exe"
20
21echo "==> rendering screenshots"
22mkdir -p "$SHOTS"
23cargo run --release -q -p nox-gfx --example preview -- "$SHOTS/renderer.png"
24cargo run --release -q -p nox-text --example specimen -- "$SHOTS/text.png"
25NOX_FRAMES=90 NOX_DUMP="$SHOTS/app.png" cargo run --release -q -p noxstrap
26NOX_FRAMES=2 NOX_DUMP="$SHOTS/hover.png" NOX_POINTER=274,229 cargo run --release -q -p noxstrap
27NOX_FRAMES=3 NOX_DUMP="$SHOTS/versions.png" NOX_POINTER=84,134 NOX_PRESS=1 cargo run --release -q -p noxstrap
28NOX_FRAMES=3 NOX_DUMP="$SHOTS/mods.png" NOX_POINTER=84,164 NOX_PRESS=1 cargo run --release -q -p noxstrap
29NOX_FRAMES=3 NOX_DUMP="$SHOTS/tweaks.png" NOX_POINTER=84,194 NOX_PRESS=1 cargo run --release -q -p noxstrap
30NOX_FRAMES=3 NOX_DUMP="$SHOTS/settings.png" NOX_POINTER=84,224 NOX_PRESS=1 cargo run --release -q -p noxstrap
31mkdir -p "$OUT/shots"
32cp "$SHOTS"/*.png "$OUT/shots/"
33
34echo "==> snapshotting source"
35rm -rf "$OUT/src"
36mkdir -p "$OUT/src"
37find . \
38 -path ./target -prune -o \
39 -path ./.git -prune -o \
40 -name 'Cargo.lock' -prune -o \
41 -name '*.png' -prune -o \
42 -type f -print | while read -r file; do
43 dest="$OUT/src/${file#./}"
44 mkdir -p "$(dirname "$dest")"
45 cp "$file" "$dest"
46done
47
48echo "==> building source archive"
49cd "$OUT/src"
50zip -q -r -9 "$OUT/files/noxstrap-source.zip" .
51
52echo "==> rebuilding site"
53cd "$SITE"
54cargo build --release
55if systemctl is-active --quiet projects-site; then
56 echo "==> restarting service"
57 systemctl restart projects-site
58fi
59
60echo "done:"
61ls -la "$OUT/files"