Clone and run. To update configuration, pull and run. Changes will prompt you.
git clone https://github.com/thekevjames/dotsystem.git
cd ./dotsystem
./sync [--force] [--skip-packages]
If you're provisioning a new machine from scratch, there's some extra steps
that have to be done outside of ./sync
to make your machine entirely
bootstrap-able:
# OSX only: disable SIP by booting into recovery mode (intel: hold cmd-r on boot, m1: hold power button)
csrutil disable
# clone the dotsystem repo and do the initial sync
git clone https://github.com/thekevjames/dotsystem.git ~/src/personal/dotsystem
cd ~/src/personal/dotsystem
./sync --force
When sunsetting a machine, there's not much that needs to be done:
# check for anything which needs backing up
./discover
# check for unpushed branches
cd ~/src/*
git-wips
# invalidate your ssh key (https://github.com/settings/keys)
gh ssh-key delete $(hostname)
# nuke your homedir
sudo rm -Prf ~
I am a huge fan of the XDG Base Directory Spec. Unfortunately, many apps don't follow that spec unless they're coerced into it via env vars, CLI flags, etc. Some don't support it env then.
I generally go through and try to keep things as clean as possible.
xdg-ninja is a fantastic tool for this and has a great database of fixes.
The following are some extra fixes that I worked out before coming across
xdg-ninja
... at some point, I'll open some PRs and move 'em over.
- arc. Support with
--arcrc-file
flag. - cpan. Partial support with
-j
flag and setting values in yourConfig.pm
to XDG-compliant ones. - gmailctl. Support with
--config
flag. - helm. Support by setting
$HELM_HOME
. - irb. Partial support by setting
$IRBRC
. - jira. Partial support by setting
$HOME
, which frankly I'm not sure counts. - kubectl. Support by setting
$KUBECONFIG
and$KUBECACHEDIR
- theano. Support by setting
$THEANORC
and includingbase_compiledir
in$THEANO_FLAGS
.
Besides the ones xdg-ninja
knows about, I'm also tracking:
- colima (
~/.colima
). Broken on OSX. - lima (
~/.lima
).