My dot files and a tooling to deploy them to various OS's
Find a file
2017-06-04 17:03:47 -07:00
.bundle Reworked to use Ruby since its needed for Puppet 2017-05-07 09:01:12 -07:00
bin All functions of 'bundle exec rake dots' now work 2017-06-04 17:03:47 -07:00
copy Round 1 of files 2017-05-06 01:10:56 -07:00
link got linking working 2017-06-03 21:51:25 -07:00
puppet/production All functions of 'bundle exec rake dots' now work 2017-06-04 17:03:47 -07:00
.gitignore Reworked to use Ruby since its needed for Puppet 2017-05-07 09:01:12 -07:00
.puppet-lint.rc Tests work better when a Rakefile is present... 2017-05-07 09:09:25 -07:00
.rspec Tests work better when a Rakefile is present... 2017-05-07 09:09:25 -07:00
.rubocop.yml More testing 2017-05-07 16:57:16 -07:00
.ruby-version Reworked to use Ruby since its needed for Puppet 2017-05-07 09:01:12 -07:00
.travis.yml More testing updates 2017-05-07 09:16:57 -07:00
Gemfile Updated gems 2017-06-04 16:57:53 -07:00
Gemfile.lock Updated gems 2017-06-04 16:57:53 -07:00
LICENSE Initial commit 2017-05-05 22:38:42 -07:00
r10k.yaml Reworked to use Ruby since its needed for Puppet 2017-05-07 09:01:12 -07:00
Rakefile Making things work... 2017-06-03 11:10:10 -07:00
README.md Making things work... 2017-06-03 11:10:10 -07:00
Vagrantfile More testing 2017-05-07 16:57:16 -07:00

dots

My dot files and a tool to deploy them to various OS's

The Plan

  • files in link/ get symlinked to ~/.{filename}
  • files in copy/ get copied to ~/.{filename}
    • this process should default to not clobbering existing files
  • bin/dots.rb is what users will interact with
    • it should bootstrap based on the OS it is being run on
    • it should run Puppet and associated tools such as r10k via bundler
    • it should not utilize Git submodules; it should instead use vcsrepo
      • the destination of each repo may well need to be added to the parent's .gitignore
    • it should configure iTerm2 on Mac
    • it should configure Atom on all platforms
    • it should offer a choice to skip steps related to GUI programs
    • it should permit host-specific settings / options
      • this will likely be done via entries in a hiera node file
  • create a Docker image with all tools preinstaleld and set to mount the current user's home directory as a volume.
    • use gosu so ownership is correct.
      • this may not work on Windows...

Notes thus far

  1. Install Homebrew
  2. Install ruby >= 2.0 (testing with 2.4.1)
  3. Install bundler
  4. Install cmake and pkg-config
git clone git@github.com:genebean/dots.git ~/.dotfiles
cd ~/.dotfiles
bin/bootstrap.sh
This script takes care of getting dots ready to use
Enter the number of the task you want to perform:
1) Mac setup
2) EL setup
3) Quit
Task:

Running Puppet

# Any of these will work:
bundle exec rake dots:run_puppet
bundle exec rake dots:run_puppet_noop
bundle exec puppet apply --environmentpath ~/.dotfiles/puppet ~/.dotfiles/puppet/production/manifests/site.pp

Installed Homebrew packages

To see what has been installed (not the deps) run brew leaves

Packages to install on Mac's

Vundle & Vim

Install via Puppet:

  1. link vimrc
  2. vcsrepo: https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  3. exec vim +PluginInstall +qall

Powerline

brew install coreutils python socat tmux
pip install psutil powerline-status
git clone https://github.com/powerline/fonts.git ~/repos/powerline-fonts
cd ~/repos/powerline-fonts
./install.sh
Thoughts on installing with Puppet:
  • install packages using a provider for homebrew
  • install packages using the pip provider
  • use vcsrepo to clone the fonts
  • create a refresh-only exec that runs the install script
  • add a notify to the vcsrepo resource that triggers the exec
    • this will also take care of bringing in new fonts or updates