Initial skills documentation — 25 categories, all SKILL.md + references + scripts
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Live File Migration Pattern
|
||||
|
||||
When reorganizing, migrating, or archiving active infrastructure files (like scripts, documents, markdown notes, or configurations) on a live server, moving the file abruptly can break cron jobs, hardcoded paths in scripts, references in other notes, or user habits.
|
||||
|
||||
Instead of a simple `mv`, use the **Copy-Remove-Symlink** pattern to safely migrate files while keeping the old path functional.
|
||||
|
||||
## The Pattern
|
||||
|
||||
```bash
|
||||
migrate_file() {
|
||||
src="$1"
|
||||
dest_dir="$2"
|
||||
|
||||
# 1. Ensure source exists
|
||||
if [ -f "$src" ]; then
|
||||
filename=$(basename "$src")
|
||||
dest_path="${dest_dir}/${filename}"
|
||||
|
||||
# 2. Copy to new destination
|
||||
cp "$src" "$dest_path"
|
||||
|
||||
# 3. Remove original
|
||||
rm "$src"
|
||||
|
||||
# 4. Create a symlink at the original location pointing to the new destination
|
||||
ln -s "$dest_path" "$src"
|
||||
|
||||
echo "Migrated $src -> $dest_path"
|
||||
else
|
||||
echo "File not found: $src"
|
||||
fi
|
||||
}
|
||||
|
||||
# Example usage:
|
||||
mkdir -p /root/projects/itpp-infra/backups
|
||||
migrate_file "/root/.hermes/references/backup-policy.md" "/root/projects/itpp-infra/backups"
|
||||
```
|
||||
|
||||
### Why this works
|
||||
1. Existing scripts/references pointing to the old path follow the symlink transparently.
|
||||
2. The file is physically relocated to the new taxonomic structure.
|
||||
3. Over time, references can be updated to the new path, and the symlinks eventually cleaned up when safe.
|
||||
|
||||
Use this whenever the user asks to "move existing docs", "reorganize folder X", or "migrate configurations" to prevent silent breakages in the background infrastructure.
|
||||
Reference in New Issue
Block a user