kitchenplan 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ebb0db12e3ed09eb671248d12d8edf97a2334fb
4
- data.tar.gz: 9b03987338deb36560b0c6fc6ea656961a5b1fd9
3
+ metadata.gz: 32cea34fe7a07775c3d8da0a3d19db85f64f814c
4
+ data.tar.gz: 42934cf8be540fe51b4ef094e05964a0e01eb37c
5
5
  SHA512:
6
- metadata.gz: 401779d5cdf43c7ae19ac9e63e45fa406bfe4fc457cd4b71907074af5412e062ca705d66464bbc5b750a204aee5c8aea6f734486908e96386c31fad13f7badab
7
- data.tar.gz: 5fd4f56c63ec48107a220e62036dd566a27a79967dc11735fdc25625222ae3b135248d1495e3af00b2f664cae4daadb85d47c1aea0edfb497d503ae1fb61c124
6
+ metadata.gz: a5f8ade19c1a676ce9d9356aad0e879e5eb33a60a101bb57d11affdc62647d47c97ab802aa663a0c83538af53a9b205ea888c60184336a52dfe26e28329f4745
7
+ data.tar.gz: a4697996d5046df36f96d555f847ee6ff00af505aebde83e4f00facfcf954ee65cc6d8400f94fb5d9da72e8ee1573eb4abf90c55d8631ae90a609ed174d8d655
@@ -1,13 +1,21 @@
1
+
1
2
  require 'thor'
2
3
 
3
4
  module Kitchenplan
4
5
  class Cli < Thor
5
6
  include Thor::Actions
6
7
 
7
- desc 'setup [<GITREPO>] [<TARGET DIRECTORY>]', 'setup Kitchenplan'
8
+ desc 'setup [<gitrepo>] [<target directory>]', 'Setup your workstation to run Kitchenplan and create an example configuration'
9
+ long_desc <<-LONGDESC
10
+ `kitchenplan setup` will install the dependencies of Kitchenplan and create a configuration in /opt/kitchenplan (or <target directory>
11
+ if you pass it along) to use with the `kitchenplan provision` command.
12
+
13
+ If you already have a configuration stored in git somewhere, it will ask you to pass the git repo url. If you want to bypass the
14
+ prompt, pass it along on the commandline. (see .travis.yml for an example)
15
+ LONGDESC
8
16
  def setup(gitrepo=nil, targetdir='/opt')
9
17
  logo
10
- install_clt unless File.exists?("/usr/bin/cc")
18
+ install_clt unless `xcode-select --print-path`
11
19
  if gitrepo
12
20
  fetch(gitrepo, targetdir)
13
21
  else
@@ -19,11 +27,25 @@ module Kitchenplan
19
27
  create(targetdir)
20
28
  end
21
29
  end
30
+ unless File.exists?("#{targetdir}/kitchenplan/config/people/#{ENV['USER']}.yml")
31
+ user_create = yes?("config/people/#{ENV['USER']}.yml does not exist. Do you wish to create it? [y,n]", :green)
32
+ if user_create
33
+ create_user(targetdir)
34
+ end
35
+ end
22
36
  end
23
37
 
24
38
  option :debug, :type => :boolean
25
39
  option :recipes, :type => :array
26
- desc 'provision [<TARGET DIRECTORY>] [--debug] [--recipes=x y z]', 'run Kitchenplan, using debug will show more command output'
40
+ desc 'provision [<target directory>] [--debug] [--recipes=x y z]', 'Provision your workstation with Kitchenplan'
41
+ long_desc <<-LONGDESC
42
+ `kitchenplan provision` will use the configuration in /opt/kitchenplan (or <target directory>
43
+ if you pass it along) to provision your workstation using Chef.
44
+
45
+ You can optionally pass --debug to see more detail of what's happeling.
46
+
47
+ If you just want to install a few recipes pass them along with --recipes and it will override the run list (not the attributes!)
48
+ LONGDESC
27
49
  def provision(targetdir='/opt')
28
50
  logo
29
51
  prepare_folders(targetdir)
@@ -147,6 +169,19 @@ module Kitchenplan
147
169
  print_notice("Now start editing the config files in #{targetdir}/kitchenplan/config, push them to a git server and run 'kitchenplan provision'")
148
170
  end
149
171
 
172
+ def create_user(targetdir)
173
+ print_step("Creating #{ENV['USER']}.yml config")
174
+
175
+ template('user.yml.erb', "#{targetdir}/kitchenplan/config/people/#{ENV['USER']}.yml")
176
+
177
+ inside("#{targetdir}/kitchenplan") do
178
+ dorun("git add -A config/people/#{ENV['USER']}.yml")
179
+ dorun("git commit -q -m 'Initial commit for user #{ENV['USER']}'")
180
+ end
181
+
182
+ print_notice("Now start editing #{ENV['USER']}.yml in #{targetdir}/kitchenplan/config/people, and push it to a git server and run 'kitchenplan provision'")
183
+ end
184
+
150
185
  def install_bundler(targetdir)
151
186
  print_step('Setting up bundler')
152
187
  template('Gemfile.erb', "#{targetdir}/kitchenplan/Gemfile")
@@ -35,7 +35,7 @@ module Kitchenplan
35
35
 
36
36
  def parse_people_config
37
37
  people_config_path = "config/people/#{Etc.getlogin}.yml"
38
- @people_config = (YAML.load(ERB.new(File.read(people_config_path)).result) if File.exist?(people_config_path)) || YAML.load(ERB.new(File.read('config/people/roderik.yml')).result)
38
+ @people_config = (YAML.load(ERB.new(File.read(people_config_path)).result) if File.exist?(people_config_path)) || {}
39
39
  end
40
40
 
41
41
  def parse_group_configs(group = (( @default_config['groups'] || [] ) | ( @people_config['groups'] || [] )))
@@ -1,11 +1,11 @@
1
1
  site "http://community.opscode.com/api/v1"
2
2
 
3
- cookbook "homebrewalt", :github => "kitchenplan/chef-homebrewalt", :ref => "v1.8.1"
3
+ cookbook "homebrewalt", :github => "kitchenplan/chef-homebrewalt", :ref => "v1.8.2"
4
4
  cookbook "nodejs", :github => "kitchenplan/chef-nodejs", :ref => "v1.1"
5
- cookbook "applications", :github => "kitchenplan/chef-applications", :ref => "v2.0.1"
5
+ cookbook "applications", :github => "kitchenplan/chef-applications", :ref => "v2.0.2"
6
6
  cookbook "osxdefaults", :github => "kitchenplan/chef-osxdefaults", :ref => "v1.0.1"
7
7
  cookbook "dotfiles", :github => "kitchenplan/chef-dotfiles", :ref => "v1.1"
8
8
  cookbook "drivers", :github => "kitchenplan/chef-drivers", :ref => "v1.0"
9
9
  cookbook "sudoalt", :github => "kitchenplan/chef-sudoalt", :ref => "v2.4"
10
10
  cookbook "dmg", :github => "opscode-cookbooks/dmg", :ref => "v2.1.4"
11
- cookbook "composer", :github => "kitchenplan/chef-composer", :ref => "v1.0"
11
+ cookbook "composer", :github => "kitchenplan/chef-composer", :ref => "v1.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchenplan
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roderik van der Veer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-09 00:00:00.000000000 Z
11
+ date: 2014-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor