r10k 3.5.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.
Files changed (358) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +1 -0
  3. data/.github/pull_request_template.md +1 -0
  4. data/.github/workflows/docker.yml +56 -0
  5. data/.github/workflows/release.yml +36 -0
  6. data/.gitignore +9 -0
  7. data/.travis.yml +45 -0
  8. data/CHANGELOG.mkd +1759 -0
  9. data/CODEOWNERS +2 -0
  10. data/CONTRIBUTING.mkd +105 -0
  11. data/Gemfile +15 -0
  12. data/LICENSE +14 -0
  13. data/README.mkd +118 -0
  14. data/Rakefile +3 -0
  15. data/azure-pipelines.yml +86 -0
  16. data/bin/r10k +17 -0
  17. data/doc/common-patterns.mkd +44 -0
  18. data/doc/dynamic-environments.mkd +31 -0
  19. data/doc/dynamic-environments/configuration.mkd +669 -0
  20. data/doc/dynamic-environments/git-environments.mkd +75 -0
  21. data/doc/dynamic-environments/introduction.mkd +69 -0
  22. data/doc/dynamic-environments/master-configuration.mkd +40 -0
  23. data/doc/dynamic-environments/quickstart.mkd +201 -0
  24. data/doc/dynamic-environments/svn-environments.mkd +45 -0
  25. data/doc/dynamic-environments/usage.mkd +132 -0
  26. data/doc/dynamic-environments/workflow-guide.mkd +247 -0
  27. data/doc/faq.mkd +164 -0
  28. data/doc/git/cloning-and-mirroring.mkd +60 -0
  29. data/doc/git/providers.mkd +111 -0
  30. data/doc/puppetfile.mkd +309 -0
  31. data/doc/updating-your-puppetfile.mkd +38 -0
  32. data/docker/.gitignore +1 -0
  33. data/docker/.rspec +4 -0
  34. data/docker/Gemfile +11 -0
  35. data/docker/Makefile +89 -0
  36. data/docker/README.md +28 -0
  37. data/docker/r10k/Dockerfile +67 -0
  38. data/docker/r10k/adduser.sh +13 -0
  39. data/docker/r10k/docker-entrypoint.d/10-analytics.sh +30 -0
  40. data/docker/r10k/docker-entrypoint.sh +11 -0
  41. data/docker/r10k/release.Dockerfile +54 -0
  42. data/docker/spec/dockerfile_spec.rb +43 -0
  43. data/docker/spec/fixtures/Puppetfile +2 -0
  44. data/integration/Gemfile +19 -0
  45. data/integration/README.mkd +29 -0
  46. data/integration/Rakefile +77 -0
  47. data/integration/component/pre-suite/05_install_dev_r10k.rb +12 -0
  48. data/integration/files/README.mkd +4 -0
  49. data/integration/files/hiera.yaml +8 -0
  50. data/integration/files/modules/helloworld/manifests/init.pp +3 -0
  51. data/integration/files/modules/hieratest/manifests/init.pp +3 -0
  52. data/integration/files/modules/unicode/files/pretend_unicode +1 -0
  53. data/integration/files/modules/unicode/manifests/init.pp +6 -0
  54. data/integration/files/pre-suite/git_config.pp.erb +19 -0
  55. data/integration/files/pre-suite/prod_env.config +3 -0
  56. data/integration/files/r10k_conf.yaml.erb +9 -0
  57. data/integration/lib/README.mkd +4 -0
  58. data/integration/lib/git_utils.rb +205 -0
  59. data/integration/lib/master_manipulator.rb +205 -0
  60. data/integration/lib/r10k_utils.rb +222 -0
  61. data/integration/manifests/README.mkd +4 -0
  62. data/integration/pre-suite/00_pe_install.rb +6 -0
  63. data/integration/pre-suite/10_git_config.rb +48 -0
  64. data/integration/pre-suite/20_pe_r10k.rb +55 -0
  65. data/integration/pre-suite/README.mkd +5 -0
  66. data/integration/tests/Puppetfile/HTTP_PROXY_affects_forge_source.rb +72 -0
  67. data/integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb +70 -0
  68. data/integration/tests/README.mkd +4 -0
  69. data/integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb +83 -0
  70. data/integration/tests/basic_functionality/negative/neg_deploy_with_invalid_r10k_yaml.rb +51 -0
  71. data/integration/tests/basic_functionality/negative/neg_deploy_with_missing_r10k_yaml.rb +28 -0
  72. data/integration/tests/basic_functionality/negative/neg_invalid_git_provider.rb +45 -0
  73. data/integration/tests/basic_functionality/negative/negative_bad_proxy.rb +34 -0
  74. data/integration/tests/basic_functionality/proxy_specified_in_configuration.rb +103 -0
  75. data/integration/tests/basic_functionality/proxy_with_pe_only_module.rb +128 -0
  76. data/integration/tests/basic_functionality/proxy_with_puppetfile.rb +61 -0
  77. data/integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb +109 -0
  78. data/integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb +108 -0
  79. data/integration/tests/command_line/deploy_env_without_mod_update.rb +76 -0
  80. data/integration/tests/command_line/negative/neg_deploy_env_with_module_update.rb +77 -0
  81. data/integration/tests/command_line/negative/neg_invalid_cmd_line_arg.rb +23 -0
  82. data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +70 -0
  83. data/integration/tests/git_source/git_source_git.rb +128 -0
  84. data/integration/tests/git_source/git_source_ssh.rb +87 -0
  85. data/integration/tests/git_source/git_source_submodule.rb +70 -0
  86. data/integration/tests/git_source/negative/neg_git_broken_remote.rb +38 -0
  87. data/integration/tests/git_source/negative/neg_git_unauthorized_https.rb +46 -0
  88. data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +73 -0
  89. data/integration/tests/git_source/negative/neg_git_unicode_branch.rb +35 -0
  90. data/integration/tests/i18n/deploy_module_with_unicode_in_file_name.rb +64 -0
  91. data/integration/tests/purging/content_not_purged_at_root.rb +89 -0
  92. data/integration/tests/purging/default_purging.rb +125 -0
  93. data/integration/tests/purging/does_not_purge_files_on_white_list.rb +93 -0
  94. data/integration/tests/purging/invalid_whitelist_types.rb +63 -0
  95. data/integration/tests/user_scenario/basic_workflow/multi_env_1000_branches.rb +66 -0
  96. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +111 -0
  97. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +117 -0
  98. data/integration/tests/user_scenario/basic_workflow/multi_env_hiera.rb +100 -0
  99. data/integration/tests/user_scenario/basic_workflow/multi_env_multi_source.rb +133 -0
  100. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +161 -0
  101. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_basedir.rb +46 -0
  102. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_forge_module.rb +48 -0
  103. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +45 -0
  104. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +43 -0
  105. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_remote.rb +45 -0
  106. data/integration/tests/user_scenario/basic_workflow/negative/neg_branch_name_collision.rb +64 -0
  107. data/integration/tests/user_scenario/basic_workflow/negative/neg_disk_full.rb +75 -0
  108. data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +44 -0
  109. data/integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb +58 -0
  110. data/integration/tests/user_scenario/basic_workflow/negative/neg_invalid_env_name.rb +34 -0
  111. data/integration/tests/user_scenario/basic_workflow/negative/neg_invalid_puppet_file.rb +36 -0
  112. data/integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb +49 -0
  113. data/integration/tests/user_scenario/basic_workflow/negative/neg_read_only.rb +58 -0
  114. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +51 -0
  115. data/integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb +75 -0
  116. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +104 -0
  117. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_module.rb +81 -0
  118. data/integration/tests/user_scenario/basic_workflow/single_env_custom_module.rb +49 -0
  119. data/integration/tests/user_scenario/basic_workflow/single_env_large_files.rb +75 -0
  120. data/integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb +82 -0
  121. data/integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb +68 -0
  122. data/integration/tests/user_scenario/basic_workflow/single_env_non-existent_base_dir.rb +94 -0
  123. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +93 -0
  124. data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +117 -0
  125. data/integration/tests/user_scenario/basic_workflow/single_env_unicode_paths.rb +60 -0
  126. data/integration/tests/user_scenario/basic_workflow/single_env_upgrade_forge_mod_revert_change.rb +166 -0
  127. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +163 -0
  128. data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +111 -0
  129. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +78 -0
  130. data/integration/tests/user_scenario/complex_workflow/single_env_git_module_update.rb +100 -0
  131. data/lib/r10k.rb +11 -0
  132. data/lib/r10k/action/base.rb +31 -0
  133. data/lib/r10k/action/cri_runner.rb +72 -0
  134. data/lib/r10k/action/deploy.rb +9 -0
  135. data/lib/r10k/action/deploy/deploy_helpers.rb +34 -0
  136. data/lib/r10k/action/deploy/display.rb +89 -0
  137. data/lib/r10k/action/deploy/environment.rb +196 -0
  138. data/lib/r10k/action/deploy/module.rb +84 -0
  139. data/lib/r10k/action/puppetfile.rb +10 -0
  140. data/lib/r10k/action/puppetfile/check.rb +31 -0
  141. data/lib/r10k/action/puppetfile/cri_runner.rb +26 -0
  142. data/lib/r10k/action/puppetfile/install.rb +45 -0
  143. data/lib/r10k/action/puppetfile/purge.rb +28 -0
  144. data/lib/r10k/action/runner.rb +96 -0
  145. data/lib/r10k/action/visitor.rb +31 -0
  146. data/lib/r10k/cli.rb +51 -0
  147. data/lib/r10k/cli/deploy.rb +114 -0
  148. data/lib/r10k/cli/ext/logging.rb +15 -0
  149. data/lib/r10k/cli/help.rb +7 -0
  150. data/lib/r10k/cli/puppetfile.rb +74 -0
  151. data/lib/r10k/cli/version.rb +31 -0
  152. data/lib/r10k/deployment.rb +132 -0
  153. data/lib/r10k/deployment/config.rb +56 -0
  154. data/lib/r10k/environment.rb +37 -0
  155. data/lib/r10k/environment/bare.rb +16 -0
  156. data/lib/r10k/environment/base.rb +150 -0
  157. data/lib/r10k/environment/git.rb +81 -0
  158. data/lib/r10k/environment/name.rb +86 -0
  159. data/lib/r10k/environment/svn.rb +91 -0
  160. data/lib/r10k/environment/with_modules.rb +139 -0
  161. data/lib/r10k/errors.rb +61 -0
  162. data/lib/r10k/errors/formatting.rb +28 -0
  163. data/lib/r10k/feature.rb +56 -0
  164. data/lib/r10k/feature/collection.rb +23 -0
  165. data/lib/r10k/features.rb +20 -0
  166. data/lib/r10k/forge/module_release.rb +228 -0
  167. data/lib/r10k/git.rb +196 -0
  168. data/lib/r10k/git/alternates.rb +63 -0
  169. data/lib/r10k/git/cache.rb +108 -0
  170. data/lib/r10k/git/errors.rb +34 -0
  171. data/lib/r10k/git/rugged.rb +17 -0
  172. data/lib/r10k/git/rugged/bare_repository.rb +85 -0
  173. data/lib/r10k/git/rugged/base_repository.rb +93 -0
  174. data/lib/r10k/git/rugged/cache.rb +11 -0
  175. data/lib/r10k/git/rugged/credentials.rb +91 -0
  176. data/lib/r10k/git/rugged/thin_repository.rb +89 -0
  177. data/lib/r10k/git/rugged/working_repository.rb +145 -0
  178. data/lib/r10k/git/shellgit.rb +9 -0
  179. data/lib/r10k/git/shellgit/bare_repository.rb +43 -0
  180. data/lib/r10k/git/shellgit/base_repository.rb +137 -0
  181. data/lib/r10k/git/shellgit/cache.rb +11 -0
  182. data/lib/r10k/git/shellgit/thin_repository.rb +69 -0
  183. data/lib/r10k/git/shellgit/working_repository.rb +111 -0
  184. data/lib/r10k/git/stateful_repository.rb +95 -0
  185. data/lib/r10k/initializers.rb +67 -0
  186. data/lib/r10k/instance_cache.rb +32 -0
  187. data/lib/r10k/keyed_factory.rb +39 -0
  188. data/lib/r10k/logging.rb +109 -0
  189. data/lib/r10k/logging/terminaloutputter.rb +36 -0
  190. data/lib/r10k/module.rb +38 -0
  191. data/lib/r10k/module/base.rb +113 -0
  192. data/lib/r10k/module/forge.rb +177 -0
  193. data/lib/r10k/module/git.rb +109 -0
  194. data/lib/r10k/module/local.rb +36 -0
  195. data/lib/r10k/module/metadata_file.rb +31 -0
  196. data/lib/r10k/module/svn.rb +112 -0
  197. data/lib/r10k/puppetfile.rb +286 -0
  198. data/lib/r10k/settings.rb +194 -0
  199. data/lib/r10k/settings/collection.rb +123 -0
  200. data/lib/r10k/settings/container.rb +97 -0
  201. data/lib/r10k/settings/definition.rb +124 -0
  202. data/lib/r10k/settings/enum_definition.rb +30 -0
  203. data/lib/r10k/settings/helpers.rb +38 -0
  204. data/lib/r10k/settings/list.rb +107 -0
  205. data/lib/r10k/settings/loader.rb +99 -0
  206. data/lib/r10k/settings/mixin.rb +54 -0
  207. data/lib/r10k/settings/uri_definition.rb +19 -0
  208. data/lib/r10k/source.rb +42 -0
  209. data/lib/r10k/source/base.rb +74 -0
  210. data/lib/r10k/source/exec.rb +51 -0
  211. data/lib/r10k/source/git.rb +142 -0
  212. data/lib/r10k/source/hash.rb +182 -0
  213. data/lib/r10k/source/svn.rb +136 -0
  214. data/lib/r10k/source/yaml.rb +20 -0
  215. data/lib/r10k/source/yamldir.rb +32 -0
  216. data/lib/r10k/svn.rb +6 -0
  217. data/lib/r10k/svn/remote.rb +68 -0
  218. data/lib/r10k/svn/working_dir.rb +125 -0
  219. data/lib/r10k/util/attempt.rb +84 -0
  220. data/lib/r10k/util/basedir.rb +65 -0
  221. data/lib/r10k/util/commands.rb +31 -0
  222. data/lib/r10k/util/exec_env.rb +36 -0
  223. data/lib/r10k/util/license.rb +24 -0
  224. data/lib/r10k/util/platform.rb +42 -0
  225. data/lib/r10k/util/purgeable.rb +88 -0
  226. data/lib/r10k/util/setopts.rb +55 -0
  227. data/lib/r10k/util/subprocess.rb +84 -0
  228. data/lib/r10k/util/subprocess/result.rb +56 -0
  229. data/lib/r10k/util/subprocess/runner.rb +26 -0
  230. data/lib/r10k/util/subprocess/runner/jruby.rb +23 -0
  231. data/lib/r10k/util/subprocess/runner/posix.rb +103 -0
  232. data/lib/r10k/util/subprocess/runner/pump.rb +59 -0
  233. data/lib/r10k/util/subprocess/runner/windows.rb +23 -0
  234. data/lib/r10k/util/subprocess/subprocess_error.rb +24 -0
  235. data/lib/r10k/util/symbolize_keys.rb +35 -0
  236. data/lib/r10k/version.rb +6 -0
  237. data/locales/config.yaml +21 -0
  238. data/locales/r10k.pot +545 -0
  239. data/r10k.gemspec +50 -0
  240. data/r10k.yaml.example +112 -0
  241. data/spec/fixtures/empty/.empty +0 -0
  242. data/spec/fixtures/integration/git/puppet-boolean-bare.tar +0 -0
  243. data/spec/fixtures/module/forge/bad_module/metadata.json +1 -0
  244. data/spec/fixtures/module/forge/eight_hundred/Modulefile +8 -0
  245. data/spec/fixtures/module/forge/eight_hundred/metadata.json +19 -0
  246. data/spec/fixtures/unit/action/r10k.yaml +5 -0
  247. data/spec/fixtures/unit/action/r10k_cachedir.yaml +2 -0
  248. data/spec/fixtures/unit/action/r10k_generate_types.yaml +3 -0
  249. data/spec/fixtures/unit/action/r10k_puppet_path.yaml +3 -0
  250. data/spec/fixtures/unit/puppetfile/argument-error/Puppetfile +1 -0
  251. data/spec/fixtures/unit/puppetfile/default-branch-override/Puppetfile +5 -0
  252. data/spec/fixtures/unit/puppetfile/duplicate-module-error/Puppetfile +10 -0
  253. data/spec/fixtures/unit/puppetfile/invalid-syntax/Puppetfile +1 -0
  254. data/spec/fixtures/unit/puppetfile/load-error/Puppetfile +1 -0
  255. data/spec/fixtures/unit/puppetfile/name-error/Puppetfile +1 -0
  256. data/spec/fixtures/unit/puppetfile/valid-forge-with-version/Puppetfile +1 -0
  257. data/spec/fixtures/unit/puppetfile/valid-forge-without-version/Puppetfile +1 -0
  258. data/spec/fixtures/unit/util/purgeable/managed_one/expected_1 +0 -0
  259. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_expected_1 +0 -0
  260. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_unmanaged_1 +0 -0
  261. data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_1 +0 -0
  262. data/spec/fixtures/unit/util/purgeable/managed_two/expected_2 +0 -0
  263. data/spec/fixtures/unit/util/purgeable/managed_two/unmanaged_2 +0 -0
  264. data/spec/fixtures/unit/util/subprocess/runner/no-execute.sh +3 -0
  265. data/spec/integration/git/rugged/bare_repository_spec.rb +13 -0
  266. data/spec/integration/git/rugged/thin_repository_spec.rb +14 -0
  267. data/spec/integration/git/rugged/working_repository_spec.rb +48 -0
  268. data/spec/integration/git/shellgit/bare_repository_spec.rb +13 -0
  269. data/spec/integration/git/shellgit/thin_repository_spec.rb +14 -0
  270. data/spec/integration/git/shellgit/working_repository_spec.rb +13 -0
  271. data/spec/integration/git/stateful_repository_spec.rb +159 -0
  272. data/spec/matchers/exit_with.rb +28 -0
  273. data/spec/matchers/match_realpath.rb +18 -0
  274. data/spec/r10k-mocks.rb +3 -0
  275. data/spec/r10k-mocks/mock_config.rb +33 -0
  276. data/spec/r10k-mocks/mock_env.rb +15 -0
  277. data/spec/r10k-mocks/mock_source.rb +13 -0
  278. data/spec/shared-contexts/git-fixtures.rb +55 -0
  279. data/spec/shared-examples/deploy-actions.rb +69 -0
  280. data/spec/shared-examples/git-repository.rb +38 -0
  281. data/spec/shared-examples/git/bare_repository.rb +132 -0
  282. data/spec/shared-examples/git/thin_repository.rb +26 -0
  283. data/spec/shared-examples/git/working_repository.rb +207 -0
  284. data/spec/shared-examples/puppetfile-action.rb +39 -0
  285. data/spec/shared-examples/settings/ancestry.rb +44 -0
  286. data/spec/shared-examples/subprocess-runner.rb +83 -0
  287. data/spec/spec_helper.rb +40 -0
  288. data/spec/unit/action/cri_runner_spec.rb +72 -0
  289. data/spec/unit/action/deploy/deploy_helpers_spec.rb +38 -0
  290. data/spec/unit/action/deploy/display_spec.rb +31 -0
  291. data/spec/unit/action/deploy/environment_spec.rb +395 -0
  292. data/spec/unit/action/deploy/module_spec.rb +139 -0
  293. data/spec/unit/action/puppetfile/check_spec.rb +41 -0
  294. data/spec/unit/action/puppetfile/cri_runner_spec.rb +47 -0
  295. data/spec/unit/action/puppetfile/install_spec.rb +84 -0
  296. data/spec/unit/action/puppetfile/purge_spec.rb +42 -0
  297. data/spec/unit/action/runner_spec.rb +213 -0
  298. data/spec/unit/action/visitor_spec.rb +39 -0
  299. data/spec/unit/cli_spec.rb +9 -0
  300. data/spec/unit/deployment/config_spec.rb +33 -0
  301. data/spec/unit/deployment_spec.rb +162 -0
  302. data/spec/unit/environment/base_spec.rb +109 -0
  303. data/spec/unit/environment/git_spec.rb +97 -0
  304. data/spec/unit/environment/name_spec.rb +135 -0
  305. data/spec/unit/environment/svn_spec.rb +133 -0
  306. data/spec/unit/errors/formatting_spec.rb +84 -0
  307. data/spec/unit/feature_spec.rb +50 -0
  308. data/spec/unit/forge/module_release_spec.rb +213 -0
  309. data/spec/unit/git/alternates_spec.rb +116 -0
  310. data/spec/unit/git/cache_spec.rb +55 -0
  311. data/spec/unit/git/rugged/cache_spec.rb +29 -0
  312. data/spec/unit/git/rugged/credentials_spec.rb +109 -0
  313. data/spec/unit/git/shellgit/cache_spec.rb +27 -0
  314. data/spec/unit/git/stateful_repository_spec.rb +40 -0
  315. data/spec/unit/git_spec.rb +102 -0
  316. data/spec/unit/initializers_spec.rb +68 -0
  317. data/spec/unit/instance_cache_spec.rb +78 -0
  318. data/spec/unit/keyed_factory_spec.rb +51 -0
  319. data/spec/unit/logging/terminaloutputter_spec.rb +53 -0
  320. data/spec/unit/logging_spec.rb +68 -0
  321. data/spec/unit/module/base_spec.rb +72 -0
  322. data/spec/unit/module/forge_spec.rb +207 -0
  323. data/spec/unit/module/git_spec.rb +274 -0
  324. data/spec/unit/module/metadata_file_spec.rb +68 -0
  325. data/spec/unit/module/svn_spec.rb +178 -0
  326. data/spec/unit/module_spec.rb +29 -0
  327. data/spec/unit/puppetfile_spec.rb +300 -0
  328. data/spec/unit/settings/collection_spec.rb +123 -0
  329. data/spec/unit/settings/container_spec.rb +92 -0
  330. data/spec/unit/settings/definition_spec.rb +79 -0
  331. data/spec/unit/settings/enum_definition_spec.rb +20 -0
  332. data/spec/unit/settings/inheritance_spec.rb +38 -0
  333. data/spec/unit/settings/list_spec.rb +88 -0
  334. data/spec/unit/settings/loader_spec.rb +110 -0
  335. data/spec/unit/settings/uri_definition_spec.rb +23 -0
  336. data/spec/unit/settings_spec.rb +246 -0
  337. data/spec/unit/source/base_spec.rb +31 -0
  338. data/spec/unit/source/exec_spec.rb +81 -0
  339. data/spec/unit/source/git_spec.rb +185 -0
  340. data/spec/unit/source/hash_spec.rb +54 -0
  341. data/spec/unit/source/svn_spec.rb +196 -0
  342. data/spec/unit/source/yaml_spec.rb +42 -0
  343. data/spec/unit/source_spec.rb +10 -0
  344. data/spec/unit/svn/remote_spec.rb +21 -0
  345. data/spec/unit/svn/working_dir_spec.rb +56 -0
  346. data/spec/unit/util/attempt_spec.rb +82 -0
  347. data/spec/unit/util/commands_spec.rb +61 -0
  348. data/spec/unit/util/exec_env_spec.rb +56 -0
  349. data/spec/unit/util/purgeable_spec.rb +230 -0
  350. data/spec/unit/util/setopts_spec.rb +59 -0
  351. data/spec/unit/util/subprocess/result_spec.rb +36 -0
  352. data/spec/unit/util/subprocess/runner/posix_spec.rb +7 -0
  353. data/spec/unit/util/subprocess/runner/pump_spec.rb +79 -0
  354. data/spec/unit/util/subprocess/runner/windows_spec.rb +7 -0
  355. data/spec/unit/util/subprocess/subprocess_error_spec.rb +26 -0
  356. data/spec/unit/util/subprocess_spec.rb +65 -0
  357. data/spec/unit/util/symbolize_keys_spec.rb +67 -0
  358. metadata +582 -0
