Sheldon makes it easy for you to manage your .dotfiles and configs across all your OS X / linux devices.
The video above demonstrates adding a config file to Sheldon (
sheldon learn) and recalling this config (
sheldon recall) on another host.
Check out my 5 minute demo video to see more of Sheldon in action.
- Ruby 1.9.3 or above.
ruby-devpackages on linux systems
gem install sheldon
sheldon setup ~/Dropbox/sheldonto tell Sheldon where your existing data directory resides, or otherwise where a new data directory should be established.
- Sync your data directory across all your different hosts using your preferred method (Dropbox, Google Drive, Git), so Sheldon's knowledge is available everywhere.
How It Works
Add files/folders to Sheldon (sheldon learn)
Teach Sheldon about new files or directories using the
sheldon learn ~/.gitconfig Recall Cue For File/Folder: my git config
Sheldon will move the original file/directory into his data directory and symlink the file/directory back to its original location.
ls -al ~ | grep .gitconfig .gitconfig -> /Users/dave/Dropbox/sheldon/my git config/.gitconfig
Recall your files on other machines (sheldon recall)
recall command will symlink the file from the data directory to its correct location on any filesystem (even under different home directories):
sheldon recall "my git config" ls -al ~ | grep .gitconfig .gitconfig -> /home/vagrant/Dropbox/sheldon/my git config/.gitconfig
-i flag to Sheldon's
recall command for interactive mode:
sheldon recall -i Recall my git config (Y/N): Y Recall my ZSH config (Y/N): Y
Open Your Configs In A Flash (sheldon open)
Want to quickly tweak that config file but can't remember where it resides on your system? No worries, Sheldon's got your back:
sheldon open "my git config" # Your ~/.gitconfig will be opened in your $EDITOR
- Fork it ( https://github.com/[your-github-username]/sheldon/fork )
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Make sure you haven't broken anything
bundle exec rspec
- Add your own specs for your new feature
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request