install.sh: merge PERSONAL_DIRS contents instead of wholesale replace
The previous deploy_one() did `mv $HOME/<dir> $BACKUP_DIR/<dir>` then `cp -a $YADR_DIR/<dir> $HOME/<dir>` for every entry in PERSONAL_DIRS. For dirs the repo only partially populates (notably .local — repo only tracks .local/bin/), this swept away unrelated user data: the most recent re-bootstrap moved ~/.local/share/fonts/ (Intel One Mono, Open Gorton, Roboto Mono, GALLAUDET, code128) into the timestamped backup, making them appear missing. Rework deploy logic: - deploy_file: copies one file/symlink, backing up only the conflicting destination (if any). Idempotent via paths_equivalent() so re-runs with no changes produce no output and no spurious backups. - deploy_dir: walks the repo's tree for that dir and deploys each leaf via deploy_file. Files in $HOME the repo doesn't know about are left untouched. Subdirs are mkdir'd as needed. Also: track the personal fonts at .local/share/fonts/ so they redeploy on every install, and run fc-cache -f at the end so apps see them without a logout/login. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user