Getting started
Install
The AiCE-Lab tap serves every tool we publish, so one tap covers envkit and
devlog both.
brew tap aice-lab/tap https://gitlab.com/aice-lab/homebrew-tap.git
brew install envkit
On Linux this also installs pass, which envkit uses as the keychain.
Create a store
The store is a private git repository holding your dotfiles. It is separate from envkit itself, and it is yours.
# on your git host, create an empty PRIVATE repo, then:
git clone git@gitlab.com:you/dotfiles.git ~/dotfiles
Point envkit at it
envkit init --store ~/dotfiles
envkit doctor
doctor should report the config and store as loadable. Run it whenever
something looks wrong — it checks the config, the manifest, the store's git
remote, and the keychain backend.
Track your first file
envkit add .zshrc
envkit status
status shows every tracked file as in-sync, differs, missing-local,
missing-store or other-os.
Back it up
envkit backup
cd ~/dotfiles && git push
envkit copies the tracked files into the store. By default it does not commit or push — the store is a normal git repository and stays under your control. If you want it to do the whole thing:
envkit backup --force-push -m "laptop dotfiles"
That fetches, rebases, commits and pushes. Both forms take --dry-run if you
want to see what would happen first.
Restore on another machine
brew tap aice-lab/tap https://gitlab.com/aice-lab/homebrew-tap.git
brew install envkit
git clone git@gitlab.com:you/dotfiles.git ~/dotfiles
envkit init --store ~/dotfiles
envkit load
load will not overwrite a locally-changed file without --force, and every
overwrite is backed up to ~/.envkit-backups/ first.
One thing load does not restore: your secrets. The keychain is per-machine.
See Secrets for how to move those across.
envkit doctor --secrets # which indexed keys have no value on this machine