2016-03-03 08:03:47 -08:00
|
|
|
# Henrik's dotfiles
|
2016-03-22 15:20:13 -07:00
|
|
|
[![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
|
2013-03-01 01:47:00 -08:00
|
|
|
|
2016-11-09 04:38:26 -08:00
|
|
|
<img src="http://i.giphy.com/ZHlGzvZb130nm.gif" align="right" />
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
My dotfiles. Fuel for my madness. Designed for MacOS, Arch Linux and
|
|
|
|
the various debian-based boxes I frequently ssh into.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
It is organized into topics, some with their own READMEs. Check them out for
|
|
|
|
more targeted information. The `./boostrap` script is used to install and update
|
|
|
|
them.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
## Bootstrap
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
`bootstrap` is my idempotent dotfile deployment script.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
e.g. `./bootstrap os/arch shell/{zsh,tmux} dev/python`
|
2016-11-14 17:20:36 -08:00
|
|
|
|
|
|
|
```
|
2016-12-23 15:21:26 -08:00
|
|
|
Usage: bootstrap [-iuldynr] [topic1[ topic2[ ...]]]
|
2016-11-14 17:20:36 -08:00
|
|
|
|
|
|
|
Options:
|
|
|
|
-d Do a dry run (only output commands, no changes)
|
|
|
|
-i Don't run install scripts
|
|
|
|
-l Don't symlink dotfiles or bin scripts
|
|
|
|
-n Don't overwrite conflicts (no prompts
|
|
|
|
-u Don't run update scripts
|
|
|
|
-y Overwrite conflicts (no prompts)
|
2016-12-23 15:21:26 -08:00
|
|
|
-r Refresh symlinks (same as -uiy)
|
2016-12-23 17:03:28 -08:00
|
|
|
-s Server mode; only install the bare minimum (depends on topic)
|
2016-11-14 17:20:36 -08:00
|
|
|
```
|
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
Here's a simplified break down of what it does:
|
2016-11-14 17:20:36 -08:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
```bash
|
|
|
|
# 1. Symlinks topic's bin scripts to ~/.bin
|
|
|
|
ln -sfv $topic/bin/* ~/.bin/
|
2016-11-14 17:20:36 -08:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
# 2. Symlinks dotfiles to $HOME
|
|
|
|
ln -sfv $topic/.* ~/
|
|
|
|
ln -sfv $topic/.config/* ~/.config/
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
# 3. Track enabled topics in ~/.dotfiles/.enabled.d.
|
|
|
|
# 4. If topic is enabled, run its update script. Otherwise, run its install script
|
|
|
|
if [[ -e ~/.dotfiles/.enabled.d/$topic ]]; then
|
|
|
|
$topic/update
|
|
|
|
else
|
|
|
|
ln -sfv $topic ~/.dotfiles/.enabled.d/
|
|
|
|
$topic/install
|
|
|
|
fi
|
|
|
|
```
|
2016-11-14 17:20:36 -08:00
|
|
|
|
|
|
|
## Clean
|
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
`clean` will delete broken symlinks in `$HOME`, and can "disable" all topics by removing
|
|
|
|
their symlinks in `.enabled.d/`.
|
2016-11-14 17:20:36 -08:00
|
|
|
|
|
|
|
```
|
|
|
|
Usage: clean [-du]
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-d Do a dry run (only output commands, no changes)
|
|
|
|
-u Uninstall all enabled topics
|
|
|
|
```
|
2016-03-22 15:20:13 -07:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
## Other Relevant Configs
|
2016-03-22 15:20:13 -07:00
|
|
|
|
2016-12-23 15:21:26 -08:00
|
|
|
+ [Vim](https://github.com/hlissner/.vim) (pulled in by the `editor/vim` topic)
|
|
|
|
+ [Emacs](https://github.com/hlissner/.emacs.d) (pulled in by the `editor/emacs` topic)
|