r10k 3.5.2 → 3.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +4 -1
  3. data/.github/workflows/docker.yml +4 -1
  4. data/.github/workflows/release.yml +3 -2
  5. data/.github/workflows/rspec_tests.yml +81 -0
  6. data/.github/workflows/stale.yml +19 -0
  7. data/.travis.yml +8 -1
  8. data/CHANGELOG.mkd +43 -1
  9. data/CODEOWNERS +2 -2
  10. data/README.mkd +13 -4
  11. data/doc/common-patterns.mkd +1 -0
  12. data/doc/dynamic-environments/configuration.mkd +149 -45
  13. data/doc/dynamic-environments/usage.mkd +12 -11
  14. data/doc/puppetfile.mkd +23 -3
  15. data/docker/Gemfile +1 -1
  16. data/docker/Makefile +7 -4
  17. data/docker/docker-compose.yml +18 -0
  18. data/docker/r10k/Dockerfile +4 -3
  19. data/docker/r10k/docker-entrypoint.sh +0 -1
  20. data/docker/r10k/release.Dockerfile +3 -2
  21. data/docker/spec/dockerfile_spec.rb +26 -32
  22. data/integration/tests/git_source/git_source_repeated_remote.rb +68 -0
  23. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +2 -1
  24. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +2 -1
  25. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +1 -1
  26. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +2 -1
  27. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +1 -1
  28. data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +1 -1
  29. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +1 -1
  30. data/lib/r10k/action/base.rb +8 -1
  31. data/lib/r10k/action/deploy/display.rb +46 -10
  32. data/lib/r10k/action/deploy/environment.rb +98 -50
  33. data/lib/r10k/action/deploy/module.rb +51 -29
  34. data/lib/r10k/action/puppetfile/check.rb +3 -1
  35. data/lib/r10k/action/puppetfile/install.rb +20 -23
  36. data/lib/r10k/action/puppetfile/purge.rb +8 -2
  37. data/lib/r10k/action/runner.rb +34 -0
  38. data/lib/r10k/cli/deploy.rb +14 -7
  39. data/lib/r10k/cli/puppetfile.rb +5 -5
  40. data/lib/r10k/content_synchronizer.rb +83 -0
  41. data/lib/r10k/deployment.rb +1 -1
  42. data/lib/r10k/environment/base.rb +30 -3
  43. data/lib/r10k/environment/git.rb +17 -5
  44. data/lib/r10k/environment/name.rb +22 -4
  45. data/lib/r10k/environment/svn.rb +11 -4
  46. data/lib/r10k/environment/with_modules.rb +46 -30
  47. data/lib/r10k/git.rb +1 -0
  48. data/lib/r10k/git/cache.rb +12 -4
  49. data/lib/r10k/git/rugged/credentials.rb +39 -2
  50. data/lib/r10k/git/stateful_repository.rb +4 -0
  51. data/lib/r10k/initializers.rb +2 -0
  52. data/lib/r10k/module.rb +1 -1
  53. data/lib/r10k/module/base.rb +25 -1
  54. data/lib/r10k/module/forge.rb +29 -11
  55. data/lib/r10k/module/git.rb +54 -27
  56. data/lib/r10k/module/local.rb +2 -1
  57. data/lib/r10k/module/svn.rb +24 -18
  58. data/lib/r10k/puppetfile.rb +75 -72
  59. data/lib/r10k/settings.rb +30 -3
  60. data/lib/r10k/source/base.rb +9 -0
  61. data/lib/r10k/source/git.rb +40 -9
  62. data/lib/r10k/source/hash.rb +5 -5
  63. data/lib/r10k/source/svn.rb +5 -3
  64. data/lib/r10k/util/cleaner.rb +21 -0
  65. data/lib/r10k/util/setopts.rb +33 -12
  66. data/lib/r10k/version.rb +1 -1
  67. data/locales/r10k.pot +103 -83
  68. data/r10k.gemspec +1 -1
  69. data/spec/fixtures/unit/action/r10k_creds.yaml +9 -0
  70. data/spec/r10k-mocks/mock_source.rb +1 -1
  71. data/spec/shared-examples/puppetfile-action.rb +7 -7
  72. data/spec/shared-examples/subprocess-runner.rb +11 -5
  73. data/spec/unit/action/deploy/display_spec.rb +35 -5
  74. data/spec/unit/action/deploy/environment_spec.rb +207 -37
  75. data/spec/unit/action/deploy/module_spec.rb +173 -26
  76. data/spec/unit/action/puppetfile/check_spec.rb +2 -2
  77. data/spec/unit/action/puppetfile/install_spec.rb +32 -10
  78. data/spec/unit/action/puppetfile/purge_spec.rb +25 -5
  79. data/spec/unit/action/runner_spec.rb +48 -1
  80. data/spec/unit/environment/git_spec.rb +19 -2
  81. data/spec/unit/environment/name_spec.rb +28 -0
  82. data/spec/unit/environment/svn_spec.rb +12 -0
  83. data/spec/unit/environment/with_modules_spec.rb +74 -0
  84. data/spec/unit/git/cache_spec.rb +10 -0
  85. data/spec/unit/git/rugged/credentials_spec.rb +79 -2
  86. data/spec/unit/git_spec.rb +3 -3
  87. data/spec/unit/module/forge_spec.rb +21 -13
  88. data/spec/unit/module/git_spec.rb +64 -1
  89. data/spec/unit/module_spec.rb +60 -10
  90. data/spec/unit/puppetfile_spec.rb +98 -30
  91. data/spec/unit/settings_spec.rb +12 -0
  92. data/spec/unit/source/git_spec.rb +49 -1
  93. data/spec/unit/util/purgeable_spec.rb +2 -8
  94. data/spec/unit/util/setopts_spec.rb +25 -1
  95. metadata +12 -11
  96. data/azure-pipelines.yml +0 -86
