Files
potatium/scripts/bootstrap_workdir.sh
T

28 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Idempotent. Called from any location; optional argument: project root.
set -Eeuo pipefail
DEFAULT_ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
ROOT=${1:-$DEFAULT_ROOT}
if [[ ! -d "$ROOT" ]]; then
echo "Project root does not exist: $ROOT" >&2; exit 1
fi
if [[ $EUID -eq 0 ]]; then echo 'Run as regular user potatium, not root.' >&2; exit 1; fi
if [[ ! -f "$ROOT/AGENTS.md" || ! -f "$ROOT/README.md" ]]; then
echo "Refusing to scaffold unrelated directory: missing AGENTS.md/README.md in $ROOT" >&2; exit 1
fi
DIRS=(
cmd/potatiumd cmd/potatium-miner cmd/potatium-cli
internal/app internal/chain internal/consensus internal/transaction
internal/crypto internal/wallet internal/mining internal/lottery
internal/registry internal/storage internal/api
web/wallet tests/integration config deploy/devnet deploy/testnet
docs/decisions assets/logo .vscode
)
for d in "${DIRS[@]}"; do
mkdir -p "$ROOT/$d"
if [[ ! -e "$ROOT/$d/.gitkeep" ]]; then : > "$ROOT/$d/.gitkeep"; fi
done
mkdir -p "$ROOT/.local-data" "$ROOT/bin"
printf 'Project directories verified in %s\n' "$ROOT"
printf 'Existing files are never replaced. Local data and bin/ are Git-ignored.\n'