whisk 0.2.1 → 0.2.2
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.
- data/README.md +60 -28
- data/lib/whisk/cli.rb +13 -0
- data/lib/whisk/provider/bowl.rb +17 -0
- data/lib/whisk/resource/bowl.rb +2 -2
- data/lib/whisk/resource/ingredient.rb +4 -1
- data/lib/whisk/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -19,32 +19,33 @@ Whiskfile.
|
|
19
19
|
|
20
20
|
## Example Whiskfile ##
|
21
21
|
|
22
|
-
|
23
|
-
github = "git://github.com/cookbooks/%s.git"
|
22
|
+
whisk_dir = "#{ENV['HOME']}/whisk"
|
23
|
+
github = "git://github.com/opscode-cookbooks/%s.git"
|
24
24
|
|
25
|
-
bowl "
|
26
|
-
path
|
27
|
-
|
28
|
-
|
29
|
-
source github % "ntp"
|
30
|
-
ref '1.1.2'
|
25
|
+
bowl "testing" do
|
26
|
+
path File.join(whisk_dir, "testing")
|
27
|
+
ingredient 'openssh' do
|
28
|
+
source github % 'openssh'
|
31
29
|
end
|
32
|
-
end
|
33
|
-
|
34
|
-
bowl "development" do
|
35
|
-
path cb_path % name
|
36
30
|
|
37
|
-
ingredient
|
38
|
-
source github %
|
39
|
-
ref 'develop'
|
31
|
+
ingredient 'ntp' do
|
32
|
+
source github % 'ntp'
|
40
33
|
end
|
34
|
+
end
|
41
35
|
|
42
|
-
|
43
|
-
|
44
|
-
|
36
|
+
bowl "production" do
|
37
|
+
path File.join(whisk_dir, "production")
|
38
|
+
ingredient 'openssh' do
|
39
|
+
source github % 'openssh'
|
40
|
+
ref '1.0.0'
|
45
41
|
end
|
46
42
|
end
|
47
43
|
|
44
|
+
Additionally, whisk can take advantage of knife to upload cookbooks.
|
45
|
+
Whisk requires that the following code be added to your knife.rb
|
46
|
+
|
47
|
+
cookbook_path ENV['WHISK_COOKBOOK_PATH']
|
48
|
+
|
48
49
|
# Commands #
|
49
50
|
|
50
51
|
## whisk list ##
|
@@ -55,11 +56,9 @@ separated by a forward slash. These short names maybe be used as filters for
|
|
55
56
|
most other subcommands
|
56
57
|
|
57
58
|
$ whisk list
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
development/ssh
|
62
|
-
|
59
|
+
testing/openssh
|
60
|
+
testing/ntp
|
61
|
+
production/openssh
|
63
62
|
|
64
63
|
## whisk prepare ##
|
65
64
|
|
@@ -67,11 +66,20 @@ The prepare subcommand allows you to clone your ingredients and optional
|
|
67
66
|
checkout a specified ref.
|
68
67
|
|
69
68
|
$ whisk prepare
|
70
|
-
Creating bowl '
|
71
|
-
Preparing bowl '
|
72
|
-
Cloning ingredient
|
69
|
+
Creating bowl 'testing' with path /home/msf/whisk/testing
|
70
|
+
Preparing bowl 'testing' with path /home/msf/whisk/testing
|
71
|
+
Cloning ingredient 'openssh', from url
|
72
|
+
git://github.com/opscode-cookbooks/openssh.git
|
73
|
+
Cloning into 'openssh'...
|
74
|
+
Cloning ingredient 'ntp', from url
|
75
|
+
git://github.com/opscode-cookbooks/ntp.git
|
73
76
|
Cloning into 'ntp'...
|
74
|
-
|
77
|
+
Creating bowl 'production' with path /home/msf/whisk/production
|
78
|
+
Preparing bowl 'production' with path /home/msf/whisk/production
|
79
|
+
Cloning ingredient 'openssh', from url
|
80
|
+
git://github.com/opscode-cookbooks/openssh.git
|
81
|
+
Cloning into 'openssh'...
|
82
|
+
Checking out ref '1.0.0' for ingredient 'openssh'
|
75
83
|
|
76
84
|
You can also use specify a filter to run whisk subcommands on a subset of
|
77
85
|
cookbooks by specifying the bowl and ingredient separated by a forward slash.
|
@@ -96,9 +104,18 @@ to run update on a subset of ingredients
|
|
96
104
|
|
97
105
|
# show status for all configured bowls
|
98
106
|
$ whisk status
|
99
|
-
Status for
|
107
|
+
Status for bowl 'testing' with path /home/msf/whisk/testing
|
108
|
+
Status for ingredient 'openssh'
|
109
|
+
# On branch master
|
110
|
+
nothing to commit (working directory clean)
|
111
|
+
Status for ingredient 'ntp'
|
100
112
|
# On branch master
|
101
113
|
nothing to commit (working directory clean)
|
114
|
+
Status for bowl 'production' with path /home/msf/whisk/production
|
115
|
+
Status for ingredient 'openssh'
|
116
|
+
# Not currently on any branch.
|
117
|
+
nothing to commit (working directory clean)
|
118
|
+
|
102
119
|
|
103
120
|
## whisk update ##
|
104
121
|
|
@@ -113,3 +130,18 @@ to run update on a subset of ingredients
|
|
113
130
|
|
114
131
|
# only update the 'development bowl'
|
115
132
|
$ whisk update dev
|
133
|
+
|
134
|
+
## whisk upload ##
|
135
|
+
|
136
|
+
Whisk upload will upload all bowls specified by the Whiskfile to a chef server
|
137
|
+
|
138
|
+
# upload all bowls to the chef server
|
139
|
+
$ whisk upload
|
140
|
+
$ ruby bin/whisk upload
|
141
|
+
Uploading ingredients in bowl 'testing'
|
142
|
+
Uploading ntp [1.2.0]
|
143
|
+
Uploading openssh [1.0.0]
|
144
|
+
Uploaded 2 cookbooks.
|
145
|
+
Uploading ingredients in bowl 'production'
|
146
|
+
Uploading openssh [1.0.0]
|
147
|
+
Uploaded 1 cookbook.
|
data/lib/whisk/cli.rb
CHANGED
@@ -93,5 +93,18 @@ class Whisk
|
|
93
93
|
runner = Whisk::Runner.new(options[:whiskfile], filter)
|
94
94
|
runner.run('update')
|
95
95
|
end
|
96
|
+
|
97
|
+
method_option :whiskfile,
|
98
|
+
type: :string,
|
99
|
+
default: File.join(Dir.pwd, Whisk::DEFAULT_FILENAME),
|
100
|
+
desc: "Path to a Whiskfile to operate off of.",
|
101
|
+
aliases: "-w",
|
102
|
+
banner: "PATH"
|
103
|
+
desc "upload", "upload the specifiec bowls to a chef server"
|
104
|
+
def upload(filter=nil)
|
105
|
+
runner = Whisk::Runner.new(options[:whiskfile], filter)
|
106
|
+
runner.run('upload')
|
107
|
+
end
|
108
|
+
|
96
109
|
end
|
97
110
|
end
|
data/lib/whisk/provider/bowl.rb
CHANGED
@@ -18,11 +18,14 @@
|
|
18
18
|
|
19
19
|
require 'whisk'
|
20
20
|
require 'whisk/provider'
|
21
|
+
require 'whisk/mixin/shellout'
|
21
22
|
|
22
23
|
class Whisk
|
23
24
|
class Provider
|
24
25
|
class Bowl < Provider
|
25
26
|
|
27
|
+
include Whisk::Mixin::ShellOut
|
28
|
+
|
26
29
|
def exist?
|
27
30
|
::Dir.exist? resource.path
|
28
31
|
end
|
@@ -33,6 +36,13 @@ class Whisk
|
|
33
36
|
end
|
34
37
|
end
|
35
38
|
|
39
|
+
def knife_env
|
40
|
+
cb_path = resource.path
|
41
|
+
return {
|
42
|
+
'WHISK_COOKBOOK_PATH' => cb_path
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
36
46
|
def create
|
37
47
|
unless self.exist?
|
38
48
|
Whisk.ui.info "Creating bowl '#{resource.name}' with path #{resource.path}"
|
@@ -76,6 +86,13 @@ class Whisk
|
|
76
86
|
ingredients_run("update")
|
77
87
|
end
|
78
88
|
end
|
89
|
+
|
90
|
+
def action_upload
|
91
|
+
if self.exist?
|
92
|
+
Whisk.ui.info "Uploading ingredients in bowl '#{resource.name}'"
|
93
|
+
shell_out!("knife cookbook upload --all", :env => knife_env)
|
94
|
+
end
|
95
|
+
end
|
79
96
|
end
|
80
97
|
end
|
81
98
|
end
|
data/lib/whisk/resource/bowl.rb
CHANGED
@@ -35,9 +35,9 @@ class Whisk
|
|
35
35
|
|
36
36
|
def ingredient(iname, &block)
|
37
37
|
if ingredients.has_key? iname
|
38
|
-
raise ArgumentError, "Ingredient '#{iname}' has already added to bowl '#{name}'"
|
38
|
+
raise ArgumentError, "Ingredient '#{iname}' has already been added to bowl '#{name}'"
|
39
39
|
else
|
40
|
-
ingredients[iname] = Whisk::Resource::Ingredient.new(iname, &block)
|
40
|
+
ingredients[iname] = Whisk::Resource::Ingredient.new(iname, self, &block)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
data/lib/whisk/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whisk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|