@@ -1,8 +1,12 @@
1
+ require 'r10k/logging'
2
+
1
3
  # This class defines a common interface for source implementations.
2
4
  #
3
5
  # @since 1.3.0
4
6
  class R10K::Source::Base
5
7
 
8
+ include R10K::Logging
9
+
6
10
  # @!attribute [r] basedir
7
11
  # @return [String] The path this source will place environments in
8
12
  attr_reader :basedir
@@ -31,10 +35,15 @@ class R10K::Source::Base
31
35
  # @option options [Boolean, String] :prefix If a String this becomes the prefix.
32
36
  # If true, will use the source name as the prefix. All sources should respect this option.
33
37
  # Defaults to false for no environment prefix.
38
+ # @option options [String] :strip_component If a string, this value will be
39
+ # removed from the beginning of each generated environment's name, if
40
+ # present. If the string is contained within two "/" characters, it will
41
+ # be treated as a regular expression.
34
42
  def initialize(name, basedir, options = {})
35
43
  @name = name
36
44
  @basedir = Pathname.new(basedir).cleanpath.to_s
37
45
  @prefix = options.delete(:prefix)
46
+ @strip_component = options.delete(:strip_component)
38
47
  @puppetfile_name = options.delete(:puppetfile_name)
39
48
  @options = options
40
49
  end
@@ -11,8 +11,6 @@ require 'r10k/environment/name'
11
11
  # @since 1.3.0
12
12
  class R10K::Source::Git < R10K::Source::Base
13
13
 
14
- include R10K::Logging
15
-
16
14
  R10K::Source.register(:git, self)
17
15
  # Register git as the default source
18
16
  R10K::Source.register(nil, self)
@@ -41,6 +39,10 @@ class R10K::Source::Git < R10K::Source::Base
41
39
  # that will be deployed as environments.
42
40
  attr_reader :ignore_branch_prefixes
43
41
 
42
+ # @!attribute [r] filter_command
43
+ # @return [String] Command to run to filter branches
44
+ attr_reader :filter_command
45
+
44
46
  # Initialize the given source.
45
47
  #
46
48
  # @param name [String] The identifier for this source.
@@ -61,6 +63,7 @@ class R10K::Source::Git < R10K::Source::Base
61
63
  @remote = options[:remote]
62
64
  @invalid_branches = (options[:invalid_branches] || 'correct_and_warn')
63
65
  @ignore_branch_prefixes = options[:ignore_branch_prefixes]
66
+ @filter_command = options[:filter_command]
64
67
 
65
68
  @cache = R10K::Git.cache.generate(@remote)
66
69
  end
@@ -94,12 +97,22 @@ class R10K::Source::Git < R10K::Source::Base
94
97
  envs = []
