These are my hopelessly overengineered Unix dotfiles. You definitely don't want to use them -- that'd be like using my toothbrush -- but you might find a useful tidbit somewhere in the bristles. End analogy.
In theory they're portable, but in practice they're only field-tested on Mac OS.
Intended reader: A future me who has suffered tragic memory loss.
Installation should work on any system that conforms to
POSIX.1-2017 and includes make(1)
. It is known to
work with GNU Make 3.81, GNU Bash 3.2.57, and
GNU M4 1.4.6.
Invoke make(1)
from the project root or use the nonstandard -C
option to achieve the moral equivalent.
-
Install/uninstall all files:
make install
make uninstall
-
Install/uninstall files from specific modules:
make git-install gnupg-install zsh-install
make git-uninstall gnupg-uninstall zsh-uninstall
Files are always installed to $HOME
. To use a directory other than
the user's home directory (e.g., for testing), override HOME
.
HOME=/tmp/dotfiles_test make install
The build system uses m4
by default. If that is unusable, override
M4
as necessary.
make M4=gm4 install
Intended reader: A future me who is trying to be responsible for once.
Some (but not all) modules provide best-effort sanity checks. These are not particularly rigorous, so don't take passing results too seriously.
Invoke make(1)
from the project root or use the nonstandard -C
option to achieve the moral equivalent.
-
Run all tests:
make check
-
Run tests from specific modules:
make git-check gnupg-check zsh-check
The tests use nonstandard tools, which are listed in the makefile. If any of the defaults are unsuitable, override them as necessary.
make GPG=gpg2 SHELLCHECK=/opt/local/bin/shellcheck gnupg-check
To the extent possible under law, the author has dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is published from the United States of America and distributed without any warranty.
Refer to install-sh
for its separate licensing terms.