chef-gen-flavor-example 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.rubocop.yml +13 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +3 -0
  6. data/Gemfile.lock +244 -0
  7. data/Guardfile +15 -0
  8. data/History.md +9 -0
  9. data/LICENSE +15 -0
  10. data/Manifest.txt +36 -0
  11. data/README.md +149 -0
  12. data/Rakefile +84 -0
  13. data/chef-gen-flavor-example.gemspec +72 -0
  14. data/code_generator/files/default/files_default_example_conf +34 -0
  15. data/code_generator/files/default/templates_default_example_conf_erb +22 -0
  16. data/code_generator/libraries/kitchen_helper.rb +13 -0
  17. data/code_generator/metadata.rb +2 -0
  18. data/code_generator/recipes/cookbook.rb +11 -0
  19. data/code_generator/templates/default/Berksfile.erb +3 -0
  20. data/code_generator/templates/default/CHANGELOG_md.erb +5 -0
  21. data/code_generator/templates/default/Gemfile.erb +25 -0
  22. data/code_generator/templates/default/Guardfile.erb +41 -0
  23. data/code_generator/templates/default/README_md.erb +92 -0
  24. data/code_generator/templates/default/Rakefile.erb +45 -0
  25. data/code_generator/templates/default/_kitchen_yml.erb +28 -0
  26. data/code_generator/templates/default/_rspec.erb +2 -0
  27. data/code_generator/templates/default/_rubocop_yml.erb +17 -0
  28. data/code_generator/templates/default/attributes_default_rb.erb +8 -0
  29. data/code_generator/templates/default/metadata_rb.erb +10 -0
  30. data/code_generator/templates/default/recipes_default_rb.erb +9 -0
  31. data/code_generator/templates/default/spec_recipes_default_spec_rb.erb +7 -0
  32. data/code_generator/templates/default/spec_spec_helper_rb.erb +92 -0
  33. data/code_generator/templates/default/test_integration_default_serverspec_recipes_default_spec_rb.erb +16 -0
  34. data/code_generator/templates/default/test_integration_default_serverspec_spec_helper_rb.erb +7 -0
  35. data/lib/chef_gen/flavor/example.rb +32 -0
  36. data/spec/lib/chef_gen/flavor/example_spec.rb +88 -0
  37. data/spec/spec_helper.rb +23 -0
  38. metadata +287 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7c8947bf808a9a9ebc57df2c9807941452cdab12