95
98
  branch_names.each do |bn|
96
99
  if bn.valid?
97
- envs << R10K::Environment::Git.new(bn.name, @basedir, bn.dirname,
98
- {:remote => remote, :ref => bn.name, :puppetfile_name => puppetfile_name })
100
+ envs << R10K::Environment::Git.new(bn.name,
101
+ @basedir,
102
+ bn.dirname,
103
+ {remote: remote,
104
+ ref: bn.name,
105
+ puppetfile_name: puppetfile_name,
106
+ overrides: @options[:overrides]})
99
107
  elsif bn.correct?
100
108
  logger.warn _("Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}") % {env_name: bn.name.inspect, corrected_env_name: bn.dirname}
101
- envs << R10K::Environment::Git.new(bn.name, @basedir, bn.dirname,
102
- {:remote => remote, :ref => bn.name, :puppetfile_name => puppetfile_name})
109
+ envs << R10K::Environment::Git.new(bn.name,
110
+ @basedir,
111
+ bn.dirname,
112
+ {remote: remote,
113
+ ref: bn.name,
114
+ puppetfile_name: puppetfile_name,
115
+ overrides: @options[:overrides]})
103
116
  elsif bn.validate?
104
117
  logger.error _("Environment %{env_name} contained non-word characters, ignoring it.") % {env_name: bn.name.inspect}
105
118
  end
@@ -115,7 +128,7 @@ class R10K::Source::Git < R10K::Source::Base
115
128
  environments.map {|env| env.dirname }
116
129
  end
117
130
 
118
- def filter_branches(branches, ignore_prefixes)
131
+ def filter_branches_by_regexp(branches, ignore_prefixes)
119
132
  filter = Regexp.new("^#{Regexp.union(ignore_prefixes)}")
120
133
  branches = branches.reject do |branch|
121
134
  result = filter.match(branch)
@@ -127,14 +140,32 @@ class R10K::Source::Git < R10K::Source::Base
127
140
  branches
128
141
  end
129
142
 
143
+ def filter_branches_by_command(branches, command)
144
+ branches.select do |branch|
145
+ result = system({'GIT_DIR' => @cache.git_dir.to_s, 'R10K_BRANCH' => branch, 'R10K_NAME' => @name.to_s}, command)
146
+ unless result
147
+ logger.warn _("Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}") % {name: @name, branch: branch, cmd: command}
148
+ end
149
+ result
150
+ end
151
+ end
152
+
130
153
  private
131
154
 
132
155
  def branch_names
133
- opts = {:prefix => @prefix, :invalid => @invalid_branches, :source => @name}
156
+ opts = {prefix: @prefix,
157
+ invalid: @invalid_branches,
158
+ source: @name,
159
+ strip_component: @strip_component}
134
160
  branches = @cache.branches
135
161
  if @ignore_branch_prefixes && !@ignore_branch_prefixes.empty?
136
- branches = filter_branches(branches, @ignore_branch_prefixes)
162
+ branches = filter_branches_by_regexp(branches, @ignore_branch_prefixes)
137
163
  end
164
+
165
+ if @filter_command && !@filter_command.empty?
166
+ branches = filter_branches_by_command(branches, @filter_command)
167
+ end
168
+
138
169
  branches.map do |branch|
139
170
  R10K::Environment::Name.new(branch, opts)
140
171
  end
@@ -120,8 +120,6 @@
120
120
  #
121
121
  class R10K::Source::Hash < R10K::Source::Base
122
122
 
123
- include R10K::Logging
124
-
125
123
  # @param hash [Hash] A hash to validate.
126
124
  # @return [Boolean] False if the hash is obviously invalid. A true return
127
125
  # means _maybe_ it's valid.
@@ -152,8 +150,10 @@ class R10K::Source::Hash < R10K::Source::Base
152
150
  R10K::Util::SymbolizeKeys.symbolize_keys!(opts)
153
151
  memo.merge({
154
152
  name => opts.merge({
155
- :basedir => @basedir,
156
- :dirname => R10K::Environment::Name.new(name, {prefix: @prefix, source: @name}).dirname
153
+ basedir: @basedir,
154
+ dirname: R10K::Environment::Name.new(name, {prefix: @prefix,
155
+ source: @name,
156
+ strip_component: @strip_component}).dirname
157
157
  })
158
158
  })
