jondot / dotlinker

Use dotrunner and dotlinker to build a fantastically aesthetic macOS dotfiles set up.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dotlinker

Use dotrunner and dotlinker to build a fantastically aesthetic macOS dotfiles set up.

✅ Organize by topics (folder modules), i.e. 'nodejs', 'osx', and 'python'.
✅ DAG (Directed Acyclic Graph) based runner for a powerful dependency system.
✅ No shell scripts, gunk, yuck, and hairballs required

Here's an example dotfiles repo:

~/.dotfiles
    asdf/
    brew/
      install.yml
      Brewfile
    python/
    osx/
    nodejs/
      .npmrc.symlink
      install.yml
    fonts/

And here's an example install.yml taken from the nodejs module:

script: npm i -g yarn
deps:
- asdf

Quick Start

Install:

$ pip install dotrunner dotlinker

Dry run:

$ dotlinker ~/.dotfiles ~/ --dry-run

And finally, apply (this will obviously change your system!):

$ dotrunner ~/.dotfiles ~/

Building a Dotfiles System with dotlinker

dotlinker is responsible for getting all of your configuration files from your dotfiles folder and linking them to their relevant places in the filesystem.

To see how to also install things, look at dotrunner.

This layout describes a few modules with their configuration:

fish/
  .config/
    fish/
      config.fish.symlink
npm/
  .npmrc.symlink

This system follows a few simple principles:

  • Every directory is a module
  • Any file or directory tree ending with the symlink extension will be symlinked.

Symlinking will take what ever directory path in the dotfiles folder and replicate it on top of the new root you've given dotlinker (remember: dotlinker ~/.dotfiles ~/) so:

  • ~/.dotfiles/fish/.config/fish/config.fish.symlink becomes ~/.config/fish/config.fish
  • ~/.dotfiles/npm/.npmrc.symlink becomes ~/.npmrc

Contributing

Fork, implement, add tests, pull request, get my everlasting thanks and a respectable place here :).

Thanks:

To all Contributors - you make this happen, thanks!

Copyright

Copyright (c) 2018 Dotan Nahum @jondot. See LICENSE for further details.

About

Use dotrunner and dotlinker to build a fantastically aesthetic macOS dotfiles set up.

License:BSD 2-Clause "Simplified" License


Languages

Language:Python 63.9%Language:JavaScript 33.4%Language:Makefile 2.7%