@@ -0,0 +1,59 @@
1
+ require 'r10k/util/subprocess/runner'
2
+
3
+ # Perform nonblocking reads on a streaming IO instance.
4
+ #
5
+ # @api private
6
+ class R10K::Util::Subprocess::Runner::Pump
7
+
8
+ # !@attribute [r] string
9
+ # @return [String] The output collected from the IO device
10
+ attr_reader :string
11
+
12
+ # @!attribute [r] min_delay
13
+ # @return [Float] The minimum time to wait while polling the IO device
14
+ attr_accessor :min_delay
15
+
16
+ # @!attribute [r] max_delay
17
+ # @return [Float] The maximum time to wait while polling the IO device
18
+ attr_accessor :max_delay
19
+
20
+ def initialize(io)
21
+ @io = io
22
+ @thread = nil
23
+ @string = ''
24
+ @run = true
25
+ @min_delay = 0.05
26
+ @max_delay = 1.0
27
+ end
28
+
29
+ def start
30
+ @thread = Thread.new { pump }
31
+ end
32
+
33
+ def halt!
34
+ @run = false
35
+ @thread.join
36
+ end
37
+
38
+ # Block until the pumping thread reaches EOF on the IO object.
39
+ def wait
40
+ @thread.join
41
+ end
42
+
43
+ private
44
+
45
+ def pump
46
+ backoff = @min_delay
47
+ while @run
48
+ begin
49
+ @string << @io.read_nonblock(4096)
50
+ backoff /= 2 if backoff > @min_delay
51
+ rescue Errno::EWOULDBLOCK, Errno::EAGAIN
52
+ backoff *= 2 if backoff < @max_delay
53
+ IO.select([@io], [], [], backoff)
54
+ rescue EOFError
55
+ @run = false
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,23 @@
1
+ require 'open3'
2
+ require 'r10k/util/subprocess/runner'
3
+
4
+ # Run processes on Windows.
5
+ #
6
+ # This implementation relies on Open3.capture3 to run commands and capture
7
+ # results. In contrast to the POSIX runner this cannot be used in an
8
+ # asynchronous manner as-is; implementing that will probably mean launching a
9
+ # thread and invoking #capture3 in that thread.
10
+ class R10K::Util::Subprocess::Runner::Windows < R10K::Util::Subprocess::Runner
11
+
12
+ def initialize(argv)
13
+ @argv = argv
14
+ end
15
+
16
+ def run
17
+ spawn_opts = @cwd ? {:chdir => @cwd} : {}
18
+ stdout, stderr, status = Open3.capture3(*@argv, spawn_opts)
19
+ @result = R10K::Util::Subprocess::Result.new(@argv, stdout, stderr, status.exitstatus)
20
+ rescue Errno::ENOENT, Errno::EACCES => e
21
+ @result = R10K::Util::Subprocess::Result.new(@argv, '', e.message, 255)
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ require 'r10k/errors'
2
+ require 'r10k/util/subprocess'
3
+ require 'r10k/util/setopts'
4
+
5
+ class R10K::Util::Subprocess::SubprocessError < R10K::Error
6
+
7
+ # !@attribute [r] result
8
+ # @return [R10K::Util::Subprocess::Result]
9
+ attr_reader :result
10
+
11
+ include R10K::Util::Setopts
12
+
13
+ def initialize(mesg, options = {})
14
+ super
15
+ setopts(options, {:result => true})
16
+ end
17
+
18
+ def message
19
+ msg = []
20
+ msg << "#{super}:"
21
+ msg << @result.format
22
+ msg.join("\n")
23
+ end
24
+ end
@@ -0,0 +1,35 @@
1
+ module R10K
2
+ module Util
3
+ module SymbolizeKeys
4
+ module_function
5
+
6
+ # Convert all String keys to Symbol keys
7
+ #
8
+ # @param hash [Hash] The data structure to convert
9
+ # @param recurse [Boolean] Whether to recursively symbolize keys in nested
10
+ # hash values. Defaults to false.
11
+ # @raise [TypeError] If a String key collides with an existing Symbol key
12
+ # @return [void]
13
+ def symbolize_keys!(hash, recurse = false)
14
+ hash.keys.each do |key|
15
+ if key.is_a?(String)
16
+ if hash.key?(key.to_sym)
17
+ raise TypeError, _("An existing interned key for %{key} exists, cannot overwrite") % {key: key}
18
+ end
19
+ hash[key.to_sym] = hash.delete(key)
20
+ key = key.to_sym
21
+ end
22
+
23
+ value = hash[key]
24
+ if recurse
25
+ if value.is_a?(Hash)
26
+ symbolize_keys!(value, true)
27
+ elsif value.is_a?(Array)
28
+ value.map { |item| symbolize_keys!(item, true) if item.is_a?(Hash) }
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,6 @@
1
+ module R10K
2
+ # When updating to a new major (X) or minor (Y) version, include `#major` or
3
+ # `#minor` (respectively) in your commit message to trigger the appropriate
4
+ # release. Otherwise, a new patch (Z) version will be released.
5
+ VERSION = '3.5.2'
6
+ end
@@ -0,0 +1,21 @@
1
+ ---
2
+ # This is the project-specific configuration file for setting up
3
+ # fast_gettext for your project.
4
+ gettext:
5
+ # This is used for the name of the .pot and .po files; they will be
6
+ # called <project_name>.pot?
7
+ project_name: 'r10k'
8
+ # This is used in comments in the .pot and .po files to indicate what
9
+ # project the files belong to and should bea little more desctiptive than
10
+ # <project_name>
11
+ package_name: r10k
12
+ # The locale that the default messages in the .pot file are in
13
+ default_locale: en
14
+ # The email used for sending bug reports.
15
+ bugs_address: docs@puppetlabs.com
16
+ # The holder of the copyright.
17
+ copyright_holder: Puppet, Inc.
18
+ # Patterns for +Dir.glob+ used to find all files that might contain
19
+ # translatable content, relative to the project root directory
20
+ source_files:
21
+ - 'lib/**/*.rb'
@@ -0,0 +1,545 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) 2020 Puppet, Inc.
3
+ # This file is distributed under the same license as the r10k package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
5
+ #
6
+ #, fuzzy
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: r10k 3.4.1-20-g8fe925b\n"
10
+ "\n"
11
+ "Report-Msgid-Bugs-To: docs@puppetlabs.com\n"
12
+ "POT-Creation-Date: 2020-04-28 18:41+0000\n"
13
+ "PO-Revision-Date: 2020-04-28 18:41+0000\n"
14
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
+ "Language-Team: LANGUAGE <LL@li.org>\n"
16
+ "Language: \n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
21
+
22
+ #: ../lib/r10k/action/deploy/deploy_helpers.rb:12 ../lib/r10k/settings/loader.rb:63
23
+ msgid "No configuration file given, no config file found in current directory, and no global config present"
24
+ msgstr ""
25
+
26
+ #: ../lib/r10k/action/deploy/deploy_helpers.rb:26
27
+ msgid "Making changes to deployed environments has been administratively disabled."
28
+ msgstr ""
29
+
30
+ #: ../lib/r10k/action/deploy/deploy_helpers.rb:27
31
+ msgid "Reason: %{write_lock}"
32
+ msgstr ""
33
+
34
+ #: ../lib/r10k/action/deploy/environment.rb:57
35
+ msgid "Environment(s) \\'%{environments}\\' cannot be found in any source and will not be deployed."
36
+ msgstr ""
37
+
38
+ #: ../lib/r10k/action/deploy/environment.rb:85
39
+ msgid "Environment %{env_dir} does not match environment name filter, skipping"
40
+ msgstr ""
41
+
42
+ #: ../lib/r10k/action/deploy/environment.rb:93
43
+ msgid "Deploying environment %{env_path}"
44
+ msgstr ""
45
+
46
+ #: ../lib/r10k/action/deploy/environment.rb:96
47
+ msgid "Environment %{env_dir} is now at %{env_signature}"
48
+ msgstr ""
49
+
50
+ #: ../lib/r10k/action/deploy/environment.rb:100
51
+ msgid "Environment %{env_dir} is new, updating all modules"
52
+ msgstr ""
53
+
54
+ #: ../lib/r10k/action/deploy/environment.rb:143
55
+ msgid "Deploying %{origin} content %{path}"
56
+ msgstr ""
57
+
58
+ #: ../lib/r10k/action/deploy/module.rb:49
59
+ msgid "Only updating modules in environment %{opt_env} skipping environment %{env_path}"
60
+ msgstr ""
61
+
62
+ #: ../lib/r10k/action/deploy/module.rb:51
63
+ msgid "Updating modules %{modules} in environment %{env_path}"
64
+ msgstr ""
65
+
66
+ #: ../lib/r10k/action/deploy/module.rb:63
67
+ msgid "Deploying module %{mod_path}"
68
+ msgstr ""
69
+
70
+ #: ../lib/r10k/action/deploy/module.rb:70
71
+ msgid "Only updating modules %{modules}, skipping module %{mod_name}"
72
+ msgstr ""
73
+
74
+ #: ../lib/r10k/action/puppetfile/check.rb:14
75
+ msgid "Syntax OK"
76
+ msgstr ""
77
+
78
+ #: ../lib/r10k/action/puppetfile/install.rb:30
79
+ msgid "Updating module %{mod_path}"
80
+ msgstr ""
81
+
82
+ #: ../lib/r10k/action/puppetfile/install.rb:33
83
+ msgid "Cannot track control repo branch for content '%{name}' when not part of a 'deploy' action, will use default if available."
84
+ msgstr ""
85
+
86
+ #: ../lib/r10k/action/runner.rb:53 ../lib/r10k/deployment/config.rb:42
87
+ msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
88
+ msgstr ""
89
+
90
+ #: ../lib/r10k/action/runner.rb:86
91
+ msgid "Reading configuration from %{config_path}"
92
+ msgstr ""
93
+
94
+ #: ../lib/r10k/action/runner.rb:89
95
+ msgid "No config file explicitly given and no default config file could be found, default settings will be used."
96
+ msgstr ""
97
+
98
+ #: ../lib/r10k/deployment.rb:90
99
+ msgid "Environment collision at %{env_path} between %{source}:%{env_name} and %{osource}:%{oenv_name}"
100
+ msgstr ""
101
+
102
+ #: ../lib/r10k/deployment.rb:118
103
+ msgid "Unable to load sources; the supplied configuration does not define the 'sources' key"
104
+ msgstr ""
105
+
106
+ #: ../lib/r10k/environment/base.rb:61 ../lib/r10k/environment/base.rb:77 ../lib/r10k/environment/base.rb:86 ../lib/r10k/source/base.rb:64
107
+ msgid "%{class} has not implemented method %{method}"
108
+ msgstr ""
109
+
110
+ #: ../lib/r10k/environment/with_modules.rb:104
111
+ msgid "Puppetfile cannot contain module names defined by environment %{name}"
112
+ msgstr ""
113
+
114
+ #: ../lib/r10k/environment/with_modules.rb:106
115
+ msgid "Remove the conflicting definitions of the following modules: %{conflicts}"
116
+ msgstr ""
117
+
118
+ #: ../lib/r10k/feature.rb:27
119
+ msgid "Testing to see if feature %{name} is available."
120
+ msgstr ""
121
+
122
+ #: ../lib/r10k/feature.rb:30
123
+ msgid "Feature %{name} %{message} available."
124
+ msgstr ""
125
+
126
+ #: ../lib/r10k/feature.rb:37
127
+ msgid "Attempting to load library '%{lib}' for feature %{name}"
128
+ msgstr ""
129
+
130
+ #: ../lib/r10k/feature.rb:41
131
+ msgid "Error while loading library %{lib} for feature %{name}: %{error_msg}"
132
+ msgstr ""
133
+
134
+ #: ../lib/r10k/feature.rb:47
135
+ msgid "Evaluating proc %{block} to test for feature %{name}"
136
+ msgstr ""
137
+
138
+ #: ../lib/r10k/feature.rb:49
139
+ msgid "Proc %{block} for feature %{name} returned %{output}"
140
+ msgstr ""
141
+
142
+ #: ../lib/r10k/forge/module_release.rb:196
143
+ msgid "Unpacking %{tarball_cache_path} to %{target_dir} (with tmpdir %{tmp_path})"
144
+ msgstr ""
145
+
146
+ #: ../lib/r10k/forge/module_release.rb:198
147
+ msgid "Valid files unpacked: %{valid_files}"
148
+ msgstr ""
149
+
150
+ #: ../lib/r10k/forge/module_release.rb:200
151
+ msgid "These files existed in the module's tar file, but are invalid filetypes and were not unpacked: %{invalid_files}"
152
+ msgstr ""
153
+
154
+ #: ../lib/r10k/forge/module_release.rb:203
155
+ msgid "Symlinks are unsupported and were not unpacked from the module tarball. %{release_slug} contained these ignored symlinks: %{symlinks}"
156
+ msgstr ""
157
+
158
+ #: ../lib/r10k/git.rb:32
159
+ msgid "Rugged has been compiled without support for %{transport}; Git repositories will not be reachable via %{transport}."
160
+ msgstr ""
161
+
162
+ #: ../lib/r10k/git.rb:68
163
+ msgid "No Git providers are functional."
164
+ msgstr ""
165
+
166
+ #: ../lib/r10k/git.rb:85
167
+ msgid "No Git provider named '%{name}'."
168
+ msgstr ""
169
+
170
+ #: ../lib/r10k/git.rb:89
171
+ msgid "Git provider '%{name}' is not functional."
172
+ msgstr ""
173
+
174
+ #: ../lib/r10k/git.rb:96
175
+ msgid "Setting Git provider to %{provider}"
176
+ msgstr ""
177
+
178
+ #: ../lib/r10k/git.rb:104
179
+ msgid "No Git provider set."
180
+ msgstr ""
181
+
182
+ #: ../lib/r10k/git.rb:107
183
+ msgid "Setting Git provider to default provider %{name}"
184
+ msgstr ""
185
+
186
+ #: ../lib/r10k/git/alternates.rb:46
187
+ msgid "Cannot write %{file}; parent directory does not exist"
188
+ msgstr ""
189
+
190
+ #: ../lib/r10k/git/cache.rb:55
191
+ msgid "%{class}#path is deprecated; use #git_dir"
192
+ msgstr ""
193
+
194
+ #: ../lib/r10k/git/cache.rb:84
195
+ msgid "Creating new git cache for %{remote}"
196
+ msgstr ""
197
+
198
+ #: ../lib/r10k/git/rugged/bare_repository.rb:34 ../lib/r10k/git/rugged/working_repository.rb:28
199
+ msgid "Cloning '%{remote}' into %{path}"
200
+ msgstr ""
201
+
202
+ #: ../lib/r10k/git/rugged/bare_repository.rb:52
203
+ msgid "Fetching remote '%{remote_name}' at %{path}"
204
+ msgstr ""
205
+
206
+ #: ../lib/r10k/git/rugged/bare_repository.rb:56
207
+ msgid "Rugged versions prior to 0.24.0 do not support pruning stale branches during fetch, please upgrade your \\'rugged\\' gem. (Current version is: %{version})"
208
+ msgstr ""
209
+
210
+ #: ../lib/r10k/git/rugged/credentials.rb:24
211
+ msgid "Authentication failed for Git remote %{url}."
212
+ msgstr ""
213
+
214
+ #: ../lib/r10k/git/rugged/credentials.rb:48
215
+ msgid "Using per-repository private key %{key} for URL %{url}"
216
+ msgstr ""
217
+
218
+ #: ../lib/r10k/git/rugged/credentials.rb:51
219
+ msgid "URL %{url} has no per-repository private key using '%{key}'."
220
+ msgstr ""
221
+
222
+ #: ../lib/r10k/git/rugged/credentials.rb:53
223
+ msgid "Git remote %{url} uses the SSH protocol but no private key was given"
224
+ msgstr ""
225
+
226
+ #: ../lib/r10k/git/rugged/credentials.rb:57
227
+ msgid "Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable"
228
+ msgstr ""
229
+
230
+ #: ../lib/r10k/git/rugged/credentials.rb:80
231
+ msgid "URL %{url} includes the username %{username}, using that user for authentication."
232
+ msgstr ""
233
+
234
+ #: ../lib/r10k/git/rugged/credentials.rb:83
235
+ msgid "URL %{url} did not specify a user, using %{user} from configuration"
236
+ msgstr ""
237
+
238
+ #: ../lib/r10k/git/rugged/credentials.rb:86
239
+ msgid "URL %{url} did not specify a user, using current user %{user}"
240
+ msgstr ""
241
+
242
+ #: ../lib/r10k/git/rugged/thin_repository.rb:85 ../lib/r10k/git/shellgit/thin_repository.rb:65
243
+ msgid "Updated repo %{path} to include alternate object db path %{objects_dir}"
244
+ msgstr ""
245
+
246
+ #: ../lib/r10k/git/rugged/working_repository.rb:67
247
+ msgid "Checking out ref '%{ref}' (resolved to SHA '%{sha}') in repository %{path}"
248
+ msgstr ""
249
+
250
+ #: ../lib/r10k/git/rugged/working_repository.rb:87
251
+ msgid "Fetching remote '%{remote}' at %{path}"
252
+ msgstr ""
253
+
254
+ #: ../lib/r10k/git/rugged/working_repository.rb:125 ../lib/r10k/git/shellgit/working_repository.rb:100
255
+ msgid "Found local modifications in %{file_path}"
256
+ msgstr ""
257
+
258
+ #: ../lib/r10k/git/stateful_repository.rb:40
259
+ msgid "Unable to sync repo to unresolvable ref '%{ref}'"
260
+ msgstr ""
261
+
262
+ #: ../lib/r10k/git/stateful_repository.rb:47
263
+ msgid "Cloning %{repo_path} and checking out %{ref}"
264
+ msgstr ""
265
+
266
+ #: ../lib/r10k/git/stateful_repository.rb:50
267
+ msgid "Replacing %{repo_path} and checking out %{ref}"
268
+ msgstr ""
269
+
270
+ #: ../lib/r10k/git/stateful_repository.rb:54 ../lib/r10k/git/stateful_repository.rb:59
271
+ msgid "Updating %{repo_path} to %{ref}"
272
+ msgstr ""
273
+
274
+ #: ../lib/r10k/git/stateful_repository.rb:58
275
+ msgid "Overwriting local modifications to %{repo_path}"
276
+ msgstr ""
277
+
278
+ #: ../lib/r10k/git/stateful_repository.rb:62
279
+ msgid "Skipping %{repo_path} due to local modifications"
280
+ msgstr ""
281
+
282
+ #: ../lib/r10k/git/stateful_repository.rb:65
283
+ msgid "%{repo_path} is already at Git ref %{ref}"
284
+ msgstr ""
285
+
286
+ #: ../lib/r10k/initializers.rb:30
287
+ msgid "the purgedirs key in r10k.yaml is deprecated. it is currently ignored."
288
+ msgstr ""
289
+
290
+ #: ../lib/r10k/keyed_factory.rb:18
291
+ msgid "Class already registered for %{key}"
292
+ msgstr ""
293
+
294
+ #: ../lib/r10k/keyed_factory.rb:32
295
+ msgid "No class registered for %{key}"
296
+ msgstr ""
297
+
298
+ #: ../lib/r10k/logging.rb:60
299
+ msgid "Invalid log level '%{val}'. Valid levels are %{log_levels}"
300
+ msgstr ""
301
+
302
+ #: ../lib/r10k/module.rb:29
303
+ msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
304
+ msgstr ""
305
+
306
+ #: ../lib/r10k/module/base.rb:110
307
+ msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
308
+ msgstr ""
309
+
310
+ #: ../lib/r10k/module/forge.rb:70 ../lib/r10k/module/forge.rb:99
311
+ msgid "The module %{title} does not exist on %{url}."
312
+ msgstr ""
313
+
314
+ #: ../lib/r10k/module/forge.rb:174
315
+ msgid "Forge module names must match 'owner/modulename'"
316
+ msgstr ""
317
+
318
+ #: ../lib/r10k/module/git.rb:97
319
+ msgid "Unhandled options %{unhandled} specified for %{class}"
320
+ msgstr ""
321
+
322
+ #: ../lib/r10k/module/local.rb:34
323
+ msgid "Module %{title} is a local module, always indicating synced."
324
+ msgstr ""
325
+
326
+ #: ../lib/r10k/module/metadata_file.rb:25
327
+ msgid "Could not read metadata.json"
328
+ msgstr ""
329
+
330
+ #: ../lib/r10k/puppetfile.rb:57
331
+ msgid "Using Puppetfile '%{puppetfile}'"
332
+ msgstr ""
333
+
334
+ #: ../lib/r10k/puppetfile.rb:71
335
+ msgid "Puppetfile %{path} missing or unreadable"
336
+ msgstr ""
337
+
338
+ #: ../lib/r10k/puppetfile.rb:84
339
+ msgid "Failed to evaluate %{path}"
340
+ msgstr ""
341
+
342
+ #: ../lib/r10k/puppetfile.rb:98
343
+ msgid "Puppetfiles cannot contain duplicate module names."
344
+ msgstr ""
345
+
346
+ #: ../lib/r10k/puppetfile.rb:100
347
+ msgid "Remove the duplicates of the following modules: %{dupes}"
348
+ msgstr ""
349
+
350
+ #: ../lib/r10k/puppetfile.rb:192
351
+ msgid "Updating modules with %{pool_size} threads"
352
+ msgstr ""
353
+
354
+ #: ../lib/r10k/puppetfile.rb:203
355
+ msgid "Error during concurrent deploy of a module: %{message}"
356
+ msgstr ""
357
+
358
+ #: ../lib/r10k/puppetfile.rb:225
359
+ msgid "Module thread %{id} exiting: %{message}"
360
+ msgstr ""
361
+
362
+ #: ../lib/r10k/puppetfile.rb:282
363
+ msgid "unrecognized declaration '%{method}'"
364
+ msgstr ""
365
+
366
+ #: ../lib/r10k/settings/collection.rb:77
367
+ msgid "Validation failed for '%{name}' settings group"
368
+ msgstr ""
369
+
370
+ #: ../lib/r10k/settings/collection.rb:79
371
+ msgid "Validation failed for settings group"
372
+ msgstr ""
373
+
374
+ #: ../lib/r10k/settings/container.rb:91
375
+ msgid "Key %{key} is not a valid key"
376
+ msgstr ""
377
+
378
+ #: ../lib/r10k/settings/enum_definition.rb:13
379
+ msgid "Setting %{name} may only contain %{enums}; the disallowed values %{invalid} were present"
380
+ msgstr ""
381
+
382
+ #: ../lib/r10k/settings/enum_definition.rb:17
383
+ msgid "Setting %{name} should be one of %{enums}, not '%{value}'"
384
+ msgstr ""
385
+
386
+ #: ../lib/r10k/settings/helpers.rb:19
387
+ msgid "%{class} instances cannot be reassigned to a new parent."
388
+ msgstr ""
389
+
390
+ #: ../lib/r10k/settings/helpers.rb:23
391
+ msgid "%{class} instances may only belong to a settings collection or list."
392
+ msgstr ""
393
+
394
+ #: ../lib/r10k/settings/list.rb:66
395
+ msgid "Validation failed for '%{name}' settings list"
396
+ msgstr ""
397
+
398
+ #: ../lib/r10k/settings/loader.rb:45
399
+ msgid "Both %{default_path} and %{old_default_path} configuration files exist."
400
+ msgstr ""
401
+
402
+ #: ../lib/r10k/settings/loader.rb:46
403
+ msgid "%{default_path} will be used."
404
+ msgstr ""
405
+
406
+ #: ../lib/r10k/settings/loader.rb:52
407
+ msgid "The r10k configuration file at %{old_default_path} is deprecated."
408
+ msgstr ""
409
+
410
+ #: ../lib/r10k/settings/loader.rb:53
411
+ msgid "Please move your r10k configuration to %{default_path}."
412
+ msgstr ""
413
+
414
+ #: ../lib/r10k/settings/loader.rb:69
415
+ msgid "Couldn't load config file: %{error_msg}"
416
+ msgstr ""
417
+
418
+ #: ../lib/r10k/settings/loader.rb:73
419
+ msgid "File exists at #{path} but doesn't contain any YAML"
420
+ msgstr ""
421
+
422
+ #: ../lib/r10k/settings/uri_definition.rb:12
423
+ msgid "Setting %{name} requires a URL but '%{value}' could not be parsed as a URL"
424
+ msgstr ""
425
+
426
+ #: ../lib/r10k/source/exec.rb:10
427
+ msgid "Environment source %{name} missing required parameter: command"
428
+ msgstr ""
429
+
430
+ #: ../lib/r10k/source/exec.rb:36
431
+ msgid ""
432
+ "Error parsing command output for exec source %{name}:\n"
433
+ "Not valid JSON: %{j_msg}\n"
434
+ "Not valid YAML: %{y_msg}\n"
435
+ "Stdout:\n"
436
+ "%{out}"
437
+ msgstr ""
438
+
439
+ #: ../lib/r10k/source/exec.rb:44
440
+ msgid ""
441
+ "Environment source %{name} command %{cmd} did not return valid environment data.\n"
442
+ "Returned: %{data}"
443
+ msgstr ""
444
+
445
+ #: ../lib/r10k/source/git.rb:72
446
+ msgid "Fetching '%{remote}' to determine current branches."
447
+ msgstr ""
448
+
449
+ #: ../lib/r10k/source/git.rb:75
450
+ msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
451
+ msgstr ""
452
+
453
+ #: ../lib/r10k/source/git.rb:100
454
+ msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
455
+ msgstr ""
456
+
457
+ #: ../lib/r10k/source/git.rb:104
458
+ msgid "Environment %{env_name} contained non-word characters, ignoring it."
459
+ msgstr ""
460
+
461
+ #: ../lib/r10k/source/git.rb:123 ../lib/r10k/source/svn.rb:113
462
+ msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
463
+ msgstr ""
464
+
465
+ #: ../lib/r10k/source/yaml.rb:10
466
+ msgid "Couldn't open environments file %{file}: %{err}"
467
+ msgstr ""
468
+
469
+ #: ../lib/r10k/source/yamldir.rb:8
470
+ msgid "Error opening %{dir}: config must be a directory"
471
+ msgstr ""
472
+
473
+ #: ../lib/r10k/source/yamldir.rb:12
474
+ msgid "Error opening %{dir}: permission denied"
475
+ msgstr ""
476
+
477
+ #: ../lib/r10k/source/yamldir.rb:20
478
+ msgid "Error loading %{path}: %{err}"
479
+ msgstr ""
480
+
481
+ #: ../lib/r10k/svn/working_dir.rb:43
482
+ msgid "Both username and password must be specified"
483
+ msgstr ""
484
+
485
+ #: ../lib/r10k/util/basedir.rb:34
486
+ msgid "Expected Array<#desired_contents>, got R10K::Deployment"
487
+ msgstr ""
488
+
489
+ #: ../lib/r10k/util/basedir.rb:58
490
+ msgid "Source %{source_name} in %{path} manages contents %{contents}"
491
+ msgstr ""
492
+
493
+ #: ../lib/r10k/util/license.rb:11
494
+ msgid "pe_license feature is available, loading PE license key"
495
+ msgstr ""
496
+
497
+ #: ../lib/r10k/util/license.rb:15
498
+ msgid "Invalid PE license detected: %{error_msg}"
499
+ msgstr ""
500
+
501
+ #: ../lib/r10k/util/license.rb:18
502
+ msgid "pe_license feature is not available, PE only Puppet modules will not be downloadable."
503
+ msgstr ""
504
+
505
+ #: ../lib/r10k/util/purgeable.rb:52
506
+ msgid "Not purging %{item} due to internal exclusion match: %{exclusion_match}"
507
+ msgstr ""
508
+
509
+ #: ../lib/r10k/util/purgeable.rb:54
510
+ msgid "Not purging %{item} due to whitelist match: %{whitelist_match}"
511
+ msgstr ""
512
+
513
+ #: ../lib/r10k/util/purgeable.rb:71
514
+ msgid "No unmanaged contents in %{managed_dirs}, nothing to purge"
515
+ msgstr ""
516
+
517
+ #: ../lib/r10k/util/purgeable.rb:76
518
+ msgid "Removing unmanaged path %{path}"
519
+ msgstr ""
520
+
521
+ #: ../lib/r10k/util/purgeable.rb:81
522
+ msgid "Unable to remove unmanaged path: %{path}"
523
+ msgstr ""
524
+
525
+ #: ../lib/r10k/util/setopts.rb:49
526
+ msgid "%{class_name} cannot handle option '%{key}'"
527
+ msgstr ""
528
+
529
+ #: ../lib/r10k/util/subprocess.rb:69
530
+ msgid "Starting process: %{args}"
531
+ msgstr ""
532
+
533
+ #: ../lib/r10k/util/subprocess.rb:74
534
+ msgid ""
535
+ "Finished process:\n"
536
+ "%{result}"
537
+ msgstr ""
538
+
539
+ #: ../lib/r10k/util/subprocess.rb:77
540
+ msgid "Command exited with non-zero exit code"
541
+ msgstr ""
542
+
543
+ #: ../lib/r10k/util/symbolize_keys.rb:17
544
+ msgid "An existing interned key for %{key} exists, cannot overwrite"
545
+ msgstr ""