159
159
  end
@@ -168,7 +168,7 @@ class R10K::Source::Hash < R10K::Source::Base
168
168
 
169
169
  def environments
170
170
  @environments ||= environments_hash.map do |name, hash|
171
- R10K::Environment.from_hash(name, hash)
171
+ R10K::Environment.from_hash(name, hash.merge({overrides: @options[:overrides]}))
172
172
  end
173
173
  end
174
174
 
@@ -103,8 +103,6 @@ class R10K::Source::SVN < R10K::Source::Base
103
103
  @environments.map {|env| env.dirname }
104
104
  end
105
105
 
106
- include R10K::Logging
107
-
108
106
  def filter_branches(branches, ignore_prefixes)
109
107
  filter = Regexp.new("^(#{ignore_prefixes.join('|')})")
110
108
  branches = branches.reject do |branch|
@@ -121,7 +119,11 @@ class R10K::Source::SVN < R10K::Source::Base
121
119
 
122
120
  def names_and_paths
123
121
  branches = []
124
- opts = {:prefix => @prefix, :correct => false, :validate => false, :source => @name}
122
+ opts = {prefix: @prefix,
123
+ correct: false,
124
+ validate: false,
125
+ source: @name,
126
+ strip_component: @strip_component}
125
127
  branches << [R10K::Environment::Name.new('production', opts), "#{@remote}/trunk"]
126
128
  additional_branch_names = @svn_remote.branches
127
129
  if @ignore_branch_prefixes && !@ignore_branch_prefixes.empty?
@@ -0,0 +1,21 @@
1
+ require 'r10k/logging'
2
+ require 'r10k/util/purgeable'
3
+
4
+ module R10K
5
+ module Util
6
+ class Cleaner
7
+
8
+ include R10K::Logging
9
+ include R10K::Util::Purgeable
10
+
11
+ attr_reader :managed_directories, :desired_contents, :purge_exclusions
12
+
13
+ def initialize(managed_directories, desired_contents, purge_exclusions = [])
14
+ @managed_directories = managed_directories
15
+ @desired_contents = desired_contents
16
+ @purge_exclusions = purge_exclusions
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -7,6 +7,10 @@ module R10K
7
7
  # supports Ruby 1.8.7+ we cannot use that functionality.
8
8
  module Setopts
9
9
 
10
+ class Ignore; end
11
+
12
+ include R10K::Logging
13
+
10
14
  private
11
15
 
12
16
  # @param opts [Hash]
@@ -31,22 +35,39 @@ module R10K
31
35
  # setopts(opts, allowed)
32
36
  # @trace # => nil
33
37
  #
34
- def setopts(opts, allowed)
38
+ def setopts(opts, allowed, raise_on_unhandled: true)
39
+ processed_vars = {}
35
40
  opts.each_pair do |key, value|
36
41
  if allowed.key?(key)
37
- rhs = allowed[key]
38
- case rhs
39
- when NilClass, FalseClass
40
- # Ignore nil options
41
- when :self, TrueClass
42
- # tr here is because instance variables cannot have hyphens in their names.
43
- instance_variable_set("@#{key}".tr('-','_').to_sym, value)
44
- else
45
- # tr here same as previous
46
- instance_variable_set("@#{rhs}".tr('-','_').to_sym, value)
42
+ # Ignore nil options and explicit ignore param
43
+ next unless rhs = allowed[key]
44
+ next if rhs == ::R10K::Util::Setopts::Ignore
45
+
46
+ var = case rhs
47
+ when :self, TrueClass
48
+ # tr here is because instance variables cannot have hyphens in their names.
49
+ "@#{key}".tr('-','_').to_sym
50
+ else
51
+ # tr here same as previous
52
+ "@#{rhs}".tr('-','_').to_sym
53
+ end
54
+
55
+ if processed_vars.include?(var)
56
+ # This should be a raise, but that would be a behavior change and
57
+ # should happen on a SemVer boundry.
58
+ logger.warn _("%{class_name} parameters '%{a}' and '%{b}' conflict. Specify one or the other, but not both" \
59
+ % {class_name: self.class.name, a: processed_vars[var], b: key})
47
60
  end
61
+
62
+ instance_variable_set(var, value)
63
+ processed_vars[var] = key
48
64
  else
