summaryrefslogtreecommitdiff
path: root/forge/script/publish-sotd.sh
blob: 09248b42ef4d509756bccbd25bd8032a7223a12c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env bash
set -euo pipefail

ROOT="$HOME/dox/st33v.com"
OUT="$ROOT/forge/out"
SOTD="$ROOT/sotd"

log() { printf '[sotd-publish] %s\n' "$*" >&2; }
die() { log "$*"; exit 1; }

publish_marker="$OUT/PUBLISH"
[[ -f "$publish_marker" ]] || die "No publish marker: $publish_marker"

# mkdir -p "$SOTD"

# Find candidate release directories in OUT (ignore marker files)
release_dirs=()
for d in "$OUT"/*; do
  [[ -d "$d" ]] || continue
  release_dirs+=( "$d" )
done

[[ ${#release_dirs[@]} -eq 1 ]] || die "Expected exactly 1 release dir in $OUT, found ${#release_dirs[@]}"

rel="${release_dirs[0]}"

[[ -f "$rel/release.eno" ]] || die "Missing release.eno in $(basename "$rel")"

shopt -s nullglob
wav_files=( "$rel"/*.wav )
shopt -u nullglob
(( ${#wav_files[@]} > 0 )) || die "Missing .wav in $(basename "$rel")"

dest="$SOTD/$(basename "$rel")"
[[ ! -e "$dest" ]] || die "Destination already exists: $dest"

mv "$rel" "$dest"
log "Published: $dest"

# Cleanup markers after successful publish
rm -f "$OUT/PUBLISH" "$OUT/BUILT"