5307e4d35f8bd75ab19f3ce7191c83769f901e11
homesick
Your home directory is your castle. Don't leave your dotfiles behind.
This repository now contains a Go implementation of Homesick. A dotfiles repository is called a castle and should contain a home/ directory with files to link into your $HOME.
Build
Build with just:
just go-build
Or directly with Go:
go build -o dist/gosick ./cmd/homesick
Commands
Implemented commands:
clone URI [CASTLE_NAME]listshow_path [CASTLE]status [CASTLE]diff [CASTLE]link [CASTLE]unlink [CASTLE]track FILE [CASTLE]pull [--all|CASTLE]push [CASTLE]commit -m MESSAGE [CASTLE]destroy [CASTLE]cd [CASTLE]open [CASTLE]generate PATHrc [--force] [CASTLE]version
rc behavior
- Runs executable scripts in
<castle>/.homesick.d/in lexicographic order. - Executes scripts with the castle root as the current working directory.
- Forwards script stdout/stderr to command output.
- If
<castle>/.homesickrcexists,--forceis required before legacy Ruby compatibility hooks are run. - If
<castle>/.homesickrcexists and<castle>/.homesick.d/parity.rbdoes not, generatesparity.rbbefore execution. - Never overwrites an existing
parity.rbwrapper.
exec behavior
exec CASTLE COMMAND...runs the shell command inside the target castle root.exec_all COMMAND...runs the same shell command inside each cloned castle root in sorted order.
Outstanding Feature Checklist
Command parity:
pullpushcommitdestroycdopenexecexec_allgenerate
Historical flag/behavior parity:
pull --allrc --force- Evaluate whether global
pretend/quietmodes should be restored
Behavior Suite
The repository includes a Docker-based behavior suite that validates filesystem and git outcomes for the implemented commands.
Run behavior suite:
just behavior
Verbose behavior suite output:
just behavior-verbose
Testing
Run all Go tests:
just go-test
License
See LICENSE.
Languages
Go
86.3%
Shell
12.8%
Just
0.5%
Dockerfile
0.4%