49
- raise ArgumentError, _("%{class_name} cannot handle option '%{key}'") % {class_name: self.class.name, key: key}
65
+ err_str = _("%{class_name} cannot handle option '%{key}'") % {class_name: self.class.name, key: key}
66
+ if raise_on_unhandled
67
+ raise ArgumentError, err_str
68
+ else
69
+ logger.warn(err_str)
70
+ end
50
71
  end
51
72
  end
52
73
  end
data/lib/r10k/version.rb CHANGED
@@ -2,5 +2,5 @@ module R10K
2
2
  # When updating to a new major (X) or minor (Y) version, include `#major` or
3
3
  # `#minor` (respectively) in your commit message to trigger the appropriate
4
4
  # release. Otherwise, a new patch (Z) version will be released.
5
- VERSION = '3.5.2'
5
+ VERSION = '3.9.1'
6
6
  end
data/locales/r10k.pot CHANGED
@@ -1,16 +1,16 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) 2020 Puppet, Inc.
2
+ # Copyright (C) 2021 Puppet, Inc.
3
3
  # This file is distributed under the same license as the r10k package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: r10k 3.4.1-20-g8fe925b\n"
9
+ "Project-Id-Version: r10k 3.4.1-231-g5574915\n"
10
10
  "\n"
11
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"
12
+ "POT-Creation-Date: 2021-05-10 23:18+0000\n"
13
+ "PO-Revision-Date: 2021-05-10 23:18+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -31,68 +31,60 @@ msgstr ""
31
31
  msgid "Reason: %{write_lock}"
32
32
  msgstr ""
33
33
 
34
- #: ../lib/r10k/action/deploy/environment.rb:57
34
+ #: ../lib/r10k/action/deploy/environment.rb:109
35
35
  msgid "Environment(s) \\'%{environments}\\' cannot be found in any source and will not be deployed."
36
36
  msgstr ""
37
37
 
38
- #: ../lib/r10k/action/deploy/environment.rb:85
38
+ #: ../lib/r10k/action/deploy/environment.rb:139
39
39
  msgid "Environment %{env_dir} does not match environment name filter, skipping"
40
40
  msgstr ""
41
41
 
42
- #: ../lib/r10k/action/deploy/environment.rb:93
42
+ #: ../lib/r10k/action/deploy/environment.rb:147
43
43
  msgid "Deploying environment %{env_path}"
44
44
  msgstr ""
45
45
 
46
- #: ../lib/r10k/action/deploy/environment.rb:96
46
+ #: ../lib/r10k/action/deploy/environment.rb:150
47
47
  msgid "Environment %{env_dir} is now at %{env_signature}"
48
48
  msgstr ""
49
49
 
50
- #: ../lib/r10k/action/deploy/environment.rb:100
50
+ #: ../lib/r10k/action/deploy/environment.rb:154
51
51
  msgid "Environment %{env_dir} is new, updating all modules"
52
52
  msgstr ""
53
53
 
54
- #: ../lib/r10k/action/deploy/environment.rb:143
55
- msgid "Deploying %{origin} content %{path}"
54
+ #: ../lib/r10k/action/deploy/module.rb:78
55
+ msgid "Only updating modules in environment(s) %{opt_env} skipping environment %{env_path}"
56
56
  msgstr ""
57
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
58
+ #: ../lib/r10k/action/deploy/module.rb:80
63
59
  msgid "Updating modules %{modules} in environment %{env_path}"
64
60
  msgstr ""
65
61
 
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}"
62
+ #: ../lib/r10k/action/puppetfile/check.rb:16
63
+ msgid "Syntax OK"
72
64
  msgstr ""
73
65
 
74
- #: ../lib/r10k/action/puppetfile/check.rb:14
75
- msgid "Syntax OK"
66
+ #: ../lib/r10k/action/runner.rb:54 ../lib/r10k/deployment/config.rb:42
67
+ msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
76
68
  msgstr ""
77
69
 
78
- #: ../lib/r10k/action/puppetfile/install.rb:30
79
- msgid "Updating module %{mod_path}"
70
+ #: ../lib/r10k/action/runner.rb:91
71
+ msgid "Reading configuration from %{config_path}"
80
72
  msgstr ""
