a73x

64aaf57e

no dont do that

a73x   2026-03-29 08:49

Commit message
no dont do that

README.md
Old New
@@ -0,0 +1,3 @@
1 # nono
2
3 bwrap and overlay to allow free range frolicking with fences
nono
Old New
@@ -0,0 +1,52 @@
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 STORE=$HOME/.local/share/nono
5 BASE="$(realpath "$(pwd)")"
6 SESSION_NAME=$(echo "$BASE" | tr '/' '-' | sed 's/^-//')
7 SESSION_DIR=$STORE/sessions/$SESSION_NAME
8 UPPER=$SESSION_DIR/upper
9 WORK=$SESSION_DIR/work
10
11 mkdir -p "$UPPER" "$WORK"
12
13 args=(
14 --dev-bind /dev /dev
15 --proc /proc
16 --tmpfs /tmp
17 --setenv HOME "$HOME"
18 --setenv TERM "${TERM:-xterm}"
19 )
20
21 # system (read-only)
22 for p in \
23 /opt/claude-code/bin/claude \
24 /bin \
25 /etc \
26 /run \
27 /usr \
28 /lib \
29 /lib64 \
30 "$HOME/.local/bin" \
31 "$HOME/.config" \
32 ; do
33 [[ -e "$p" ]] && args+=(--ro-bind "$p" "$p")
34 done
35
36 # user (read-write)
37 for p in \
38 "$HOME/.claude.json" \
39 "$HOME/go" \
40 "$HOME/.claude" \
41 ; do
42 [[ -e "$p" ]] && args+=(--bind "$p" "$p")
43 done
44
45 args+=(
46 --overlay-src "$BASE"
47 --overlay "$UPPER" "$WORK" "$BASE"
48 --setenv PS1 "(overlay) \w \$"
49 --chdir "$BASE"
50 )
51
52 exec bwrap "${args[@]}" "$@"