├── .ruby-version ├── .gitignore ├── Gemfile ├── .travis.yml ├── UNLICENSE ├── Cheffile ├── FAQ.md ├── soloistrc ├── sprout ├── README.md ├── Cheffile.lock └── Gemfile.lock /.ruby-version: -------------------------------------------------------------------------------- 1 | system 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | cookbooks/ 3 | .bundle/ 4 | vendor/bundle 5 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'soloist', require: false 4 | 5 | group :development do 6 | gem 'chefspec' 7 | gem 'foodcritic' 8 | gem 'rspec', require: false 9 | gem 'rubocop', require: false 10 | 11 | gem 'fauxhai', '~> 6.0.0', require: false # versions after 6.0.1 remove `node['etc']` 12 | end 13 | 14 | gem 'chef-zero', '~> 13.1', require: false # versions after 14.x require ruby 2.4 15 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | os: osx 3 | osx_image: xcode9.3 4 | rvm: system 5 | install: 6 | # we expect sprout to provide homebrew so we should ensure it isn't present 7 | - brew cask list && brew cask uninstall $(brew cask list) 8 | - brew list && brew uninstall --force --ignore-dependencies $(brew list) 9 | - ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" -- --force 10 | - rm -rf /usr/local/var/postgres # clear out Travis-installed Postgres 9.4 data 11 | 12 | - for ruby in $(rvm list strings); do rvm uninstall "${ruby}"; done 13 | - travis_wait sudo rvm implode --force # We are testing installation of Rubies, so should uninstall everything 14 | script: 15 | - ./sprout 16 | -------------------------------------------------------------------------------- /UNLICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /Cheffile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | site 'https://supermarket.getchef.com/api/v1' 4 | 5 | cookbook 'sprout-rbenv', 6 | :github => 'pivotal-sprout/sprout-rbenv' 7 | 8 | cookbook 'sprout-ruby', 9 | :github => 'pivotal-sprout/sprout-ruby' 10 | 11 | cookbook 'sprout-mysql', 12 | :github => 'pivotal-sprout/sprout-mysql' 13 | 14 | cookbook 'sprout-git', 15 | :github => 'pivotal-sprout/sprout-git' 16 | 17 | cookbook 'sprout-base', 18 | :github => 'pivotal-sprout/sprout-base' 19 | 20 | cookbook 'sprout-osx-apps', 21 | :github => 'pivotal-sprout/sprout-osx-apps' 22 | 23 | cookbook 'sprout-osx-settings', 24 | :github => 'pivotal-sprout/sprout-osx-settings' 25 | 26 | cookbook 'osx', 27 | :github => 'pivotal-sprout/osx' 28 | 29 | cookbook 'sprout-terminal', 30 | :github => 'pivotal-sprout/sprout-terminal' 31 | 32 | cookbook 'sprout-postgresql', 33 | :github => 'pivotal-sprout/sprout-postgresql' 34 | 35 | cookbook 'sprout-ssh', 36 | :github => 'pivotal-sprout/sprout-ssh' 37 | 38 | cookbook 'sprout-jetbrains-editors', 39 | :github => 'pivotal-sprout/sprout-jetbrains-editors' 40 | 41 | # mingw 1.0 and build-essential 4.0 add a dependency to compat_resource, 42 | # which does not load correctly with Rubygems 2.0.14, the Rubygems version 43 | # bundled with OS X 10.11.4. 44 | cookbook 'mingw', '= 0.1.1' 45 | cookbook 'build-essential', '= 3.2.0' 46 | -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- 1 | # FAQ 2 | 3 | #### Why does my chef run bomb out? Why can't I get my recipe to converge? 4 | 5 | Make sure you're using system ruby, not rvm or rbenv ruby. If you're not sure, run the following command and check that the output is `/usr/bin/ruby`: 6 | 7 | ``` 8 | $ which ruby 9 | /usr/bin/ruby 10 | ``` 11 | 12 | Longer answer: We test against system ruby, which is a good common denominator. Also, using system ruby will bypass ownership issues (i.e. gems owned by root but installed under one's home directory). 13 | 14 | #### Why do my edits keep getting reverted? I change the recipe, but every time I run soloist it's changed back. 15 | 16 | You're editing the recipe under `sprout-wrap/cookbooks`. That is a directory that is checked-out from the sources (as defined in `Cheffile`) every chef run—overwriting your changes. 17 | 18 | Make your changes under `sprout-wrap/site-cookbooks` instead; those changes won't be overwritten. 19 | 20 | #### Why does sprout-wrap install an older version of RubyMine even though sprout's RubyMine recipe specifies a newer one? 21 | 22 | You need to update the git SHAs specified in sprout-wrap's `Cheffile.lock`. Run the following command in the root of your copy of the sprout-wrap repo: 23 | 24 | ``` 25 | librarian-chef update 26 | ``` 27 | 28 | #### Why not use the standalone Command Line Tools for XCode instead of XCode? 29 | 30 | There are primarily 2 reasons that we install XCode in sprout-wrap: 31 | 32 | 1. System Ruby on OS X Mountain Lion uses `xcrun` to detect `cc`. `xcrun` is [not designed](http://stackoverflow.com/questions/13041525/osx-10-8-xcrun-no-such-file-or-directory) to work with the standalone Command Line Tools. 33 | 2. sprout-wrap is used to build workstations for iOS development. Having XCode available is handy in this situation. 34 | -------------------------------------------------------------------------------- /soloistrc: -------------------------------------------------------------------------------- 1 | recipes: 2 | 3 | # base (required by sprout) 4 | - sprout-base 5 | - sprout-base::bash_it 6 | - homebrew 7 | - homebrew::install_taps 8 | - homebrew::install_formulas 9 | - homebrew::install_casks 10 | 11 | # apps 12 | - sprout-osx-apps::iterm2 13 | - sprout-osx-apps::shiftit 14 | 15 | # settings 16 | - sprout-osx-settings 17 | - sprout-osx-settings::dock_preferences 18 | - sprout-terminal 19 | - sprout-ssh::known_hosts_github 20 | 21 | # development (general) 22 | - sprout-base::workspace_directory 23 | - sprout-git 24 | - sprout-git::default_editor 25 | - sprout-git::projects 26 | - sprout-git::git_scripts 27 | 28 | # development (rails) 29 | - sprout-rbenv 30 | - sprout-ruby 31 | - sprout-mysql 32 | - sprout-postgresql 33 | 34 | # apps (editors) 35 | - sprout-jetbrains-editors::rubymine 36 | 37 | node_attributes: 38 | sprout: 39 | git: 40 | domain: pivotal.io 41 | authors: 42 | - initials: ah 43 | name: Abhijit Hiremagalur 44 | username: abhi 45 | - initials: bc 46 | name: Brian Cunnie 47 | username: cunnie 48 | - initials: jrhb 49 | name: Jonathan Barnes 50 | - initials: lw 51 | name: Luke Winikates 52 | username: lwinikates 53 | projects: 54 | - 55 | name: sprout-wrap 56 | url: https://github.com/pivotal-sprout/sprout-wrap.git 57 | terminal: 58 | default_profile: 'Pro' 59 | settings: 60 | clock_format: EEE MMM d h:mm:ss a 61 | dock_preferences: 62 | orientation: 'left' 63 | auto_hide: true 64 | clear_apps: true 65 | tile_size: 35 66 | magnification: false 67 | homebrew: 68 | formulas: 69 | - ag 70 | - node 71 | - pstree 72 | - rbenv-binstubs 73 | - tmux 74 | - tree 75 | - vim 76 | - watch 77 | - wget 78 | casks: 79 | - firefox 80 | - flycut 81 | - google-chrome 82 | - google-hangouts 83 | - vagrant 84 | -------------------------------------------------------------------------------- /sprout: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | function use_local_gems() { 6 | local system_ruby_bin="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/" 7 | SPROUT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 8 | export SPROUT_HOME 9 | export GEM_HOME="${SPROUT_HOME}/tmp/ruby/2.3.0" 10 | export GEM_PATH="${GEM_HOME}" 11 | export PATH="${GEM_HOME}/bin:${system_ruby_bin}:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin" 12 | 13 | current_ruby=$(which ruby) 14 | if [ "${current_ruby}" != "${system_ruby_bin}/ruby" ]; then 15 | echo -e "\\033[31mWarning: sprout should be run with system ruby; using '${current_ruby}'\\033[0m" 16 | fi 17 | echo "# - Using $(${current_ruby} -v)" 18 | } 19 | 20 | function ensure_in_sprout_home() { 21 | if [ "${SPROUT_HOME}" != "$(pwd)" ]; then 22 | echo "Error: sprout must be run from ${SPROUT_HOME}" 23 | exit 1 24 | fi 25 | } 26 | 27 | function bundle_exec() { 28 | if bundler_installed; then 29 | echo "# - Using $(bundle -v)" 30 | else 31 | gem install bundler --no-document 32 | fi 33 | 34 | if bundle check > /dev/null 2>&1; then 35 | echo '# - Gemfile dependencies satisfied' 36 | else 37 | bundle install --jobs 6 38 | fi 39 | 40 | bundle exec "${@}" 41 | } 42 | 43 | function bundler_installed() { 44 | command -v bundle > /dev/null 45 | } 46 | 47 | function update_resources() { 48 | gem install bundler --no-document 49 | bundle update 50 | bundle exec librarian-chef update 51 | } 52 | 53 | function main() { 54 | use_local_gems 55 | ensure_in_sprout_home 56 | 57 | case "${1}" in 58 | '') 59 | export LOG_LEVEL="warn" # make chef less noisy 60 | bundle_exec soloist 61 | ;; 62 | exec) 63 | shift 64 | bundle_exec "${@}" 65 | ;; 66 | update) 67 | update_resources 68 | ;; 69 | *) 70 | echo "Usage:" 71 | echo " sprout - install dependencies and run 'soloist'" 72 | echo " sprout exec some cmd - run 'some cmd' in this cookbooks's bundler context" 73 | echo " sprout update: - update gems and cookbook dependencies" 74 | esac 75 | } 76 | 77 | main "${@}" 78 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sprout-wrap 2 | 3 | [![Build Status](https://travis-ci.org/pivotal-sprout/sprout-wrap.png?branch=master)](https://travis-ci.org/pivotal-sprout/sprout-wrap) 4 | 5 | ## Prerequisites 6 | 7 | [Download](https://developer.apple.com/support/xcode/) and install XCode or the XCode command line tools. 8 | 9 | ## Installation 10 | 11 | To provision your machine, open up Terminal and enter the following: 12 | 13 | ```sh 14 | sudo xcodebuild -license 15 | xcode-select --install 16 | git clone https://github.com/pivotal-sprout/sprout-wrap.git 17 | cd sprout-wrap 18 | caffeinate ./sprout 19 | ``` 20 | 21 | The `caffeinate` command will keep your computer awake while installing; depending on your network connection, soloist can take from 10 minutes to 2 hours to complete. 22 | 23 | ## Problems? 24 | 25 | ### clang error 26 | 27 | If you receive errors like this: 28 | 29 | clang: error: unknown argument: '-multiply_definedsuppress' 30 | 31 | then try downgrading those errors like this: 32 | 33 | sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle 34 | 35 | ### Command Line Tool Update Server 36 | 37 | If you receive a message about the update server being unavailable and are on Mavericks, then you already have the command line tools. 38 | 39 | ## Customization 40 | 41 | This project uses [soloist](https://github.com/mkocher/soloist) and [librarian-chef](https://github.com/applicationsonline/librarian-chef) 42 | to run a subset of the recipes in sprout's cookbooks. 43 | 44 | [Fork it](https://github.com/pivotal-sprout/sprout-wrap/fork) to 45 | customize its [attributes](http://docs.chef.io/attributes.html) in [soloistrc](/soloistrc) and the list of recipes 46 | you'd like to use for your team. You may also want to add other cookbooks to its [Cheffile](/Cheffile), perhaps one 47 | of the many [community cookbooks](https://supermarket.chef.io/cookbooks). By default it configures an OS X 48 | Mavericks workstation for Ruby development. 49 | 50 | Finally, if you've never used Chef before - we highly recommend you buy & watch [this excellent 17 minute screencast](http://railscasts.com/episodes/339-chef-solo-basics) by Ryan Bates. 51 | 52 | ## Caveats 53 | 54 | ### Homebrew 55 | 56 | - Homebrew cask has been [integrated](https://github.com/caskroom/homebrew-cask/pull/15381) with Homebrew proper. If you are experiencing problems installing casks and 57 | have an older installation of Homebrew, running `brew uninstall --force brew-cask; brew update` should fix things. 58 | - If you are updating from an older version of sprout-wrap, your homebrew configuration in soloistrc might be under `node_attributes.sprout.homebrew.formulae` 59 | and `node_attributes.sprout.homebrew.casks`. These will need to be updated to `node_attributes.homebrew.formulas` (note the change from formulae to formulas) 60 | and `node_attributes.homebrew.casks`. 61 | 62 | ## Roadmap 63 | 64 | See Pivotal Tracker: 65 | 66 | ## Discussion List 67 | 68 | Join [sprout-users@googlegroups.com](https://groups.google.com/forum/#!forum/sprout-users) if you use Sprout. 69 | 70 | ## References 71 | 72 | * Slides from @hiremaga's [lightning talk on Sprout](http://sprout-talk.cfapps.io/) at Pivotal Labs in June 2013 73 | * [Railscast on chef-solo](http://railscasts.com/episodes/339-chef-solo-basics) by Ryan Bates (PAID) 74 | -------------------------------------------------------------------------------- /Cheffile.lock: -------------------------------------------------------------------------------- 1 | SITE 2 | remote: https://supermarket.getchef.com/api/v1 3 | specs: 4 | build-essential (3.2.0) 5 | seven_zip (>= 0.0.0) 6 | dmg (4.1.1) 7 | homebrew (5.0.4) 8 | mingw (0.1.1) 9 | seven_zip (>= 0.0.0) 10 | seven_zip (2.0.2) 11 | windows (>= 1.2.2) 12 | windows (4.2.2) 13 | 14 | GIT 15 | remote: https://github.com/pivotal-sprout/osx 16 | ref: master 17 | sha: 57820f0c0f4b08e9cff82a57a7489f9dcc9345f7 18 | specs: 19 | osx (0.1.0) 20 | 21 | GIT 22 | remote: https://github.com/pivotal-sprout/sprout-base 23 | ref: master 24 | sha: a7f515dd6ec08e682c9fb0637c8a153fa275e19f 25 | specs: 26 | sprout-base (0.7.0) 27 | homebrew (>= 0.0.0) 28 | 29 | GIT 30 | remote: https://github.com/pivotal-sprout/sprout-git 31 | ref: master 32 | sha: 4b9cbcad5cfc88b7324f00a78439117e8c7a7e77 33 | specs: 34 | sprout-git (0.4.0) 35 | homebrew (>= 0.0.0) 36 | sprout-base (>= 0.0.0) 37 | 38 | GIT 39 | remote: https://github.com/pivotal-sprout/sprout-jetbrains-editors 40 | ref: master 41 | sha: bcfcb62c1095a9ef33477f896ebda47918ad7618 42 | specs: 43 | sprout-jetbrains-editors (0.1.0) 44 | homebrew (>= 0.0.0) 45 | sprout-base (>= 0.0.0) 46 | 47 | GIT 48 | remote: https://github.com/pivotal-sprout/sprout-mysql 49 | ref: master 50 | sha: 12a264fe5418ae9fc6f5300fe56abec058f4a743 51 | specs: 52 | sprout-mysql (0.1.0) 53 | homebrew (>= 0.0.0) 54 | sprout-base (>= 0.0.0) 55 | 56 | GIT 57 | remote: https://github.com/pivotal-sprout/sprout-osx-apps 58 | ref: master 59 | sha: abe74e25ac963746f6178cb8e371d51c8bbd9de0 60 | specs: 61 | sprout-osx-apps (0.2.0) 62 | dmg (>= 0.0.0) 63 | homebrew (>= 1.6.6) 64 | sprout-base (>= 0.0.0) 65 | sprout-osx-settings (>= 0.0.0) 66 | 67 | GIT 68 | remote: https://github.com/pivotal-sprout/sprout-osx-settings 69 | ref: master 70 | sha: 62630bea50cea7b24058854a5a216c3a4dbbe4ef 71 | specs: 72 | sprout-osx-settings (0.1.0) 73 | homebrew (>= 0.0.0) 74 | osx (>= 0.0.0) 75 | sprout-base (>= 0.0.0) 76 | 77 | GIT 78 | remote: https://github.com/pivotal-sprout/sprout-postgresql 79 | ref: master 80 | sha: 97558d741bc7f0e1ea6c2f896dd2a3706b26c7ec 81 | specs: 82 | sprout-postgresql (0.1.0) 83 | homebrew (>= 1.5.4) 84 | sprout-base (>= 0.0.0) 85 | 86 | GIT 87 | remote: https://github.com/pivotal-sprout/sprout-rbenv 88 | ref: master 89 | sha: aacfd19f867511715e6070988013ed453d268efb 90 | specs: 91 | sprout-rbenv (0.1.0) 92 | homebrew (>= 0.0.0) 93 | sprout-base (>= 0.0.0) 94 | 95 | GIT 96 | remote: https://github.com/pivotal-sprout/sprout-ruby 97 | ref: master 98 | sha: 2fc7d5273fccd978321450b61088bbd608867dfc 99 | specs: 100 | sprout-ruby (0.1.0) 101 | sprout-base (>= 0.0.0) 102 | 103 | GIT 104 | remote: https://github.com/pivotal-sprout/sprout-ssh 105 | ref: master 106 | sha: b3ac3a04d9b9494b32514e69b33720fd51f46224 107 | specs: 108 | sprout-ssh (0.1.0) 109 | sprout-base (>= 0.0.0) 110 | sprout-osx-settings (>= 0.0.0) 111 | 112 | GIT 113 | remote: https://github.com/pivotal-sprout/sprout-terminal 114 | ref: master 115 | sha: 6d9be928aa0041f455d3721b14c89c5e068f5e04 116 | specs: 117 | sprout-terminal (0.1.0) 118 | osx (>= 0.0.0) 119 | sprout-base (>= 0.0.0) 120 | 121 | DEPENDENCIES 122 | build-essential (= 3.2.0) 123 | mingw (= 0.1.1) 124 | osx (>= 0) 125 | sprout-base (>= 0) 126 | sprout-git (>= 0) 127 | sprout-jetbrains-editors (>= 0) 128 | sprout-mysql (>= 0) 129 | sprout-osx-apps (>= 0) 130 | sprout-osx-settings (>= 0) 131 | sprout-postgresql (>= 0) 132 | sprout-rbenv (>= 0) 133 | sprout-ruby (>= 0) 134 | sprout-ssh (>= 0) 135 | sprout-terminal (>= 0) 136 | 137 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.5.2) 5 | public_suffix (>= 2.0.2, < 4.0) 6 | ast (2.4.0) 7 | awesome_print (1.8.0) 8 | backports (3.11.3) 9 | builder (3.2.3) 10 | chef (13.8.5) 11 | addressable 12 | bundler (>= 1.10) 13 | chef-config (= 13.8.5) 14 | chef-zero (>= 13.0) 15 | diff-lcs (~> 1.2, >= 1.2.4) 16 | erubis (~> 2.7) 17 | ffi-yajl (~> 2.2) 18 | highline (~> 1.6, >= 1.6.9) 19 | iniparse (~> 1.4) 20 | iso8601 (~> 0.9.1) 21 | mixlib-archive (~> 0.4) 22 | mixlib-authentication (~> 1.4) 23 | mixlib-cli (~> 1.7) 24 | mixlib-log (~> 1.3) 25 | mixlib-shellout (~> 2.0) 26 | net-sftp (~> 2.1, >= 2.1.2) 27 | net-ssh (>= 2.9, < 5.0) 28 | net-ssh-multi (~> 1.2, >= 1.2.1) 29 | ohai (~> 13.0) 30 | plist (~> 3.2) 31 | proxifier (~> 1.0) 32 | rspec-core (~> 3.5) 33 | rspec-expectations (~> 3.5) 34 | rspec-mocks (~> 3.5) 35 | rspec_junit_formatter (~> 0.2.0) 36 | serverspec (~> 2.7) 37 | specinfra (~> 2.10) 38 | syslog-logger (~> 1.6) 39 | uuidtools (~> 2.1.5) 40 | chef-config (13.8.5) 41 | addressable 42 | fuzzyurl 43 | mixlib-config (~> 2.0) 44 | mixlib-shellout (~> 2.0) 45 | tomlrb (~> 1.2) 46 | chef-zero (13.1.0) 47 | ffi-yajl (~> 2.2) 48 | hashie (>= 2.0, < 4.0) 49 | mixlib-log (~> 1.3) 50 | rack (~> 2.0) 51 | uuidtools (~> 2.1) 52 | chefspec (7.2.0) 53 | chef (>= 12.14.89) 54 | fauxhai (>= 4) 55 | rspec (~> 3.0) 56 | cucumber-core (3.1.0) 57 | backports (>= 3.8.0) 58 | cucumber-tag_expressions (~> 1.1.0) 59 | gherkin (>= 5.0.0) 60 | cucumber-tag_expressions (1.1.1) 61 | diff-lcs (1.3) 62 | erubis (2.7.0) 63 | fauxhai (6.0.1) 64 | net-ssh 65 | ffi (1.9.23) 66 | ffi-yajl (2.3.1) 67 | libyajl2 (~> 1.2) 68 | foodcritic (13.1.1) 69 | cucumber-core (>= 1.3) 70 | erubis 71 | ffi-yajl (~> 2.0) 72 | nokogiri (>= 1.5, < 2.0) 73 | rake 74 | rufus-lru (~> 1.0) 75 | treetop (~> 1.4) 76 | fuzzyurl (0.9.0) 77 | gherkin (5.0.0) 78 | hashie (2.1.2) 79 | highline (1.7.10) 80 | iniparse (1.4.4) 81 | ipaddress (0.8.3) 82 | iso8601 (0.9.1) 83 | librarian (0.1.2) 84 | highline 85 | thor (~> 0.15) 86 | librarian-chef (0.0.4) 87 | chef (>= 0.10) 88 | librarian (~> 0.1.0) 89 | minitar (>= 0.5.2) 90 | libyajl2 (1.2.0) 91 | mini_portile2 (2.3.0) 92 | minitar (0.6.1) 93 | mixlib-archive (0.4.4) 94 | mixlib-log 95 | mixlib-authentication (1.4.2) 96 | mixlib-cli (1.7.0) 97 | mixlib-config (2.2.6) 98 | tomlrb 99 | mixlib-log (1.7.1) 100 | mixlib-shellout (2.3.2) 101 | multi_json (1.13.1) 102 | net-scp (1.2.1) 103 | net-ssh (>= 2.6.5) 104 | net-sftp (2.1.2) 105 | net-ssh (>= 2.6.5) 106 | net-ssh (4.2.0) 107 | net-ssh-gateway (2.0.0) 108 | net-ssh (>= 4.0.0) 109 | net-ssh-multi (1.2.1) 110 | net-ssh (>= 2.6.5) 111 | net-ssh-gateway (>= 1.2.0) 112 | net-telnet (0.1.1) 113 | nokogiri (1.8.2) 114 | mini_portile2 (~> 2.3.0) 115 | ohai (13.9.0) 116 | chef-config (>= 12.5.0.alpha.1, < 14) 117 | ffi (~> 1.9) 118 | ffi-yajl (~> 2.2) 119 | ipaddress 120 | mixlib-cli 121 | mixlib-config (~> 2.0) 122 | mixlib-log (>= 1.7.1, < 2.0) 123 | mixlib-shellout (~> 2.0) 124 | plist (~> 3.1) 125 | systemu (~> 2.6.4) 126 | wmi-lite (~> 1.0) 127 | parallel (1.12.1) 128 | parser (2.5.1.0) 129 | ast (~> 2.4.0) 130 | plist (3.4.0) 131 | polyglot (0.3.5) 132 | powerpack (0.1.1) 133 | proxifier (1.0.3) 134 | public_suffix (3.0.2) 135 | rack (2.0.5) 136 | rainbow (3.0.0) 137 | rake (12.3.1) 138 | rspec (3.7.0) 139 | rspec-core (~> 3.7.0) 140 | rspec-expectations (~> 3.7.0) 141 | rspec-mocks (~> 3.7.0) 142 | rspec-core (3.7.1) 143 | rspec-support (~> 3.7.0) 144 | rspec-expectations (3.7.0) 145 | diff-lcs (>= 1.2.0, < 2.0) 146 | rspec-support (~> 3.7.0) 147 | rspec-its (1.2.0) 148 | rspec-core (>= 3.0.0) 149 | rspec-expectations (>= 3.0.0) 150 | rspec-mocks (3.7.0) 151 | diff-lcs (>= 1.2.0, < 2.0) 152 | rspec-support (~> 3.7.0) 153 | rspec-support (3.7.1) 154 | rspec_junit_formatter (0.2.3) 155 | builder (< 4) 156 | rspec-core (>= 2, < 4, != 2.12.0) 157 | rubocop (0.55.0) 158 | parallel (~> 1.10) 159 | parser (>= 2.5) 160 | powerpack (~> 0.1) 161 | rainbow (>= 2.2.2, < 4.0) 162 | ruby-progressbar (~> 1.7) 163 | unicode-display_width (~> 1.0, >= 1.0.1) 164 | ruby-progressbar (1.9.0) 165 | rufus-lru (1.1.0) 166 | serverspec (2.41.3) 167 | multi_json 168 | rspec (~> 3.0) 169 | rspec-its 170 | specinfra (~> 2.72) 171 | sfl (2.3) 172 | soloist (1.0.3) 173 | awesome_print 174 | chef 175 | hashie (~> 2.0) 176 | librarian-chef 177 | net-ssh 178 | thor 179 | specinfra (2.73.3) 180 | net-scp 181 | net-ssh (>= 2.7, < 5.0) 182 | net-telnet 183 | sfl 184 | syslog-logger (1.6.8) 185 | systemu (2.6.5) 186 | thor (0.20.0) 187 | tomlrb (1.2.6) 188 | treetop (1.6.10) 189 | polyglot (~> 0.3) 190 | unicode-display_width (1.3.2) 191 | uuidtools (2.1.5) 192 | wmi-lite (1.0.0) 193 | 194 | PLATFORMS 195 | ruby 196 | 197 | DEPENDENCIES 198 | chef-zero (~> 13.1) 199 | chefspec 200 | fauxhai (~> 6.0.0) 201 | foodcritic 202 | rspec 203 | rubocop 204 | soloist 205 | 206 | BUNDLED WITH 207 | 1.16.1 208 | --------------------------------------------------------------------------------