update
This commit is contained in:
parent
2602f34a2b
commit
6d70d54f44
2 changed files with 36 additions and 0 deletions
1
agent
1
agent
|
|
@ -48,6 +48,7 @@ case "$app" in
|
||||||
-v "$HOME/.config/opencode:$HOME/.config/opencode"
|
-v "$HOME/.config/opencode:$HOME/.config/opencode"
|
||||||
-v "$HOME/.local/share/opencode:$HOME/.local/share/opencode"
|
-v "$HOME/.local/share/opencode:$HOME/.local/share/opencode"
|
||||||
-v "$HOME/.local/state/opencode:$HOME/.local/state/opencode"
|
-v "$HOME/.local/state/opencode:$HOME/.local/state/opencode"
|
||||||
|
-v "$HOME/.cache:$HOME/.cache"
|
||||||
-v "$HOME/.claude:$HOME/.claude" # allow access to claude config for hacked auth
|
-v "$HOME/.claude:$HOME/.claude" # allow access to claude config for hacked auth
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
35
copy.sh
Normal file
35
copy.sh
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# usage: smart-cp SRC DST
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
src=$1
|
||||||
|
dst=$2
|
||||||
|
|
||||||
|
find "$src" -type f -print0 | while IFS= read -r -d '' f; do
|
||||||
|
rel=${f#"$src"/}
|
||||||
|
target=$dst/$rel
|
||||||
|
mkdir -p "$(dirname "$target")"
|
||||||
|
|
||||||
|
if [[ ! -e $target ]]; then
|
||||||
|
cp -p "$f" "$target"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
src_size=$(stat -c%s "$f")
|
||||||
|
dst_size=$(stat -c%s "$target")
|
||||||
|
|
||||||
|
if (( src_size == dst_size )); then
|
||||||
|
continue # same size — leave it alone
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s differs (src=%d, dst=%d) — [o]verwrite/[s]kip/[d]iff/[q]uit? ' \
|
||||||
|
"$rel" "$src_size" "$dst_size" >&2
|
||||||
|
read -r choice </dev/tty
|
||||||
|
case $choice in
|
||||||
|
o|O) cp -p "$f" "$target" ;;
|
||||||
|
s|S) ;;
|
||||||
|
d|D) diff "$target" "$f" || true; exec "$0" "$src" "$dst" ;; # crude: restart
|
||||||
|
q|Q) exit 0 ;;
|
||||||
|
*) echo "skipping" >&2 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
Loading…
Reference in a new issue