diff --git a/files/dev-CLAUDE.md b/files/dev-CLAUDE.md index 6b2f150..9e3a5cd 100644 --- a/files/dev-CLAUDE.md +++ b/files/dev-CLAUDE.md @@ -26,13 +26,30 @@ PR contract in `upstream-prs/`. See the lnbits-sensei README's ## Quick commands -- `dev up [--fakewallet|--regtest]` — start the lnbits dev server. - Default `--fakewallet` is instant, no docker, good for - extension/UI/API work. -- `dev down` / `dev logs` / `dev shell` — control / inspect. -- *(planned)* `prb ` — create a PR worktree branched - from `upstream/main` under `~/dev/upstream-prs/`. -- *(planned)* `lb ` — cd shortcut into `~/dev/lnbits/`. +Installed by lnbits-sensei's dev-env module — standalone binaries plus +shell functions sourced into interactive shells: + +- `dev-env-bootstrap` — materialize bare repos + worktrees from your + declared `projects` (idempotent; `--dry-run` to preview). +- `lb ` — cd into `~/dev/lnbits/` (e.g. `lb dev`). + `g `, `ext `, `prs`, `shared`, `repos` cover + the rest of the tree. +- `prb ` — create a PR worktree branched from + `upstream/main` under `~/dev/upstream-prs/`; `prc` cleans up, `prl` + lists. +- `dev-status` — dirty + ahead/behind across every worktree. `wts` / + `wtu` sync worktrees / fetch upstream; `rebase status` shows which + forks need rebasing onto upstream. +- `regtest-start ` / `regtest-stop` — Bitcoin/Lightning + regtest stack (only when `devEnv.regtest.enable = true`; needs docker). +- `dev-deploy ` — `nixos-rebuild` against your deploy flake. + `dev-tm ` — launch a declarative tmux session. + +**Starting lnbits for iteration:** there is no `dev up` wrapper. +FakeWallet (`LNBITS_BACKEND_WALLET_CLASS=FakeWallet`) is the default +path — no docker; run lnbits directly from the worktree (`lb dev`, then +lnbits's own run command). Use `regtest-start` only when you need real +channels/payments. ## Reference docs diff --git a/files/lnbits-CLAUDE.md b/files/lnbits-CLAUDE.md index a091104..2f5d5e8 100644 --- a/files/lnbits-CLAUDE.md +++ b/files/lnbits-CLAUDE.md @@ -70,9 +70,19 @@ Full reference: `docs/lnbits-upstream-flow.md`. ## Default dev workflow +There is no `dev up` wrapper. Start lnbits directly from a worktree: + ``` -dev up # FakeWallet, instant -dev up --regtest # multi-node regtest (slower boot, real channels) +lb dev # cd ~/dev/lnbits/dev +LNBITS_BACKEND_WALLET_CLASS=FakeWallet # instant, no docker +``` + +For real channels/payments, use the regtest stack (gated on +`devEnv.regtest.enable`; needs docker): + +``` +regtest-start dev # build lnbits from ~/dev/lnbits/dev, bring the stack up +regtest-stop ``` Use **FakeWallet** for extension CRUD / UI / API work. Spin up diff --git a/modules/dev-env/scripts/pr-helpers.sh b/modules/dev-env/scripts/pr-helpers.sh index 46763d5..765cb03 100644 --- a/modules/dev-env/scripts/pr-helpers.sh +++ b/modules/dev-env/scripts/pr-helpers.sh @@ -113,8 +113,17 @@ git-pr-cleanup() { git -C "$bare_repo" worktree remove "$pr_path" echo "Deleting branch: $branch_name" - git -C "$bare_repo" branch -d "$branch_name" 2>/dev/null \ - || git -C "$bare_repo" branch -D "$branch_name" + if ! git -C "$bare_repo" branch -d "$branch_name" 2>/dev/null; then + echo " Branch '$branch_name' is not fully merged." + read -r -p " Force-delete it (unmerged commits will be lost)? [y/N] " -n 1 REPLY + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + git -C "$bare_repo" branch -D "$branch_name" + else + echo " Kept branch '$branch_name' (worktree already removed)." + return 1 + fi + fi echo "Done." } diff --git a/modules/dev-env/scripts/rebase.sh b/modules/dev-env/scripts/rebase.sh index 60078ca..c311adb 100644 --- a/modules/dev-env/scripts/rebase.sh +++ b/modules/dev-env/scripts/rebase.sh @@ -311,7 +311,7 @@ cleanup_backups() { local deleted=0 while IFS=: read -r path _; do cd "$path" || continue - git branch --list "backup/*" 2>/dev/null | while read -r branch; do + while read -r branch; do branch="$(echo "$branch" | tr -d ' *')" local bdate bdate="$(echo "$branch" | grep -oE '[0-9]{8}' | head -1)" @@ -319,7 +319,7 @@ cleanup_backups() { || { [[ -n "$bdate" ]] && [[ "$bdate" < "$cutoff" ]]; }; then git branch -D "$branch" 2>/dev/null && deleted=$((deleted + 1)) || true fi - done + done < <(git branch --list "backup/*" 2>/dev/null) done < <(find_forked_repos) success "Deleted $deleted backup branch(es)." }