nathanshelly / .files

.💙
16 stars 8 forks source link

refactor: remove `.symlink` scheme #98

Closed nathanshelly closed 4 years ago

nathanshelly commented 4 years ago

These dotfiles were originally built with ideas from holman/dotfiles. One of the ideas from these dotfiles is automatic symlinking of files ending in .symlink.

I adopted this scheme and expanded on it a few times. These expansions supported symlinking to locations beyond the home directory, selectively prepending a . to make the symlink a hidden file (or not), and more. I had a lot of fun and learned a lot about shell scripting, but ended up piling on a lot of complexity and some magic.

This PR switches from that scheme to a more explicit script where each file is symlinked individually with code essentially equivalent to:

ln -s $DOTFILES/path/to/file $HOME/path/to/target/symlink

See the full script in infra/setup/bin/symlink which has a few additional niceties like prompting a user before overwriting an existing file & offering to back up the existing file.

I did like the easy visual indication that a file was symlinked externally elsewhere if it ended in .symlink. On the whole though this change should reduce maintenance complexity, remove some of the magic around the symlinking process, and above all remove many lines of code since best code is less code.