Files
zkldi_Tachi/Justfile-apps
T
zk b8a98b581c if it hurts to breathe (open a window) (#58)
* if it hurts to breathe (open a window)

* clocked it.

* must sleep tonight, sorry

* feat: leaderboard now shows #1 if you're #1 even in ties
2026-04-22 22:26:43 +01:00

50 lines
1.2 KiB
Plaintext

start:
#!/bin/bash
set -euo pipefail
ARGS=(server client seeds-webui)
echo "Starting: ${ARGS[@]}"
pids=()
for target in ${ARGS[@]}; do
(just "$target") &
pids+=($!)
done
trap 'echo "Stopping all..."; kill -TERM ${pids[@]}; wait' SIGINT
wait
server:
#!/bin/bash
set -euo pipefail
cd typescript/server
VERSION="${VERSION:-"$(jq -r .version package.json)"}"
COMMIT_HASH="${COMMIT_HASH:-"$(git rev-parse --short HEAD)"}"
export VERSION COMMIT_HASH
sidecar_pids=()
# Crons: Postgres-backed scheduler. Jobs: `job_queue` (SKIP LOCKED; run multiple for load).
if [[ -z "${TACHI_SERVER_NO_SIDECARS:-}" ]]; then
bun run cron-worker & sidecar_pids+=($!)
n="${TACHI_SERVER_JOB_WORKER_COUNT:-1}"
[[ "$n" =~ ^[0-9]+$ ]] && [[ "$n" -ge 1 ]] || n=1
for _ in $(seq 1 "$n"); do
bun run job-queue-worker & sidecar_pids+=($!)
done
fi
_cleanup_sidecars() {
trap - INT TERM EXIT
local s=$?
if ((${#sidecar_pids[@]})); then
kill -TERM "${sidecar_pids[@]}" 2>/dev/null || true
wait "${sidecar_pids[@]}" 2>/dev/null || true
fi
exit "$s"
}
trap _cleanup_sidecars INT TERM EXIT
bun --watch src/main.ts
client:
cd typescript/client && bun vite
seeds-webui:
cd typescript/seeds-webui && bun vite