Bashman
A Ruby gem and executable for *nix profile backup.
Usage
This gem includes the bashman
executable for managing profiles.
$ bashman -h
Usage: bashman [OPTIONS]
-a, --apply Apply saved profile
-i, --items homebrew,shell Shell components to apply or save. Defaults to 'all'.
-p, --profile PROFILE Profile name. Set to 'default' if not specified.
-s, --save Save profile settings.
-v, --verbose Turn on verbose messages.
-V, --version Show version
-y, --yes Do not ask for confirmation
-h, --help Show this help message
For script development, the gem provides the following classes:
Class Name | Purpose |
---|---|
Profile | Overall user profile container |
Profile::HomeBrew | Homebrew information for Mac users |
Profile::Shell | General shell items like .profile, .bashrc, etc. |
Configuration
Bashman looks for the ~/.bashman/config
file for configuration information. At present the only configuration is for [shell]
and controls which shell files to include/exclude from the profile backup. Useful for limiting backup to desired configuration items and omitting sensitive and/or unnecessary components like SSH keys.
[shell]
exclude = .vim/bundle
include = .bash*, .git* .irb*, .iterm2*, .profile*, .vim*
Development
This is still in very early stages of development and is likely to be buggy.
This was built as a learning experience that results in something useful at least to me. Because of this I'm sure there is a lot missing that should probably be included, not the least of which would be code tests. If all goes well that will be included in the not too distant future.
There are plans for adding more functionality, including applying saved profiles back to the current user.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/drbayer/bashman.
License
The gem is available as open source under the terms of the MIT License.