README.md in yuyi-1.0.8 vs README.md in yuyi-1.1.3

- old
+ new

@@ -1,8 +1,9 @@ ![Travis CI](https://travis-ci.org/brewster1134/Yuyi.svg?branch=master) + # Yuyi -Opinionated automation for installing/uninstalling/upgrading your machine environment +Custom automation for installing/uninstalling/upgrading your local machine environment ###### Support * Mac OS X ###### Dependencies @@ -10,12 +11,19 @@ * Ruby >= 1.8.7 * Bash >= 3.2 #### Quick Usage * Create a `yuyi_menu` file in your home folder _(see below for examples)_ -* Run `ruby -e "$(curl -fsSL https://raw.github.com/brewster1134/Yuyi/master/bin/install)"` in Terminal +If you are running yuyi on a brand new machine, you will need to run sudo to install Yuyi to the system installed ruby + +* `sudo gem install yuyi` + +Other you can just install it normally... + +* `gem install yuyi` + #### Example Menu ```yaml sources: local: ~/Documents/Rolls @@ -28,21 +36,31 @@ Make sure to include a colon (:) at the end of each roll name. If a roll accepts arguments, indent the key/value pairs below the roll name. You will be prompted with roll options when Yuyi runs, and the opportunity to change them before anything is installed. +**Then just run `yuyi`** + ### Development +Use yuyi to install development dependencies -##### Dependencies -* ruby -* bundler +`yuyi https://raw.githubusercontent.com/brewster1134/Yuyi/master/yuyi_menu` +`bundle install` ##### Running Tests -Run tests using rspec through guard - ```sh -bundle exec guard +// run guard to watch the source files and automatically run tests when you make changes +bundle exec rake yuyi + +// run rspec tests on the yuyi library +bundle exec rake yuyi:test + +// run rspec tests on the rolls specified in a given menu +bundle exec rake yuyi:test:rolls + +// run rspec tests on the library and the rolld +bundle exec rake yuyi:test:all ``` ##### Writing Rolls ###### _required_ * `< Yuyu::Roll` The roll class needs to inherit from Yuyi::Roll @@ -65,11 +83,23 @@ * `write_to_file` Will add lines of text to a file. Good for using in the `install` block. Accepts multiple string arguments to be written as separate lines. * `delete_from_file` Will remove lines of text to a file. Good for using in the `uninstall` block. Accepts multiple string arguments to be written as separate lines. ```ruby class MyRoll < Yuyi::Roll + options({ + :version => { + :description => 'The specific version you would like to install', + :example => '1.0', # optional + :default => '2.0', # optional + :required => true # optional - shows option in red + } + }) + + dependencies :homebrew, :foo + install do + dependencies :hombrew_cask if options[:version] == '2.0' # add dependencies conditionally run 'brew install my_roll', :verbose => true write_to_file '~/.bash_profile', "# #{title}" end @@ -86,33 +116,20 @@ installed? do # simply check for a command command? 'brew' # or check the output of a command - # using `run` will return true or false, so use - `brew list` =~ /myroll/ + run('brew list') =~ /myroll/ end - - dependencies :homebrew, :foo - dependencies :hombrew_cask if options[:version] == '2.0' # add dependencies conditionally - - options( - :version => { - :description => 'The specific version you would like to install', - :example => '1.0', # optional - :default => '2.0', # optional - :required => true # optional - shows option in red - } - ) end ``` ### TODO +* progressbar * vagrant plugins * Enforce required options * New roll generator (use new!) -* DOCS! * show roll options on -l -* home brew/home brew cask roll to inherit * installation summary +* DOCS! [.](http://www.comedycentral.com/video-clips/3myds9/upright-citizens-brigade-sushi-chef)