81
73
 
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."
74
+ #: ../lib/r10k/action/runner.rb:94
75
+ msgid "No config file explicitly given and no default config file could be found, default settings will be used."
84
76
  msgstr ""
85
77
 
86
- #: ../lib/r10k/action/runner.rb:53 ../lib/r10k/deployment/config.rb:42
87
- msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
78
+ #: ../lib/r10k/content_synchronizer.rb:13
79
+ msgid "Updating modules with %{pool_size} threads"
88
80
  msgstr ""
89
81
 
90
- #: ../lib/r10k/action/runner.rb:86
91
- msgid "Reading configuration from %{config_path}"
82
+ #: ../lib/r10k/content_synchronizer.rb:24
83
+ msgid "Error during concurrent deploy of a module: %{message}"
92
84
  msgstr ""
93
85
 
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."
86
+ #: ../lib/r10k/content_synchronizer.rb:52
87
+ msgid "Module thread %{id} exiting: %{message}"
96
88
  msgstr ""
97
89
 
98
90
  #: ../lib/r10k/deployment.rb:90
@@ -103,16 +95,24 @@ msgstr ""
103
95
  msgid "Unable to load sources; the supplied configuration does not define the 'sources' key"
104
96
  msgstr ""
105
97
 
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
98
+ #: ../lib/r10k/environment/base.rb:65 ../lib/r10k/environment/base.rb:81 ../lib/r10k/environment/base.rb:90 ../lib/r10k/source/base.rb:69
107
99
  msgid "%{class} has not implemented method %{method}"
108
100
  msgstr ""
109
101
 
110
- #: ../lib/r10k/environment/with_modules.rb:104
111
- msgid "Puppetfile cannot contain module names defined by environment %{name}"
102
+ #: ../lib/r10k/environment/name.rb:78
103
+ msgid "Improper configuration value given for strip_component setting in %{src} source. Value must be a string, a /regex/, false, or omitted. Got \"%{val}\" (%{type})"
104
+ msgstr ""
105
+
106
+ #: ../lib/r10k/environment/with_modules.rb:60
107
+ msgid "Environment and %{src} both define the \"%{name}\" module"
108
+ msgstr ""
109
+
110
+ #: ../lib/r10k/environment/with_modules.rb:61
111
+ msgid "#{msg_error}. The %{src} definition will be ignored"
112
112
  msgstr ""
113
113
 
114
- #: ../lib/r10k/environment/with_modules.rb:106
115
- msgid "Remove the conflicting definitions of the following modules: %{conflicts}"
114
+ #: ../lib/r10k/environment/with_modules.rb:71
115
+ msgid "Unexpected value for `module_conflicts` setting in %{env} environment: %{val}"
116
116
  msgstr ""
117
117
 
118
118
  #: ../lib/r10k/feature.rb:27
@@ -187,11 +187,11 @@ msgstr ""
187
187
  msgid "Cannot write %{file}; parent directory does not exist"
188
188
  msgstr ""
189
189
 
190
- #: ../lib/r10k/git/cache.rb:55
190
+ #: ../lib/r10k/git/cache.rb:65
191
191
  msgid "%{class}#path is deprecated; use #git_dir"
192
192
  msgstr ""
193
193
 
194
- #: ../lib/r10k/git/cache.rb:84
194
+ #: ../lib/r10k/git/cache.rb:94
195
195
  msgid "Creating new git cache for %{remote}"
196
196
  msgstr ""
197
197
 
@@ -227,15 +227,31 @@ msgstr ""
227
227
  msgid "Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable"
228
228
  msgstr ""
229
229
 
230
- #: ../lib/r10k/git/rugged/credentials.rb:80
230
+ #: ../lib/r10k/git/rugged/credentials.rb:84
231
+ msgid "Using OAuth token from stdin for URL %{url}"
232
+ msgstr ""
233
+
234
+ #: ../lib/r10k/git/rugged/credentials.rb:87
235
+ msgid "Using OAuth token from %{token_path} for URL %{url}"
236
+ msgstr ""
237
+
238
+ #: ../lib/r10k/git/rugged/credentials.rb:89
239
+ msgid "%{path} is missing or unreadable, cannot load OAuth token"
240
+ msgstr ""
241
+
242
+ #: ../lib/r10k/git/rugged/credentials.rb:93
243
+ msgid "Supplied OAuth token contains invalid characters."
244
+ msgstr ""
245
+
246
+ #: ../lib/r10k/git/rugged/credentials.rb:117
231
247
  msgid "URL %{url} includes the username %{username}, using that user for authentication."
