Sheldon
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.
Requirements:
- Ruby 1.9.3 or above.
- The
build-essential
andruby-dev
packages on linux systems
Installation:
gem install sheldon
-
sheldon setup ~/Dropbox/sheldon
to 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 learn
command:
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)
Sheldon's 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
Pass the -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
Contributing
- 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
License
See LICENSE