/dotfiles

My Unix dotfiles

Primary LanguageShellCreative Commons Zero v1.0 UniversalCC0-1.0

dotfiles

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.

Installation

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

Testing

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

Legal

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.