Initial commit: AetherForge Linux (forge-mesh) v0.1.0-dev
Some checks failed
Test / test (push) Has been cancelled
Some checks failed
Test / test (push) Has been cancelled
This commit is contained in:
84
scripts/pack-usb.sh
Executable file
84
scripts/pack-usb.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build a portable USB tarball: LAUNCH.sh, data template, README, optional binaries.
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
OUT_DIR="${1:-$ROOT/dist}"
|
||||
STAMP="$(date -u +%Y%m%d)"
|
||||
PKG_NAME="forge-mesh-portable-${STAMP}"
|
||||
STAGE="$OUT_DIR/$PKG_NAME"
|
||||
ARCHIVE="$OUT_DIR/${PKG_NAME}.tar.gz"
|
||||
|
||||
echo "==> Staging portable deck at $STAGE"
|
||||
rm -rf "$STAGE"
|
||||
mkdir -p "$STAGE"/{bin,data,scripts}
|
||||
|
||||
cp scripts/LAUNCH.sh "$STAGE/scripts/LAUNCH.sh"
|
||||
chmod +x "$STAGE/scripts/LAUNCH.sh"
|
||||
ln -sf scripts/LAUNCH.sh "$STAGE/LAUNCH.sh"
|
||||
|
||||
if [[ -f data/config.json ]]; then
|
||||
cp data/config.json "$STAGE/data/config.json"
|
||||
else
|
||||
cat >"$STAGE/data/config.json" <<'EOF'
|
||||
{
|
||||
"listen_addr": ":8989",
|
||||
"data_dir": "./data",
|
||||
"database_path": "./data/forge-mesh.db",
|
||||
"auth": {
|
||||
"basic_username": "admin",
|
||||
"basic_password": "changeme",
|
||||
"fleet_secret": "change-me-fleet-secret"
|
||||
},
|
||||
"wallet_policy": {
|
||||
"default_wallet": "",
|
||||
"currency": "XMR"
|
||||
},
|
||||
"stratum": {
|
||||
"xmr_listen": ":3333",
|
||||
"rvn_listen": ":3388",
|
||||
"upstream_xmr": "",
|
||||
"upstream_rvn": ""
|
||||
},
|
||||
"forge": {
|
||||
"signing_key_path": "./data/signing.key",
|
||||
"artifacts_dir": "./data/artifacts"
|
||||
},
|
||||
"court": {
|
||||
"ollama_url": "http://127.0.0.1:11434",
|
||||
"enabled": false
|
||||
}
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Optional: include cloudflared token placeholder (empty = no tunnel until operator fills in).
|
||||
touch "$STAGE/data/cloudflared-token.txt.example"
|
||||
cat >"$STAGE/data/cloudflared-token.txt.example" <<'EOF'
|
||||
# Paste your Cloudflare Tunnel token on a single line, then rename to cloudflared-token.txt
|
||||
# Or set AF_TUNNEL_TOKEN in the environment before running LAUNCH.sh
|
||||
EOF
|
||||
|
||||
cp scripts/README-USB.md "$STAGE/README.md"
|
||||
|
||||
if [[ -x bin/forge-mesh-server ]]; then
|
||||
cp bin/forge-mesh-server "$STAGE/bin/forge-mesh-server"
|
||||
echo " included bin/forge-mesh-server"
|
||||
else
|
||||
echo " WARN: bin/forge-mesh-server missing — run 'make server' before packing for a self-contained bundle"
|
||||
fi
|
||||
|
||||
if [[ -x bin/cloudflared ]]; then
|
||||
cp bin/cloudflared "$STAGE/bin/cloudflared"
|
||||
echo " included bin/cloudflared"
|
||||
fi
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
tar -C "$OUT_DIR" -czf "$ARCHIVE" "$PKG_NAME"
|
||||
rm -rf "$STAGE"
|
||||
|
||||
echo "==> Created $ARCHIVE"
|
||||
echo " Extract anywhere, edit data/config.json, optionally data/cloudflared-token.txt, then:"
|
||||
echo " ./LAUNCH.sh"
|
||||
Reference in New Issue
Block a user