chef-dk 2.6.2 → 3.0.36

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.
Files changed (377) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +126 -121
  3. data/Gemfile.lock +812 -807
  4. data/LICENSE +201 -201
  5. data/README.md +333 -333
  6. data/Rakefile +74 -74
  7. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
  8. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +287 -287
  9. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +52 -52
  10. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -51
  11. data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
  12. data/acceptance/Gemfile +21 -21
  13. data/acceptance/Gemfile.lock +334 -334
  14. data/acceptance/README.md +132 -132
  15. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
  16. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
  17. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
  18. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
  19. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
  20. data/acceptance/trivial/.kitchen.yml +7 -7
  21. data/acceptance/trivial/test/integration/chefdk-current-install/inspec/chef_client_spec.rb +5 -5
  22. data/bin/chef +25 -25
  23. data/chef-dk.gemspec +60 -60
  24. data/lib/chef-dk.rb +19 -19
  25. data/lib/chef-dk/authenticated_http.rb +22 -22
  26. data/lib/chef-dk/builtin_commands.rb +59 -59
  27. data/lib/chef-dk/chef_runner.rb +114 -114
  28. data/lib/chef-dk/chef_server_api_multi.rb +73 -73
  29. data/lib/chef-dk/cli.rb +201 -201
  30. data/lib/chef-dk/command/base.rb +79 -79
  31. data/lib/chef-dk/command/clean_policy_cookbooks.rb +114 -114
  32. data/lib/chef-dk/command/clean_policy_revisions.rb +111 -111
  33. data/lib/chef-dk/command/delete_policy.rb +120 -120
  34. data/lib/chef-dk/command/delete_policy_group.rb +120 -120
  35. data/lib/chef-dk/command/diff.rb +315 -315
  36. data/lib/chef-dk/command/env.rb +89 -89
  37. data/lib/chef-dk/command/exec.rb +44 -44
  38. data/lib/chef-dk/command/export.rb +155 -155
  39. data/lib/chef-dk/command/gem.rb +47 -47
  40. data/lib/chef-dk/command/generate.rb +125 -125
  41. data/lib/chef-dk/command/generator_commands.rb +83 -83
  42. data/lib/chef-dk/command/generator_commands/app.rb +106 -106
  43. data/lib/chef-dk/command/generator_commands/attribute.rb +36 -36
  44. data/lib/chef-dk/command/generator_commands/base.rb +157 -157
  45. data/lib/chef-dk/command/generator_commands/build_cookbook.rb +125 -125
  46. data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +85 -85
  47. data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +38 -38
  48. data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +39 -39
  49. data/lib/chef-dk/command/generator_commands/cookbook.rb +241 -241
  50. data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
  51. data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
  52. data/lib/chef-dk/command/generator_commands/generator_generator.rb +174 -174
  53. data/lib/chef-dk/command/generator_commands/helpers.rb +36 -36
  54. data/lib/chef-dk/command/generator_commands/policyfile.rb +124 -126
  55. data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
  56. data/lib/chef-dk/command/generator_commands/repo.rb +123 -123
  57. data/lib/chef-dk/command/generator_commands/resource.rb +36 -36
  58. data/lib/chef-dk/command/generator_commands/template.rb +46 -46
  59. data/lib/chef-dk/command/install.rb +120 -120
  60. data/lib/chef-dk/command/provision.rb +436 -436
  61. data/lib/chef-dk/command/push.rb +117 -117
  62. data/lib/chef-dk/command/push_archive.rb +125 -125
  63. data/lib/chef-dk/command/shell_init.rb +179 -179
  64. data/lib/chef-dk/command/show_policy.rb +163 -163
  65. data/lib/chef-dk/command/undelete.rb +154 -154
  66. data/lib/chef-dk/command/update.rb +133 -133
  67. data/lib/chef-dk/command/verify.rb +629 -629
  68. data/lib/chef-dk/commands_map.rb +113 -113
  69. data/lib/chef-dk/completions/bash.sh.erb +5 -5
  70. data/lib/chef-dk/completions/chef.fish.erb +10 -10
  71. data/lib/chef-dk/completions/zsh.zsh.erb +21 -21
  72. data/lib/chef-dk/component_test.rb +227 -227
  73. data/lib/chef-dk/configurable.rb +88 -88
  74. data/lib/chef-dk/cookbook_metadata.rb +45 -45
  75. data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
  76. data/lib/chef-dk/cookbook_profiler/git.rb +152 -151
  77. data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
  78. data/lib/chef-dk/cookbook_profiler/null_scm.rb +31 -31
  79. data/lib/chef-dk/exceptions.rb +151 -150
  80. data/lib/chef-dk/generator.rb +165 -165
  81. data/lib/chef-dk/helpers.rb +176 -176
  82. data/lib/chef-dk/pager.rb +104 -105
  83. data/lib/chef-dk/policyfile/artifactory_cookbook_source.rb +102 -102
  84. data/lib/chef-dk/policyfile/attribute_merge_checker.rb +110 -110
  85. data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
  86. data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +99 -99
  87. data/lib/chef-dk/policyfile/chef_server_lock_fetcher.rb +167 -164
  88. data/lib/chef-dk/policyfile/community_cookbook_source.rb +95 -95
  89. data/lib/chef-dk/policyfile/comparison_base.rb +123 -123
  90. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +154 -154
  91. data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
  92. data/lib/chef-dk/policyfile/cookbook_sources.rb +23 -23
  93. data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +89 -89
  94. data/lib/chef-dk/policyfile/differ.rb +263 -263
  95. data/lib/chef-dk/policyfile/dsl.rb +288 -288
  96. data/lib/chef-dk/policyfile/git_lock_fetcher.rb +265 -0
  97. data/lib/chef-dk/policyfile/included_policies_cookbook_source.rb +156 -156
  98. data/lib/chef-dk/policyfile/lister.rb +229 -229
  99. data/lib/chef-dk/policyfile/local_lock_fetcher.rb +129 -123
  100. data/lib/chef-dk/policyfile/lock_applier.rb +80 -80
  101. data/lib/chef-dk/policyfile/null_cookbook_source.rb +49 -49
  102. data/lib/chef-dk/policyfile/policyfile_location_specification.rb +125 -122
  103. data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
  104. data/lib/chef-dk/policyfile/reports/install.rb +69 -69
  105. data/lib/chef-dk/policyfile/reports/table_printer.rb +57 -57
  106. data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
  107. data/lib/chef-dk/policyfile/solution_dependencies.rb +311 -312
  108. data/lib/chef-dk/policyfile/source_uri.rb +57 -57
  109. data/lib/chef-dk/policyfile/storage_config.rb +112 -102
  110. data/lib/chef-dk/policyfile/undo_record.rb +139 -139
  111. data/lib/chef-dk/policyfile/undo_stack.rb +128 -128
  112. data/lib/chef-dk/policyfile/uploader.rb +213 -213
  113. data/lib/chef-dk/policyfile_compiler.rb +528 -528
  114. data/lib/chef-dk/policyfile_lock.rb +581 -581
  115. data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
  116. data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +123 -123
  117. data/lib/chef-dk/policyfile_services/export_repo.rb +419 -420
  118. data/lib/chef-dk/policyfile_services/install.rb +162 -162
  119. data/lib/chef-dk/policyfile_services/push.rb +112 -112
  120. data/lib/chef-dk/policyfile_services/push_archive.rb +164 -200
  121. data/lib/chef-dk/policyfile_services/rm_policy.rb +141 -141
  122. data/lib/chef-dk/policyfile_services/rm_policy_group.rb +85 -85
  123. data/lib/chef-dk/policyfile_services/show_policy.rb +234 -236
  124. data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
  125. data/lib/chef-dk/policyfile_services/update_attributes.rb +110 -110
  126. data/lib/chef-dk/service_exception_inspectors.rb +24 -24
  127. data/lib/chef-dk/service_exception_inspectors/base.rb +39 -39
  128. data/lib/chef-dk/service_exception_inspectors/http.rb +119 -119
  129. data/lib/chef-dk/service_exceptions.rb +142 -142
  130. data/lib/chef-dk/shell_out.rb +36 -36
  131. data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +4 -4
  132. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml +21 -21
  133. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/README.md +146 -146
  134. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +9 -9
  135. data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +104 -107
  136. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
  137. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +66 -54
  138. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +17 -17
  139. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +36 -36
  140. data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +22 -22
  141. data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +24 -24
  142. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -27
  143. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +8 -8
  144. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +7 -7
  145. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +9 -9
  146. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +56 -56
  147. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +3 -3
  148. data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -6
  149. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +9 -9
  150. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +12 -12
  151. data/lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md +24 -24
  152. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +9 -9
  153. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
  154. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +3 -3
  155. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +3 -3
  156. data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
  157. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +89 -89
  158. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +13 -13
  159. data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +177 -177
  160. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +158 -152
  161. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +25 -25
  162. data/lib/chef-dk/skeletons/code_generator/recipes/helpers.rb +21 -21
  163. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +9 -9
  164. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +52 -52
  165. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +68 -68
  166. data/lib/chef-dk/skeletons/code_generator/recipes/resource.rb +13 -13
  167. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
  168. data/lib/chef-dk/skeletons/code_generator/templates/default/CHANGELOG.md.erb +11 -0
  169. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
  170. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.apachev2.erb +201 -201
  171. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -339
  172. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -674
  173. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -21
  174. data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -25
  175. data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
  176. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb +7 -7
  177. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +10 -10
  178. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +8 -8
  179. data/lib/chef-dk/skeletons/code_generator/templates/default/helpers.rb.erb +39 -39
  180. data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +18 -18
  181. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +26 -26
  182. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +33 -33
  183. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +20 -20
  184. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
  185. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +35 -35
  186. data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +128 -128
  187. data/lib/chef-dk/skeletons/code_generator/templates/default/resource.rb.erb +1 -1
  188. data/lib/chef-dk/ui.rb +57 -57
  189. data/lib/chef-dk/version.rb +20 -20
  190. data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
  191. data/omnibus_overrides.rb +25 -25
  192. data/spec/shared/a_file_generator.rb +125 -125
  193. data/spec/shared/a_generated_file.rb +12 -12
  194. data/spec/shared/command_with_ui_object.rb +11 -11
  195. data/spec/shared/custom_generator_cookbook.rb +136 -136
  196. data/spec/shared/fixture_cookbook_checksums.rb +46 -46
  197. data/spec/shared/setup_git_committer_config.rb +54 -54
  198. data/spec/shared/setup_git_cookbooks.rb +53 -53
  199. data/spec/spec_helper.rb +51 -51
  200. data/spec/test_helpers.rb +84 -84
  201. data/spec/unit/chef_runner_spec.rb +139 -139
  202. data/spec/unit/chef_server_api_multi_spec.rb +120 -120
  203. data/spec/unit/cli_spec.rb +377 -377
  204. data/spec/unit/command/base_spec.rb +172 -172
  205. data/spec/unit/command/clean_policy_cookbooks_spec.rb +180 -180
  206. data/spec/unit/command/clean_policy_revisions_spec.rb +180 -180
  207. data/spec/unit/command/delete_policy_group_spec.rb +206 -206
  208. data/spec/unit/command/delete_policy_spec.rb +206 -206
  209. data/spec/unit/command/diff_spec.rb +311 -311
  210. data/spec/unit/command/env_spec.rb +52 -52
  211. data/spec/unit/command/exec_spec.rb +178 -178
  212. data/spec/unit/command/export_spec.rb +199 -199
  213. data/spec/unit/command/generate_spec.rb +142 -142
  214. data/spec/unit/command/generator_commands/app_spec.rb +166 -166
  215. data/spec/unit/command/generator_commands/attribute_spec.rb +31 -31
  216. data/spec/unit/command/generator_commands/base_spec.rb +181 -181
  217. data/spec/unit/command/generator_commands/build_cookbook_spec.rb +377 -377
  218. data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +97 -97
  219. data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +111 -111
  220. data/spec/unit/command/generator_commands/cookbook_file_spec.rb +31 -31
  221. data/spec/unit/command/generator_commands/cookbook_spec.rb +765 -756
  222. data/spec/unit/command/generator_commands/generator_generator_spec.rb +227 -227
  223. data/spec/unit/command/generator_commands/helpers_spec.rb +31 -31
  224. data/spec/unit/command/generator_commands/policyfile_spec.rb +223 -223
  225. data/spec/unit/command/generator_commands/recipe_spec.rb +37 -37
  226. data/spec/unit/command/generator_commands/repo_spec.rb +374 -374
  227. data/spec/unit/command/generator_commands/resource_spec.rb +31 -31
  228. data/spec/unit/command/generator_commands/template_spec.rb +31 -31
  229. data/spec/unit/command/install_spec.rb +179 -179
  230. data/spec/unit/command/provision_spec.rb +589 -589
  231. data/spec/unit/command/push_archive_spec.rb +153 -153
  232. data/spec/unit/command/push_spec.rb +198 -198
  233. data/spec/unit/command/shell_init_spec.rb +339 -339
  234. data/spec/unit/command/show_policy_spec.rb +234 -234
  235. data/spec/unit/command/undelete_spec.rb +244 -244
  236. data/spec/unit/command/update_spec.rb +283 -283
  237. data/spec/unit/command/verify_spec.rb +341 -341
  238. data/spec/unit/commands_map_spec.rb +57 -57
  239. data/spec/unit/component_test_spec.rb +128 -128
  240. data/spec/unit/configurable_spec.rb +68 -68
  241. data/spec/unit/cookbook_metadata_spec.rb +96 -96
  242. data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
  243. data/spec/unit/cookbook_profiler/identifiers_spec.rb +81 -81
  244. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
  245. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
  246. data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
  247. data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
  248. data/spec/unit/fixtures/configurable/test_config_loader.rb +5 -5
  249. data/spec/unit/fixtures/configurable/test_configurable.rb +10 -10
  250. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  251. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
  252. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  253. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
  254. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  255. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  256. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
  257. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
  258. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
  259. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
  260. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
  261. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
  262. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
  263. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
  264. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
  265. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
  266. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
  267. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
  268. data/spec/unit/fixtures/cookbooks_api/chef_server_universe.json +56 -56
  269. data/spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json +30 -30
  270. data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
  271. data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
  272. data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
  273. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +33 -33
  274. data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
  275. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
  276. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
  277. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
  278. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
  279. data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
  280. data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
  281. data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
  282. data/spec/unit/fixtures/example_cookbook/README.md +4 -4
  283. data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
  284. data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
  285. data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
  286. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
  287. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
  288. data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
  289. data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
  290. data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
  291. data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
  292. data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
  293. data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
  294. data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
  295. data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
  296. data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
  297. data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
  298. data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
  299. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
  300. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
  301. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
  302. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
  303. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
  304. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
  305. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
  306. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
  307. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
  308. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
  309. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
  310. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
  311. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
  312. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
  313. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
  314. data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
  315. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  316. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  317. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  318. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  319. data/spec/unit/generator_spec.rb +119 -119
  320. data/spec/unit/pager_spec.rb +117 -117
  321. data/spec/unit/policyfile/artifactory_cookbook_source_spec.rb +59 -59
  322. data/spec/unit/policyfile/attribute_merge_checker_spec.rb +80 -80
  323. data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
  324. data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +55 -55
  325. data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +161 -161
  326. data/spec/unit/policyfile/community_cookbook_source_spec.rb +83 -83
  327. data/spec/unit/policyfile/comparison_base_spec.rb +340 -340
  328. data/spec/unit/policyfile/cookbook_location_specification_spec.rb +347 -347
  329. data/spec/unit/policyfile/cookbook_locks_spec.rb +527 -527
  330. data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +129 -129
  331. data/spec/unit/policyfile/differ_spec.rb +686 -686
  332. data/spec/unit/policyfile/git_lock_fetcher_spec.rb +155 -0
  333. data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +242 -242
  334. data/spec/unit/policyfile/lister_spec.rb +268 -268
  335. data/spec/unit/policyfile/local_lock_fetcher_spec.rb +173 -173
  336. data/spec/unit/policyfile/lock_applier_spec.rb +100 -100
  337. data/spec/unit/policyfile/null_cookbook_source_spec.rb +34 -34
  338. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
  339. data/spec/unit/policyfile/reports/install_spec.rb +114 -114
  340. data/spec/unit/policyfile/reports/upload_spec.rb +94 -94
  341. data/spec/unit/policyfile/solution_dependencies_spec.rb +170 -170
  342. data/spec/unit/policyfile/source_uri_spec.rb +36 -36
  343. data/spec/unit/policyfile/storage_config_spec.rb +180 -180
  344. data/spec/unit/policyfile/undo_record_spec.rb +258 -258
  345. data/spec/unit/policyfile/undo_stack_spec.rb +265 -265
  346. data/spec/unit/policyfile/uploader_spec.rb +409 -409
  347. data/spec/unit/policyfile_demands_spec.rb +1197 -1197
  348. data/spec/unit/policyfile_evaluation_spec.rb +628 -638
  349. data/spec/unit/policyfile_includes_dsl_spec.rb +159 -159
  350. data/spec/unit/policyfile_includes_spec.rb +720 -720
  351. data/spec/unit/policyfile_install_with_includes_spec.rb +232 -232
  352. data/spec/unit/policyfile_lock_build_spec.rb +1065 -1065
  353. data/spec/unit/policyfile_lock_install_spec.rb +137 -137
  354. data/spec/unit/policyfile_lock_serialization_spec.rb +424 -424
  355. data/spec/unit/policyfile_lock_validation_spec.rb +608 -608
  356. data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
  357. data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +272 -272
  358. data/spec/unit/policyfile_services/export_repo_spec.rb +473 -478
  359. data/spec/unit/policyfile_services/install_spec.rb +209 -209
  360. data/spec/unit/policyfile_services/push_archive_spec.rb +359 -374
  361. data/spec/unit/policyfile_services/push_spec.rb +249 -249
  362. data/spec/unit/policyfile_services/rm_policy_group_spec.rb +237 -237
  363. data/spec/unit/policyfile_services/rm_policy_spec.rb +263 -263
  364. data/spec/unit/policyfile_services/show_policy_spec.rb +887 -887
  365. data/spec/unit/policyfile_services/undelete_spec.rb +302 -302
  366. data/spec/unit/policyfile_services/update_attributes_spec.rb +229 -229
  367. data/spec/unit/policyfile_services/update_spec.rb +140 -140
  368. data/spec/unit/service_exception_inspectors/base_spec.rb +41 -41
  369. data/spec/unit/service_exception_inspectors/http_spec.rb +138 -138
  370. data/spec/unit/shell_out_spec.rb +34 -34
  371. data/tasks/announce.rb +57 -57
  372. data/tasks/bin/bundle-platform.bat +2 -2
  373. data/tasks/dependencies.rb +89 -89
  374. data/tasks/templates/prerelease.md.erb +35 -35
  375. data/tasks/templates/release.md.erb +34 -34
  376. data/warning.txt +9 -9
  377. metadata +9 -5
