Nest workspace under workspace/ in project backup
#9
@@ -206,8 +206,10 @@ pub async fn download_container_backup(
|
||||
// so secrets can't leak through the sanitization fallback.
|
||||
// The `--transform` nests the workspace under `workspace/` (parallel to
|
||||
// `home-claude/`) so an extracted archive has both clearly labeled instead
|
||||
// of scattering the workspace files into the extraction dir. `flags=r`
|
||||
// scopes the rewrite to member names only, leaving symlink targets intact.
|
||||
// of scattering the workspace files into the extraction dir. `flags=rh`
|
||||
// rewrites regular member names AND hardlink target names (so an intra-
|
||||
// workspace hardlink pair still resolves on extract) while leaving symlink
|
||||
// targets untouched (rewriting those would corrupt relative/absolute links).
|
||||
let script = r#"set -e
|
||||
STAGE=$(mktemp -d)
|
||||
trap 'rm -rf "$STAGE"' EXIT
|
||||
@@ -225,7 +227,7 @@ if [ -d "$HOME/.claude" ]; then
|
||||
fi
|
||||
tar czf - --ignore-failed-read \
|
||||
--exclude='*/node_modules' --exclude='*/target' \
|
||||
--transform='flags=r;s,^\./,workspace/,' \
|
||||
--transform='flags=rh;s,^\./,workspace/,' \
|
||||
-C "$TC_BACKUP_SRC" . \
|
||||
-C "$STAGE" home-claude"#;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user