4
+ data.tar.gz: c689f14ea1ee0a5860e93cd9cc4908b2c72ae2df
5
+ SHA512:
6
+ metadata.gz: 0bbf48685467b865b1049bc55866cae1847126f3ccbe399a9a4e25e2d33188b61d6060cecdb5b216272688afef15ce3bbfaf1d217202eb0e41a9f4147508df74
7
+ data.tar.gz: 4bfb2fbd0475f9846f9c49c2dc0b7edae05d9c9e7dda15c4dd567b78ca9e551cc2046c2856b255092ccda1e459cb1158c04da8ecb6653b6e1aa096612a004d16
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,13 @@
1
+ AllCops:
2
+ Exclude:
3
+ - '**/Gemfile'
4
+ - '**/*.gemspec'
5
+ - 'pkg/**/*'
6
+
7
+ Style/RegexpLiteral:
8
+ Exclude:
9
+ - '**/Guardfile'
10
+
11
+ Style/Documentation:
12
+ Exclude:
13
+ - 'spec/**/*.rb'
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.1.6"
4
+ - "2.2.2"
5
+ install: bundle install --binstubs
6
+ env: TRAVIS_BUILD=true
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org/'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,244 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ chef-gen-flavor-example (0.2.0.20150514061744)
5
+ chef-gen-flavors (~> 0.3)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ ast (2.0.0)
11
+ astrolabe (1.3.0)
12
+ parser (>= 2.2.0.pre.3, < 3.0)
13
+ bogo (0.1.22)
14
+ hashie
15
+ multi_json
16
+ bogo-ui (0.1.10)
17
+ bogo
18
+ command_line_reporter
19
+ paint
20
+ builder (3.2.2)
21
+ celluloid (0.16.0)
22
+ timers (~> 4.0.0)
23
+ chef (12.3.0)
24
+ chef-zero (~> 4.1)
25
+ diff-lcs (~> 1.2, >= 1.2.4)
26
+ erubis (~> 2.7)
27
+ ffi-yajl (>= 1.2, < 3.0)
28
+ highline (~> 1.6, >= 1.6.9)
29
+ mixlib-authentication (~> 1.3)
30
+ mixlib-cli (~> 1.4)
31
+ mixlib-config (~> 2.0)
32
+ mixlib-log (~> 1.3)
33
+ mixlib-shellout (>= 2.0.0.rc.0, < 3.0)
34
+ net-ssh (~> 2.6)
35
+ net-ssh-multi (~> 1.1)
36
+ ohai (~> 8.0)
37
+ plist (~> 3.1.0)
38
+ pry (~> 0.9)
39
+ rspec-core (~> 3.2)
40
+ rspec-expectations (~> 3.2)
41
+ rspec-mocks (~> 3.2)
42
+ rspec_junit_formatter (~> 0.2.0)
43
+ serverspec (~> 2.7)
44
+ specinfra (~> 2.10)
45
+ chef-dk (0.5.0)
46
+ chef (~> 12.0, >= 12.2.1)
47
+ cookbook-omnifetch (~> 0.2)
48
+ diff-lcs (~> 1.0)
49
+ ffi-yajl (~> 1.0)
50
+ mixlib-cli (~> 1.5)
51
+ mixlib-shellout (>= 2.0.0.rc.0, < 3.0.0)
52
+ paint (~> 1.0)
53
+ solve (~> 1.2)
54
+ chef-gen-flavors (0.3.0)
55
+ bogo-ui (~> 0.1)
56
+ little-plugger (~> 1.1)
57
+ chef-zero (4.2.1)
58
+ ffi-yajl (>= 1.1, < 3.0)
59
+ hashie (~> 2.0)
60
+ mixlib-log (~> 1.3)
61
+ rack
62
+ uuidtools (~> 2.1)
63
+ coderay (1.1.0)
64
+ colored (1.2)
65
+ colorize (0.7.7)
66
+ command_line_reporter (3.3.5)
67
+ colored (>= 1.2)
68
+ cookbook-omnifetch (0.2.1)
69
+ minitar (~> 0.5.4)
70
+ dep-selector-libgecode (1.0.2)
71
+ dep_selector (1.0.3)
72
+ dep-selector-libgecode (~> 1.0)
73
+ ffi (~> 1.9)
74
+ diff-lcs (1.2.5)
75
+ docile (1.1.5)
76
+ erubis (2.7.0)
77
+ ffi (1.9.8)
78
+ ffi-yajl (1.4.0)
79
+ ffi (~> 1.5)
80
+ libyajl2 (~> 1.2)
81
+ formatador (0.2.5)
82
+ guard (2.12.5)
83
+ formatador (>= 0.2.4)
84
+ listen (~> 2.7)
85
+ lumberjack (~> 1.0)
86
+ nenv (~> 0.1)
87
+ notiffany (~> 0.0)
88
+ pry (>= 0.9.12)
89
+ shellany (~> 0.0)
90
+ thor (>= 0.18.1)
91
+ guard-compat (1.2.1)
92
+ guard-rake (0.0.10)
93
+ guard
94
+ rake
95
+ guard-rspec (4.5.0)
96
+ guard (~> 2.1)
97
+ guard-compat (~> 1.1)
98
+ rspec (>= 2.99.0, < 4.0)
99
+ guard-rubocop (1.2.0)
100
+ guard (~> 2.0)
101
+ rubocop (~> 0.20)
102
+ hashie (2.1.2)
103
+ highline (1.7.2)
104
+ hirb (0.7.3)
105
+ hitimes (1.2.2)
106
+ hoe (3.13.1)
107
+ rake (>= 0.8, < 11.0)
108
+ hoe-gemspec (1.0.0)
109
+ hoe (>= 2.2.0)
110
+ ipaddress (0.8.0)
111
+ json (1.8.2)
112
+ libyajl2 (1.2.0)
113
+ listen (2.10.0)
114
+ celluloid (~> 0.16.0)
115
+ rb-fsevent (>= 0.9.3)
116
+ rb-inotify (>= 0.9)
117
+ little-plugger (1.1.3)
118
+ lumberjack (1.0.9)
119
+ method_source (0.8.2)
120
+ mime-types (2.5)
121
+ minitar (0.5.4)
122
+ mixlib-authentication (1.3.0)
123
+ mixlib-log
124
+ mixlib-cli (1.5.0)
125
+ mixlib-config (2.2.0)
126
+ mixlib-log (1.6.0)
127
+ mixlib-shellout (2.0.1)
128
+ multi_json (1.11.0)
129
+ nenv (0.2.0)
130
+ net-scp (1.2.1)
131
+ net-ssh (>= 2.6.5)
132
+ net-ssh (2.9.2)
133
+ net-ssh-gateway (1.2.0)
134
+ net-ssh (>= 2.6.5)
135
+ net-ssh-multi (1.2.1)
136
+ net-ssh (>= 2.6.5)
137
+ net-ssh-gateway (>= 1.2.0)
138
+ notiffany (0.0.6)
139
+ nenv (~> 0.1)
140
+ shellany (~> 0.0)
141
+ ohai (8.3.0)
142
+ ffi (~> 1.9)
143
+ ffi-yajl (>= 1.1, < 3.0)
144
+ ipaddress
145
+ mime-types (~> 2.0)
146
+ mixlib-cli
147
+ mixlib-config (~> 2.0)
148
+ mixlib-log
149
+ mixlib-shellout (~> 2.0)
150
+ rake (~> 10.1)
151
+ systemu (~> 2.6.4)
152
+ wmi-lite (~> 1.0)
153
+ paint (1.0.0)
154
+ parser (2.2.2.2)
155
+ ast (>= 1.1, < 3.0)
156
+ plist (3.1.0)
157
+ powerpack (0.1.1)
158
+ pry (0.10.1)
159
+ coderay (~> 1.1.0)
160
+ method_source (~> 0.8.1)
161
+ slop (~> 3.4)
162
+ rack (1.6.1)
163
+ rainbow (2.0.0)
164
+ rake (10.4.2)
165
+ rb-fsevent (0.9.4)
166
+ rb-inotify (0.9.5)
167
+ ffi (>= 0.5.0)
168
+ rdoc (4.2.0)
169
+ json (~> 1.4)
170
+ rspec (3.2.0)
171
+ rspec-core (~> 3.2.0)
172
+ rspec-expectations (~> 3.2.0)
173
+ rspec-mocks (~> 3.2.0)
174
+ rspec-core (3.2.3)
175
+ rspec-support (~> 3.2.0)
176
+ rspec-expectations (3.2.1)
177
+ diff-lcs (>= 1.2.0, < 2.0)
178
+ rspec-support (~> 3.2.0)
179
+ rspec-its (1.2.0)
180
+ rspec-core (>= 3.0.0)
181
+ rspec-expectations (>= 3.0.0)
182
+ rspec-mocks (3.2.1)
183
+ diff-lcs (>= 1.2.0, < 2.0)
184
+ rspec-support (~> 3.2.0)
185
+ rspec-support (3.2.2)
186
+ rspec_junit_formatter (0.2.2)
187
+ builder (< 4)
188
+ rspec-core (>= 2, < 4, != 2.12.0)
189
+ rubocop (0.31.0)
190
+ astrolabe (~> 1.3)
191
+ parser (>= 2.2.2.1, < 3.0)
192
+ powerpack (~> 0.1)
193
+ rainbow (>= 1.99.1, < 3.0)
194
+ ruby-progressbar (~> 1.4)
195
+ ruby-progressbar (1.7.5)
196
+ semverse (1.2.1)
197
+ serverspec (2.16.0)
198
+ multi_json
199
+ rspec (~> 3.0)
200
+ rspec-its
201
+ specinfra (~> 2.31)
202
+ shellany (0.0.1)
203
+ simplecov (0.10.0)
204
+ docile (~> 1.1.0)
205
+ json (~> 1.8)
206
+ simplecov-html (~> 0.10.0)
207
+ simplecov-console (0.2.0)
208
+ colorize
209
+ hirb
210
+ simplecov
211
+ simplecov-html (0.10.0)
212
+ slop (3.6.0)
213
+ solve (1.2.1)
214
+ dep_selector (~> 1.0)
215
+ semverse (~> 1.1)
216
+ specinfra (2.31.1)
217
+ net-scp
218
+ net-ssh
219
+ systemu (2.6.5)
220
+ thor (0.19.1)
221
+ timers (4.0.1)
222
+ hitimes
223
+ uuidtools (2.1.5)
224
+ wmi-lite (1.0.0)
225
+ yard (0.8.7.6)
226
+
227
+ PLATFORMS
228
+ ruby
229
+
230
+ DEPENDENCIES
231
+ chef-dk (~> 0.5)
232
+ chef-gen-flavor-example!
233
+ guard (~> 2.12)
234
+ guard-rake (~> 0.0)
235
+ guard-rspec (~> 4.2)
236
+ guard-rubocop (~> 1.2)
237
+ hoe (~> 3.13)
238
+ hoe-gemspec (~> 1.0)
239
+ rake (~> 10.3)
240
+ rdoc (~> 4.0)
241
+ rspec (~> 3.1)
242
+ simplecov (~> 0.9)
243
+ simplecov-console (~> 0.2)
244
+ yard (~> 0.8)
data/Guardfile ADDED
@@ -0,0 +1,15 @@
1
+ # prevent dropping into pry when nothing is happening
2
+ interactor :off
3
+
4
+ guard :rubocop, all_on_start: true, cli: ['-D'] do
5
+ watch(%r{.+\.rb$})
6
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
7
+ watch('Gemfile')
8
+ watch('Rakefile')
9
+ end
10
+
11
+ guard :rspec, all_on_start: true, cmd: 'bundle exec rspec' do
12
+ watch(%r{^spec/(.+)_spec\.rb$})
13
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
14
+ watch(%r{^spec/spec_helper.*\.rb$}) { 'spec' }
15
+ end
data/History.md ADDED
@@ -0,0 +1,9 @@
1
+ # Changelog for chef-gen-flavor-example
2
+
3
+ ## 0.2.0
4
+
5
+ * rename from chefdk-template-example to chef-gen-flavor-example
6
+
7
+ ## 0.1.0
8
+
9
+ * initial version
data/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ # THE APACHE LICENSE, v2
2
+
3
+ Copyright 2015 Nordstrom, Inc.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not
6
+ use this file except in compliance with the License. You may obtain a copy
7
+ of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
+ License for the specific language governing permissions and limitations
15
+ under the License.
data/Manifest.txt ADDED
@@ -0,0 +1,36 @@
1
+ .rspec
2
+ .rubocop.yml
3
+ .travis.yml
4
+ Gemfile
5
+ Gemfile.lock
6
+ Guardfile
7
+ History.md
8
+ LICENSE
9
+ Manifest.txt
10
+ README.md
11
+ Rakefile
12
+ chef-gen-flavor-example.gemspec
13
+ code_generator/files/default/files_default_example_conf
14
+ code_generator/files/default/templates_default_example_conf_erb
15
+ code_generator/libraries/kitchen_helper.rb
16
+ code_generator/metadata.rb
17
+ code_generator/recipes/cookbook.rb
18
+ code_generator/templates/default/Berksfile.erb
19
+ code_generator/templates/default/CHANGELOG_md.erb
20
+ code_generator/templates/default/Gemfile.erb
21
+ code_generator/templates/default/Guardfile.erb
22
+ code_generator/templates/default/README_md.erb
23
+ code_generator/templates/default/Rakefile.erb
24
+ code_generator/templates/default/_kitchen_yml.erb
25
+ code_generator/templates/default/_rspec.erb
26
+ code_generator/templates/default/_rubocop_yml.erb
27
+ code_generator/templates/default/attributes_default_rb.erb
28
+ code_generator/templates/default/metadata_rb.erb
29
+ code_generator/templates/default/recipes_default_rb.erb
30
+ code_generator/templates/default/spec_recipes_default_spec_rb.erb
31
+ code_generator/templates/default/spec_spec_helper_rb.erb
32
+ code_generator/templates/default/test_integration_default_serverspec_recipes_default_spec_rb.erb
33
+ code_generator/templates/default/test_integration_default_serverspec_spec_helper_rb.erb
34
+ lib/chef_gen/flavor/example.rb
35
+ spec/lib/chef_gen/flavor/example_spec.rb
36
+ spec/spec_helper.rb
data/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # chef-gen-flavor-example
2
+
3
+ * home :: https://github.com/Nordstrom/chef-gen-flavor-example
4
+ * license :: [Apache2](http://www.apache.org/licenses/LICENSE-2.0)
5
+ * gem version :: [![Gem Version](https://badge.fury.io/rb/chef-gen-flavor-example.png)](http://badge.fury.io/rb/chef-gen-flavor-example)
6
+ * build status :: [![Build Status](https://travis-ci.org/Nordstrom/chef-gen-flavor-example.png?branch=master)](https://travis-ci.org/Nordstrom/chef-gen-flavor-example)
7
+ * code climate :: [![Code Climate](https://codeclimate.com/github/Nordstrom/chef-gen-flavor-example/badges/gpa.svg)](https://codeclimate.com/github/Nordstrom/chef-gen-flavor-example)
8
+ * docs :: [![Inline docs](http://inch-ci.org/github/nordstrom/chef-gen-flavor-example.svg?branch=master)](http://inch-ci.org/github/nordstrom/chef-gen-flavor-example)
9
+
10
+ ## DESCRIPTION
11
+
12
+ An example plugin for [chef-gen-flavors](https://rubygems.org/gems/chef-gen-flavors).
13
+
14
+ This plugin makes use of most of the snippets available, and is meant as a
15
+ reference implementation than for actual use. It demonstrates how to create
16
+ a template plugin with tests and serve as a good example of how to get
17
+ started writing your own templates for distribution.
18
+
19
+ ## USAGE
20
+
21
+ To see it in action:
22
+
23
+ chef gem install chef-gen-flavor-example
24
+ chef generate cookbook foo
25
+
26
+ This should generate the following cookbook:
27
+
28
+ ```
29
+ $ chef generate cookbook foo
30
+ using ChefGen flavor in /home/james/.chefdk/gem/ruby/2.1.0/gems/chef-gen-flavor-example-0.1.0/code_generator
31
+ Compiling Cookbooks...
32
+ Recipe: code_generator::cookbook
33
+ * directory[/home/james/foo/] action create
34
+ - create new directory /home/james/foo/
35
+ * directory[/home/james/foo/templates] action create
36
+ - create new directory /home/james/foo/templates
37
+ * directory[/home/james/foo/templates/default] action create
38
+ - create new directory /home/james/foo/templates/default
39
+
40
+ [...]
41
+
42
+ * file[/home/james/foo/chefignore] action create
43
+ - create new file /home/james/foo/chefignore
44
+ - update content in file /home/james/foo/chefignore from none to ceda3a
45
+ (diff output suppressed by config)
46
+ * ruby_block[report_actions_taken] action run
47
+
48
+ actions taken:
49
+ create directory /home/james/foo/
50
+ create directory /home/james/foo/templates
51
+ create directory /home/james/foo/templates/default
52
+ create directory /home/james/foo/files
53
+ create directory /home/james/foo/files/default
54
+ create directory /home/james/foo/test
55
+ create directory /home/james/foo/test/integration
56
+ create directory /home/james/foo/test/integration/default
57
+ create directory /home/james/foo/test/integration/default/serverspec
58
+ create directory /home/james/foo/test/integration/default/serverspec/recipes
59
+ create directory /home/james/foo/spec
60
+ create directory /home/james/foo/spec/recipes
61
+ create directory /home/james/foo/recipes
62
+ create directory /home/james/foo/attributes
63
+ create file /home/james/foo/templates/default/example.conf.erb
64
+ create file /home/james/foo/files/default/example.conf
65
+ create file /home/james/foo/.rspec
66
+ create file /home/james/foo/Gemfile
67
+ create file /home/james/foo/Berksfile
68
+ create file /home/james/foo/Rakefile
69
+ create file /home/james/foo/Guardfile
70
+ create file /home/james/foo/.rubocop.yml
71
+ create file /home/james/foo/.kitchen.yml
72
+ create file /home/james/foo/test/integration/default/serverspec/spec_helper.rb
73
+ create file /home/james/foo/test/integration/default/serverspec/recipes/default_spec.rb
74
+ create file /home/james/foo/spec/spec_helper.rb
75
+ create file /home/james/foo/spec/recipes/default_spec.rb
76
+ create file /home/james/foo/recipes/default.rb
77
+ create file /home/james/foo/attributes/default.rb
78
+ create file /home/james/foo/metadata.rb
79
+ create file /home/james/foo/README.md
80
+ create file /home/james/foo/CHANGELOG.md
81
+ create ignore file /home/james/foo/.gitignore
82
+ create ignore file /home/james/foo/chefignore
83
+
84
+ - execute the ruby block report_actions_taken
85
+ * ruby_block[display_next_steps] action run
86
+
87
+ Now cd into the generated cookbook directory and run
88
+ 'bundle' to install Ruby gems needed for local testing and
89
+ 'bundle exec rake -T' to see which testing tasks you can run.
90
+
91
+ You are now ready to begin writing your first recipe.
92
+
93
+ - execute the ruby block display_next_steps
94
+ ```
95
+
96
+ With the following directory structure:
97
+
98
+ ```
99
+ foo
100
+ ├── Berksfile
101
+ ├── CHANGELOG.md
102
+ ├── Gemfile
103
+ ├── Guardfile
104
+ ├── README.md
105
+ ├── Rakefile
106
+ ├── attributes
107
+ │   └── default.rb
108
+ ├── chefignore
109
+ ├── files
110
+ │   └── default
111
+ │   └── example.conf
112
+ ├── metadata.rb
113
+ ├── recipes
114
+ │   └── default.rb
115
+ ├── spec
116
+ │   ├── recipes
117
+ │   │   └── default_spec.rb
118
+ │   └── spec_helper.rb
119
+ ├── templates
120
+ │   └── default
121
+ │   └── example.conf.erb
122
+ └── test
123
+ └── integration
124
+ └── default
125
+ └── serverspec
126
+ ├── recipes
127
+ │   └── default_spec.rb
128
+ └── spec_helper.rb
129
+ ```
130
+
131
+ ## AUTHOR
132
+
133
+ James FitzGibbon - james.i.fitzgibbon@nordstrom.com - Nordstrom Inc.
134
+
135
+ ## LICENSE
136
+
137
+ Copyright 2015 Nordstrom, Inc.
138
+
139
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not
140
+ use this file except in compliance with the License. You may obtain a copy
141
+ of the License at
142
+
143
+ http://www.apache.org/licenses/LICENSE-2.0
144
+
145
+ Unless required by applicable law or agreed to in writing, software
146
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
147
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
148
+ License for the specific language governing permissions and limitations
149
+ under the License.