@@ -1,13 +1,13 @@
1
- # frozen_string_literal: true
2
-
3
- context = ChefDK::Generator.context
4
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
5
- attribute_dir = File.join(cookbook_dir, 'attributes')
6
- attribute_path = File.join(cookbook_dir, 'attributes', "#{context.new_file_basename}.rb")
7
-
8
- directory attribute_dir
9
-
10
- template attribute_path do
11
- source 'attribute.rb.erb'
12
- helpers(ChefDK::Generator::TemplateHelper)
13
- end
1
+ # frozen_string_literal: true
2
+
3
+ context = ChefDK::Generator.context
4
+ cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
5
+ attribute_dir = File.join(cookbook_dir, 'attributes')
6
+ attribute_path = File.join(cookbook_dir, 'attributes', "#{context.new_file_basename}.rb")
7
+
8
+ directory attribute_dir
9
+
10
+ template attribute_path do
11
+ source 'attribute.rb.erb'
12
+ helpers(ChefDK::Generator::TemplateHelper)
13
+ end
@@ -1,177 +1,177 @@
1
- # frozen_string_literal: true
2
-
3
- context = ChefDK::Generator.context
4
- delivery_project_dir = context.delivery_project_dir
5
- pipeline = context.pipeline
6
- dot_delivery_dir = File.join(delivery_project_dir, '.delivery')
7
- config_json = File.join(dot_delivery_dir, 'config.json')
8
- project_toml = File.join(dot_delivery_dir, 'project.toml')
9
-
10
- generator_desc('Ensuring delivery configuration')
11
-
12
- directory dot_delivery_dir
13
-
14
- cookbook_file config_json do
15
- source 'delivery-config.json'
16
- not_if { File.exist?(config_json) }
17
- end
18
-
19
- # Adding a new prototype file for delivery-cli local commands
20
- cookbook_file project_toml do
21
- source 'delivery-project.toml'
22
- not_if { File.exist?(project_toml) }
23
- end
24
-
25
- generator_desc('Ensuring correct delivery build cookbook content')
26
-
27
- build_cookbook_dir = File.join(dot_delivery_dir, 'build_cookbook')
28
-
29
- # cookbook root dir
30
- directory build_cookbook_dir
31
-
32
- # metadata.rb
33
- template "#{build_cookbook_dir}/metadata.rb" do
34
- source 'build_cookbook/metadata.rb.erb'
35
- helpers(ChefDK::Generator::TemplateHelper)
36
- action :create_if_missing
37
- end
38
-
39
- # README
40
- cookbook_file "#{build_cookbook_dir}/README.md" do
41
- source 'build_cookbook/README.md'
42
- action :create_if_missing
43
- end
44
-
45
- # LICENSE
46
- template "#{build_cookbook_dir}/LICENSE" do
47
- source "LICENSE.#{context.license}.erb"
48
- helpers(ChefDK::Generator::TemplateHelper)
49
- action :create_if_missing
50
- end
51
-
52
- # chefignore
53
- cookbook_file "#{build_cookbook_dir}/chefignore"
54
-
55
- # Berksfile
56
- template "#{build_cookbook_dir}/Berksfile" do
57
- source 'build_cookbook/Berksfile.erb'
58
- helpers(ChefDK::Generator::TemplateHelper)
59
- action :create_if_missing
60
- end
61
-
62
- # Recipes
63
- directory "#{build_cookbook_dir}/recipes"
64
-
65
- %w(default deploy functional lint provision publish quality security smoke syntax unit).each do |phase|
66
- template "#{build_cookbook_dir}/recipes/#{phase}.rb" do
67
- source 'build_cookbook/recipe.rb.erb'
68
- helpers(ChefDK::Generator::TemplateHelper)
69
- variables phase: phase
70
- action :create_if_missing
71
- end
72
- end
73
-
74
- # Test Kitchen build node
75
- cookbook_file "#{build_cookbook_dir}/.kitchen.yml" do
76
- source 'build_cookbook/.kitchen.yml'
77
- end
78
-
79
- directory "#{build_cookbook_dir}/data_bags/keys" do
80
- recursive true
81
- end
82
-
83
- file "#{build_cookbook_dir}/data_bags/keys/delivery_builder_keys.json" do
84
- content '{"id": "delivery_builder_keys"}'
85
- end
86
-
87
- directory "#{build_cookbook_dir}/secrets"
88
-
89
- file "#{build_cookbook_dir}/secrets/fakey-mcfakerton"
90
-
91
- directory "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes" do
92
- recursive true
93
- end
94
-
95
- file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/metadata.rb" do
96
- content %(name 'test'
97
- version '0.1.0')
98
- end
99
-
100
- cookbook_file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes/default.rb" do
101
- source 'build_cookbook/test-fixture-recipe.rb'
102
- end
103
-
104
- # Construct git history as if we did all the work in a feature branch which we
105
- # merged into master at the end, which looks like this:
106
- #
107
- # ```
108
- # git log --graph --oneline
109
- # * 5fec5bd Merge branch 'add-delivery-configuration'
110
- # |\
111
- # | * 967bb9f Add generated delivery build cookbook
112
- # | * 1558e0a Add generated delivery configuration
113
- # |/
114
- # * db22790 Add generated cookbook content
115
- # ```
116
- #
117
- if context.have_git && context.delivery_project_git_initialized && !context.skip_git_init
118
-
119
- generator_desc('Adding delivery configuration to feature branch')
120
-
121
- execute('git-create-feature-branch') do
122
- command('git checkout -t -b add-delivery-configuration')
123
- cwd delivery_project_dir
124
- not_if { shell_out('git branch', cwd: delivery_project_dir).stdout.match(/add-delivery-configuration/) }
125
- end
126
-
127
- execute('git-add-delivery-config-json') do
128
- command('git add .delivery/config.json')
129
- cwd delivery_project_dir
130
- only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/config.json}) }
131
- end
132
-
133
- # Adding the new prototype file to the feature branch
134
- # so it gets checked in with the delivery config commit
135
- execute('git-add-delivery-project-toml') do
136
- command('git add .delivery/project.toml')
137
- cwd delivery_project_dir
138
- only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/project.toml}) }
139
- end
140
-
141
- execute('git-commit-delivery-config') do
142
- command('git commit -m "Add generated delivery configuration"')
143
- cwd delivery_project_dir
144
- only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/config\.json|project\.toml/) }
145
- end
146
-
147
- generator_desc('Adding build cookbook to feature branch')
148
-
149
- execute('git-add-delivery-build-cookbook-files') do
150
- command('git add .delivery')
151
- cwd delivery_project_dir
152
- only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
153
- end
154
-
155
- execute('git-commit-delivery-build-cookbook') do
156
- command('git commit -m "Add generated delivery build cookbook"')
157
- cwd delivery_project_dir
158
- only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
159
- end
160
-
161
- execute("git-return-to-#{pipeline}-branch") do
162
- command("git checkout #{pipeline}")
163
- cwd delivery_project_dir
164
- end
165
-
166
- generator_desc('Merging delivery content feature branch to master')
167
-
168
- execute('git-merge-delivery-config-branch') do
169
- command('git merge --no-ff add-delivery-configuration')
170
- cwd delivery_project_dir
171
- end
172
-
173
- execute('git-remove-delivery-config-branch') do
174
- command('git branch -D add-delivery-configuration')
175
- cwd delivery_project_dir
176
- end
177
- end
1
+ # frozen_string_literal: true
2
+
3
+ context = ChefDK::Generator.context
4
+ delivery_project_dir = context.delivery_project_dir
5
+ pipeline = context.pipeline
6
+ dot_delivery_dir = File.join(delivery_project_dir, '.delivery')
7
+ config_json = File.join(dot_delivery_dir, 'config.json')
8
+ project_toml = File.join(dot_delivery_dir, 'project.toml')
9
+
10
+ generator_desc('Ensuring delivery configuration')
11
+
12
+ directory dot_delivery_dir
13
+
14
+ cookbook_file config_json do
15
+ source 'delivery-config.json'
16
+ not_if { File.exist?(config_json) }
17
+ end
18
+
19
+ # Adding a new prototype file for delivery-cli local commands
20
+ cookbook_file project_toml do
21
+ source 'delivery-project.toml'
22
+ not_if { File.exist?(project_toml) }
23
+ end
24
+
25
+ generator_desc('Ensuring correct delivery build cookbook content')
26
+
27
+ build_cookbook_dir = File.join(dot_delivery_dir, 'build_cookbook')
28
+
29
+ # cookbook root dir
30
+ directory build_cookbook_dir
31
+
32
+ # metadata.rb
33
+ template "#{build_cookbook_dir}/metadata.rb" do
34
+ source 'build_cookbook/metadata.rb.erb'
35
+ helpers(ChefDK::Generator::TemplateHelper)
36
+ action :create_if_missing
37
+ end
38
+
39
+ # README
40
+ cookbook_file "#{build_cookbook_dir}/README.md" do
41
+ source 'build_cookbook/README.md'
42
+ action :create_if_missing
43
+ end
44
+
45
+ # LICENSE
46
+ template "#{build_cookbook_dir}/LICENSE" do
47
+ source "LICENSE.#{context.license}.erb"
48
+ helpers(ChefDK::Generator::TemplateHelper)
49
+ action :create_if_missing
50
+ end
51
+
52
+ # chefignore
53
+ cookbook_file "#{build_cookbook_dir}/chefignore"
54
+
55
+ # Berksfile
56
+ template "#{build_cookbook_dir}/Berksfile" do
57
+ source 'build_cookbook/Berksfile.erb'
58
+ helpers(ChefDK::Generator::TemplateHelper)
59
+ action :create_if_missing
60
+ end
61
+
62
+ # Recipes
63
+ directory "#{build_cookbook_dir}/recipes"
64
+
65
+ %w(default deploy functional lint provision publish quality security smoke syntax unit).each do |phase|
66
+ template "#{build_cookbook_dir}/recipes/#{phase}.rb" do
67
+ source 'build_cookbook/recipe.rb.erb'
68
+ helpers(ChefDK::Generator::TemplateHelper)
69
+ variables phase: phase
70
+ action :create_if_missing
71
+ end
72
+ end
73
+
74
+ # Test Kitchen build node
75
+ cookbook_file "#{build_cookbook_dir}/.kitchen.yml" do
76
+ source 'build_cookbook/.kitchen.yml'
77
+ end
78
+
79
+ directory "#{build_cookbook_dir}/data_bags/keys" do
80
+ recursive true
81
+ end
82
+
83
+ file "#{build_cookbook_dir}/data_bags/keys/delivery_builder_keys.json" do
84
+ content '{"id": "delivery_builder_keys"}'
85
+ end
86
+
87
+ directory "#{build_cookbook_dir}/secrets"
88
+
89
+ file "#{build_cookbook_dir}/secrets/fakey-mcfakerton"
90
+
91
+ directory "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes" do
92
+ recursive true
93
+ end
94
+
95
+ file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/metadata.rb" do
96
+ content %(name 'test'
97
+ version '0.1.0')
98
+ end
99
+
100
+ cookbook_file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes/default.rb" do
101
+ source 'build_cookbook/test-fixture-recipe.rb'
102
+ end
103
+
104
+ # Construct git history as if we did all the work in a feature branch which we
105
+ # merged into master at the end, which looks like this:
106
+ #
107
+ # ```
108
+ # git log --graph --oneline
109
+ # * 5fec5bd Merge branch 'add-delivery-configuration'
110
+ # |\
111
+ # | * 967bb9f Add generated delivery build cookbook
112
+ # | * 1558e0a Add generated delivery configuration
113
+ # |/
114
+ # * db22790 Add generated cookbook content
115
+ # ```
116
+ #
117
+ if context.have_git && context.delivery_project_git_initialized && !context.skip_git_init
118
+
119
+ generator_desc('Adding delivery configuration to feature branch')
120
+
121
+ execute('git-create-feature-branch') do
122
+ command('git checkout -t -b add-delivery-configuration')
123
+ cwd delivery_project_dir
124
+ not_if { shell_out('git branch', cwd: delivery_project_dir).stdout.match(/add-delivery-configuration/) }
125
+ end
126
+
127
+ execute('git-add-delivery-config-json') do
128
+ command('git add .delivery/config.json')
129
+ cwd delivery_project_dir
130
+ only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/config.json}) }
131
+ end
132
+
133
+ # Adding the new prototype file to the feature branch
134
+ # so it gets checked in with the delivery config commit
135
+ execute('git-add-delivery-project-toml') do
136
+ command('git add .delivery/project.toml')
137
+ cwd delivery_project_dir
138
+ only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/project.toml}) }
139
+ end
140
+
141
+ execute('git-commit-delivery-config') do
142
+ command('git commit -m "Add generated delivery configuration"')
143
+ cwd delivery_project_dir
144
+ only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/config\.json|project\.toml/) }
145
+ end
146
+
147
+ generator_desc('Adding build cookbook to feature branch')
148
+
149
+ execute('git-add-delivery-build-cookbook-files') do
150
+ command('git add .delivery')
151
+ cwd delivery_project_dir
152
+ only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
153
+ end
154
+
155
+ execute('git-commit-delivery-build-cookbook') do
156
+ command('git commit -m "Add generated delivery build cookbook"')
157
+ cwd delivery_project_dir
158
+ only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
159
+ end
160
+
161
+ execute("git-return-to-#{pipeline}-branch") do
162
+ command("git checkout #{pipeline}")
163
+ cwd delivery_project_dir
164
+ end
165
+
166
+ generator_desc('Merging delivery content feature branch to master')
167
+
168
+ execute('git-merge-delivery-config-branch') do
169
+ command('git merge --no-ff add-delivery-configuration')
170
+ cwd delivery_project_dir
171
+ end
172
+
173
+ execute('git-remove-delivery-config-branch') do
174
+ command('git branch -D add-delivery-configuration')
175
+ cwd delivery_project_dir
176
+ end
177
+ end
@@ -1,152 +1,158 @@
1
- # frozen_string_literal: true
2
-
3
- context = ChefDK::Generator.context
4
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
5
-
6
- silence_chef_formatter unless context.verbose
7
-
8
- generator_desc('Ensuring correct cookbook file content')
9
-
10
- # cookbook root dir
11
- directory cookbook_dir
12
-
13
- # metadata.rb
14
- spdx_license = case context.license
15
- when 'apachev2'
16
- 'Apache-2.0'
17
- when 'mit'
18
- 'MIT'
19
- when 'gplv2'
20
- 'GPL-2.0'
21
- when 'gplv3'
22
- 'GPL-3.0'
23
- else
24
- 'All Rights Reserved'
25
- end
26
-
27
- template "#{cookbook_dir}/metadata.rb" do
28
- helpers(ChefDK::Generator::TemplateHelper)
29
- variables(
30
- spdx_license: spdx_license
31
- )
32
- action :create_if_missing
33
- end
34
-
35
- # README
36
- template "#{cookbook_dir}/README.md" do
37
- helpers(ChefDK::Generator::TemplateHelper)
38
- action :create_if_missing
39
- end
40
-
41
- # chefignore
42
- cookbook_file "#{cookbook_dir}/chefignore"
43
-
44
- if context.use_berkshelf
45
-
46
- # Berks
47
- cookbook_file "#{cookbook_dir}/Berksfile" do
48
- action :create_if_missing
49
- end
50
- else
51
-
52
- # Policyfile
53
- template "#{cookbook_dir}/Policyfile.rb" do
54
- source 'Policyfile.rb.erb'
55
- helpers(ChefDK::Generator::TemplateHelper)
56
- end
57
-
58
- end
59
-
60
- # LICENSE
61
- template "#{cookbook_dir}/LICENSE" do
62
- helpers(ChefDK::Generator::TemplateHelper)
63
- source "LICENSE.#{context.license}.erb"
64
- action :create_if_missing
65
- end
66
-
67
- # Test Kitchen
68
- template "#{cookbook_dir}/.kitchen.yml" do
69
- if context.use_berkshelf
70
- source 'kitchen.yml.erb'
71
- else
72
- source 'kitchen_policyfile.yml.erb'
73
- end
74
-
75
- helpers(ChefDK::Generator::TemplateHelper)
76
- action :create_if_missing
77
- end
78
-
79
- # Inspec
80
- directory "#{cookbook_dir}/test/integration/default" do
81
- recursive true
82
- end
83
-
84
- template "#{cookbook_dir}/test/integration/default/default_test.rb" do
85
- source 'inspec_default_test.rb.erb'
86
- helpers(ChefDK::Generator::TemplateHelper)
87
- action :create_if_missing
88
- end
89
-
90
- # Chefspec
91
- directory "#{cookbook_dir}/spec/unit/recipes" do
92
- recursive true
93
- end
94
-
95
- cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
96
- if context.use_berkshelf
97
- source 'spec_helper.rb'
98
- else
99
- source 'spec_helper_policyfile.rb'
100
- end
101
-
102
- action :create_if_missing
103
- end
104
-
105
- template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
106
- source 'recipe_spec.rb.erb'
107
- helpers(ChefDK::Generator::TemplateHelper)
108
- action :create_if_missing
109
- end
110
-
111
- # Recipes
112
-
113
- directory "#{cookbook_dir}/recipes"
114
-
115
- template "#{cookbook_dir}/recipes/default.rb" do
116
- source 'recipe.rb.erb'
117
- helpers(ChefDK::Generator::TemplateHelper)
118
- action :create_if_missing
119
- end
120
-
121
- # git
122
- if context.have_git
123
- unless context.skip_git_init
124
-
125
- generator_desc('Committing cookbook files to git')
126
-
127
- execute('initialize-git') do
128
- command('git init .')
129
- cwd cookbook_dir
130
- end
131
-
132
- end
133
-
134
- cookbook_file "#{cookbook_dir}/.gitignore" do
135
- source 'gitignore'
136
- end
137
-
138
- unless context.skip_git_init
139
-
140
- execute('git-add-new-files') do
141
- command('git add .')
142
- cwd cookbook_dir
143
- end
144
-
145
- execute('git-commit-new-files') do
146
- command('git commit -m "Add generated cookbook content"')
147
- cwd cookbook_dir
148
- end
149
- end
150
- end
151
-
152
- include_recipe '::build_cookbook' if context.enable_delivery
1
+ # frozen_string_literal: true
2
+
3
+ context = ChefDK::Generator.context
4
+ cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
5
+
6
+ silence_chef_formatter unless context.verbose
7
+
8
+ generator_desc('Ensuring correct cookbook file content')
9
+
10
+ # cookbook root dir
11
+ directory cookbook_dir
12
+
13
+ # metadata.rb
14
+ spdx_license = case context.license
15
+ when 'apachev2'
16
+ 'Apache-2.0'
17
+ when 'mit'
18
+ 'MIT'
19
+ when 'gplv2'
20
+ 'GPL-2.0'
21
+ when 'gplv3'
22
+ 'GPL-3.0'
23
+ else
24
+ 'All Rights Reserved'
25
+ end
26
+
27
+ template "#{cookbook_dir}/metadata.rb" do
28
+ helpers(ChefDK::Generator::TemplateHelper)
29
+ variables(
30
+ spdx_license: spdx_license
31
+ )
32
+ action :create_if_missing
33
+ end
34
+
35
+ # README
36
+ template "#{cookbook_dir}/README.md" do
37
+ helpers(ChefDK::Generator::TemplateHelper)
38
+ action :create_if_missing
39
+ end
40
+
41
+ # CHANGELOG
42
+ template "#{cookbook_dir}/CHANGELOG.md" do
43
+ helpers(ChefDK::Generator::TemplateHelper)
44
+ action :create_if_missing
45
+ end
46
+
47
+ # chefignore
48
+ cookbook_file "#{cookbook_dir}/chefignore"
49
+
50
+ if context.use_berkshelf
51
+
52
+ # Berks
53
+ cookbook_file "#{cookbook_dir}/Berksfile" do
54
+ action :create_if_missing
55
+ end
56
+ else
57
+
58
+ # Policyfile
59
+ template "#{cookbook_dir}/Policyfile.rb" do
60
+ source 'Policyfile.rb.erb'
61
+ helpers(ChefDK::Generator::TemplateHelper)
62
+ end
63
+
64
+ end
65
+
66
+ # LICENSE
67
+ template "#{cookbook_dir}/LICENSE" do
68
+ helpers(ChefDK::Generator::TemplateHelper)
69
+ source "LICENSE.#{context.license}.erb"
70
+ action :create_if_missing
71
+ end
72
+
73
+ # Test Kitchen
74
+ template "#{cookbook_dir}/.kitchen.yml" do
75
+ if context.use_berkshelf
76
+ source 'kitchen.yml.erb'
77
+ else
78
+ source 'kitchen_policyfile.yml.erb'
79
+ end
80
+
81
+ helpers(ChefDK::Generator::TemplateHelper)
82
+ action :create_if_missing
83
+ end
84
+
85
+ # Inspec
86
+ directory "#{cookbook_dir}/test/integration/default" do
87
+ recursive true
88
+ end
89
+
90
+ template "#{cookbook_dir}/test/integration/default/default_test.rb" do
91
+ source 'inspec_default_test.rb.erb'
92
+ helpers(ChefDK::Generator::TemplateHelper)
93
+ action :create_if_missing
94
+ end
95
+
96
+ # Chefspec
97
+ directory "#{cookbook_dir}/spec/unit/recipes" do
98
+ recursive true
99
+ end
100
+
101
+ cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
102
+ if context.use_berkshelf
103
+ source 'spec_helper.rb'
104
+ else
105
+ source 'spec_helper_policyfile.rb'
106
+ end
107
+
108
+ action :create_if_missing
109
+ end
110
+
111
+ template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
112
+ source 'recipe_spec.rb.erb'
113
+ helpers(ChefDK::Generator::TemplateHelper)
114
+ action :create_if_missing
115
+ end
116
+
117
+ # Recipes
118
+
119
+ directory "#{cookbook_dir}/recipes"
120
+
121
+ template "#{cookbook_dir}/recipes/default.rb" do
122
+ source 'recipe.rb.erb'
123
+ helpers(ChefDK::Generator::TemplateHelper)
124
+ action :create_if_missing
125
+ end
126
+
127
+ # git
128
+ if context.have_git
129
+ unless context.skip_git_init
130
+
131
+ generator_desc('Committing cookbook files to git')
132
+
133
+ execute('initialize-git') do
134
+ command('git init .')
135
+ cwd cookbook_dir
136
+ end
137
+
138
+ end
139
+
140
+ cookbook_file "#{cookbook_dir}/.gitignore" do
141
+ source 'gitignore'
142
+ end
143
+
144
+ unless context.skip_git_init
145
+
146
+ execute('git-add-new-files') do
147
+ command('git add .')
148
+ cwd cookbook_dir
149
+ end
150
+
151
+ execute('git-commit-new-files') do
152
+ command('git commit -m "Add generated cookbook content"')
153
+ cwd cookbook_dir
154
+ end
155
+ end
156
+ end
157
+
158
+ include_recipe '::build_cookbook' if context.enable_delivery