From 6d70d54f44cd1048b2b9810e6bd361f8c308f0de Mon Sep 17 00:00:00 2001 From: Jaroslaw Konik Date: Sun, 24 May 2026 17:52:24 +0200 Subject: [PATCH] update --- agent | 1 + copy.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 copy.sh diff --git a/agent b/agent index 048b4fb..1117b25 100755 --- a/agent +++ b/agent @@ -48,6 +48,7 @@ case "$app" in -v "$HOME/.config/opencode:$HOME/.config/opencode" -v "$HOME/.local/share/opencode:$HOME/.local/share/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 ) ;; diff --git a/copy.sh b/copy.sh new file mode 100644 index 0000000..ac035f8 --- /dev/null +++ b/copy.sh @@ -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 &2 ;; + esac +done