232
248
  msgstr ""
233
249
 
234
- #: ../lib/r10k/git/rugged/credentials.rb:83
250
+ #: ../lib/r10k/git/rugged/credentials.rb:120
235
251
  msgid "URL %{url} did not specify a user, using %{user} from configuration"
236
252
  msgstr ""
237
253
 
238
- #: ../lib/r10k/git/rugged/credentials.rb:86
254
+ #: ../lib/r10k/git/rugged/credentials.rb:123
239
255
  msgid "URL %{url} did not specify a user, using current user %{user}"
240
256
  msgstr ""
241
257
 
@@ -255,31 +271,31 @@ msgstr ""
255
271
  msgid "Found local modifications in %{file_path}"
256
272
  msgstr ""
257
273
 
258
- #: ../lib/r10k/git/stateful_repository.rb:40
274
+ #: ../lib/r10k/git/stateful_repository.rb:44
259
275
  msgid "Unable to sync repo to unresolvable ref '%{ref}'"
260
276
  msgstr ""
261
277
 
262
- #: ../lib/r10k/git/stateful_repository.rb:47
278
+ #: ../lib/r10k/git/stateful_repository.rb:51
263
279
  msgid "Cloning %{repo_path} and checking out %{ref}"
264
280
  msgstr ""
265
281
 
266
- #: ../lib/r10k/git/stateful_repository.rb:50
282
+ #: ../lib/r10k/git/stateful_repository.rb:54
267
283
  msgid "Replacing %{repo_path} and checking out %{ref}"
268
284
  msgstr ""
269
285
 
270
- #: ../lib/r10k/git/stateful_repository.rb:54 ../lib/r10k/git/stateful_repository.rb:59
286
+ #: ../lib/r10k/git/stateful_repository.rb:58 ../lib/r10k/git/stateful_repository.rb:63
271
287
  msgid "Updating %{repo_path} to %{ref}"
272
288
  msgstr ""
273
289
 
274
- #: ../lib/r10k/git/stateful_repository.rb:58
290
+ #: ../lib/r10k/git/stateful_repository.rb:62
275
291
  msgid "Overwriting local modifications to %{repo_path}"
276
292
  msgstr ""
277
293
 
278
- #: ../lib/r10k/git/stateful_repository.rb:62
294
+ #: ../lib/r10k/git/stateful_repository.rb:66
279
295
  msgid "Skipping %{repo_path} due to local modifications"
280
296
  msgstr ""
281
297
 
282
- #: ../lib/r10k/git/stateful_repository.rb:65
298
+ #: ../lib/r10k/git/stateful_repository.rb:69
283
299
  msgid "%{repo_path} is already at Git ref %{ref}"
284
300
  msgstr ""
285
301
 
@@ -303,23 +319,31 @@ msgstr ""
303
319
  msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
304
320
  msgstr ""
305
321
 
306
- #: ../lib/r10k/module/base.rb:110
322
+ #: ../lib/r10k/module/base.rb:75
323
+ msgid "Deploying module to %{path}"
324
+ msgstr ""
325
+
326
+ #: ../lib/r10k/module/base.rb:78
327
+ msgid "Only updating modules %{modules}, skipping module %{name}"
328
+ msgstr ""
329
+
330
+ #: ../lib/r10k/module/base.rb:134
307
331
  msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
308
332
  msgstr ""
309
333
 
310
- #: ../lib/r10k/module/forge.rb:70 ../lib/r10k/module/forge.rb:99
334
+ #: ../lib/r10k/module/forge.rb:88 ../lib/r10k/module/forge.rb:117
311
335
  msgid "The module %{title} does not exist on %{url}."
312
336
  msgstr ""
313
337
 
314
- #: ../lib/r10k/module/forge.rb:174
315
- msgid "Forge module names must match 'owner/modulename'"
338
+ #: ../lib/r10k/module/forge.rb:192
339
+ msgid "Forge module names must match 'owner/modulename', instead got #{title}"
316
340
  msgstr ""
317
341
 
