Files
psf-memo/swarm
T

30 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MAIN_BRANCH="${SWARMFORGE_SCRIPTS_BRANCH:-main}"
ARCHIVE_URL="${SWARMFORGE_SCRIPTS_URL:-https://github.com/unclebob/swarm-forge/archive/refs/heads/${MAIN_BRANCH}.tar.gz}"
TMP_DIR=""
cleanup() {
if [[ -n "$TMP_DIR" ]]; then
rm -rf "$TMP_DIR"
fi
}
trap cleanup EXIT
if [[ ! -d "$SCRIPT_DIR/swarmforge/scripts" || ! -d "$SCRIPT_DIR/swarmforge/scripts/shared-articles" ]]; then
TMP_DIR="$(mktemp -d)"
mkdir -p "$SCRIPT_DIR/swarmforge"
curl -L "$ARCHIVE_URL" | tar -xz --strip-components=1 -C "$TMP_DIR"
if [[ ! -d "$SCRIPT_DIR/swarmforge/scripts" ]]; then
cp -R "$TMP_DIR/swarmforge/scripts" "$SCRIPT_DIR/swarmforge/scripts"
fi
if [[ -d "$TMP_DIR/swarmforge/constitution/articles" ]]; then
mkdir -p "$SCRIPT_DIR/swarmforge/scripts/shared-articles"
cp -R "$TMP_DIR/swarmforge/constitution/articles/." "$SCRIPT_DIR/swarmforge/scripts/shared-articles/"
fi
fi
exec "$SCRIPT_DIR/swarmforge/scripts/swarmforge.sh" "$@"