318
- #: ../lib/r10k/module/git.rb:97
319
- msgid "Unhandled options %{unhandled} specified for %{class}"
342
+ #: ../lib/r10k/module/git.rb:66
343
+ msgid "Cannot track control repo branch for content '%{name}' when not part of a git-backed environment, will use default if available."
320
344
  msgstr ""
321
345
 
322
- #: ../lib/r10k/module/local.rb:34
346
+ #: ../lib/r10k/module/local.rb:35
323
347
  msgid "Module %{title} is a local module, always indicating synced."
324
348
  msgstr ""
325
349
 
@@ -327,39 +351,27 @@ msgstr ""
327
351
  msgid "Could not read metadata.json"
328
352
  msgstr ""
329
353
 
330
- #: ../lib/r10k/puppetfile.rb:57
354
+ #: ../lib/r10k/puppetfile.rb:73
331
355
  msgid "Using Puppetfile '%{puppetfile}'"
332
356
  msgstr ""
333
357
 
334
- #: ../lib/r10k/puppetfile.rb:71
358
+ #: ../lib/r10k/puppetfile.rb:87
335
359
  msgid "Puppetfile %{path} missing or unreadable"
336
360
  msgstr ""
337
361
 
338
- #: ../lib/r10k/puppetfile.rb:84
362
+ #: ../lib/r10k/puppetfile.rb:100
339
363
  msgid "Failed to evaluate %{path}"
340
364
  msgstr ""
341
365
 
342
- #: ../lib/r10k/puppetfile.rb:98
366
+ #: ../lib/r10k/puppetfile.rb:114
343
367
  msgid "Puppetfiles cannot contain duplicate module names."
344
368
  msgstr ""
345
369
 
346
- #: ../lib/r10k/puppetfile.rb:100
370
+ #: ../lib/r10k/puppetfile.rb:116
347
371
  msgid "Remove the duplicates of the following modules: %{dupes}"
348
372
  msgstr ""
349
373
 
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
374
+ #: ../lib/r10k/puppetfile.rb:276
363
375
  msgid "unrecognized declaration '%{method}'"
364
376
  msgstr ""
365
377
 
@@ -442,26 +454,30 @@ msgid ""
442
454
  "Returned: %{data}"
443
455
  msgstr ""
444
456
 
445
- #: ../lib/r10k/source/git.rb:72
457
+ #: ../lib/r10k/source/git.rb:77
446
458
  msgid "Fetching '%{remote}' to determine current branches."
447
459
  msgstr ""
448
460
 
449
- #: ../lib/r10k/source/git.rb:75
461
+ #: ../lib/r10k/source/git.rb:80
450
462
  msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
451
463
  msgstr ""
452
464
 
453
- #: ../lib/r10k/source/git.rb:100
465
+ #: ../lib/r10k/source/git.rb:110
454
466
  msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
455
467
  msgstr ""
456
468
 
457
- #: ../lib/r10k/source/git.rb:104
469
+ #: ../lib/r10k/source/git.rb:119
458
470
  msgid "Environment %{env_name} contained non-word characters, ignoring it."
459
471
  msgstr ""
460
472
 
461
- #: ../lib/r10k/source/git.rb:123 ../lib/r10k/source/svn.rb:113
473
+ #: ../lib/r10k/source/git.rb:138 ../lib/r10k/source/svn.rb:113
462
474
  msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
463
475
  msgstr ""
464
476
 
477
+ #: ../lib/r10k/source/git.rb:149
478
+ msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
479
+ msgstr ""
480
+
465
481
  #: ../lib/r10k/source/yaml.rb:10
466
482
  msgid "Couldn't open environments file %{file}: %{err}"
467
483
  msgstr ""
@@ -522,7 +538,11 @@ msgstr ""
522
538
  msgid "Unable to remove unmanaged path: %{path}"
523
539
  msgstr ""
524
540
 
525
- #: ../lib/r10k/util/setopts.rb:49
541
+ #: ../lib/r10k/util/setopts.rb:58
542
+ msgid "%{class_name} parameters '%{a}' and '%{b}' conflict. Specify one or the other, but not both"
543
+ msgstr ""
544
+
545
+ #: ../lib/r10k/util/setopts.rb:65
526
546
  msgid "%{class_name} cannot handle option '%{key}'"
527
547
  msgstr ""
528
548