r10k 0.0.9 → 1.0.0rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/r10k +1 -1
- data/lib/r10k.rb +0 -4
- data/lib/r10k/cli.rb +9 -5
- data/lib/r10k/cli/deploy.rb +108 -0
- data/lib/r10k/cli/environment.rb +5 -1
- data/lib/r10k/cli/environment/deploy.rb +6 -28
- data/lib/r10k/cli/environment/list.rb +6 -10
- data/lib/r10k/cli/environment/stale.rb +6 -16
- data/lib/r10k/cli/module.rb +5 -1
- data/lib/r10k/cli/module/deploy.rb +5 -32
- data/lib/r10k/cli/module/list.rb +6 -27
- data/lib/r10k/cli/puppetfile.rb +76 -0
- data/lib/r10k/cli/synchronize.rb +8 -24
- data/lib/r10k/cli/version.rb +22 -0
- data/lib/r10k/deployment.rb +55 -26
- data/lib/r10k/deployment/config.rb +69 -0
- data/lib/r10k/{config → deployment/config}/loader.rb +9 -5
- data/lib/r10k/deployment/environment.rb +88 -0
- data/lib/r10k/deployment/source.rb +79 -0
- data/lib/r10k/errors.rb +3 -5
- data/lib/r10k/execution.rb +43 -0
- data/lib/r10k/git/cache.rb +131 -0
- data/lib/r10k/git/errors.rb +34 -0
- data/lib/r10k/git/repository.rb +74 -0
- data/lib/r10k/git/working_dir.rb +142 -0
- data/lib/r10k/logging.rb +6 -2
- data/lib/r10k/module.rb +10 -13
- data/lib/r10k/module/forge.rb +35 -22
- data/lib/r10k/module/git.rb +18 -8
- data/lib/r10k/puppetfile.rb +107 -0
- data/lib/r10k/task.rb +13 -0
- data/lib/r10k/task/deployment.rb +151 -0
- data/lib/r10k/task/environment.rb +29 -0
- data/lib/r10k/task/module.rb +18 -0
- data/lib/r10k/task/puppetfile.rb +99 -0
- data/lib/r10k/task_runner.rb +72 -0
- data/lib/r10k/util/purgeable.rb +50 -0
- data/lib/r10k/version.rb +1 -1
- data/spec/unit/deployment/environment_spec.rb +19 -0
- data/spec/unit/git/cache_spec.rb +37 -0
- data/spec/unit/git/working_dir_spec.rb +15 -0
- data/spec/unit/module/forge_spec.rb +95 -0
- data/spec/unit/module_spec.rb +29 -0
- metadata +79 -44
- data/lib/r10k/action.rb +0 -7
- data/lib/r10k/action/environment.rb +0 -74
- data/lib/r10k/action/module.rb +0 -36
- data/lib/r10k/cli/cache.rb +0 -32
- data/lib/r10k/config.rb +0 -46
- data/lib/r10k/deployment/environment_collection.rb +0 -75
- data/lib/r10k/librarian.rb +0 -31
- data/lib/r10k/librarian/dsl.rb +0 -20
- data/lib/r10k/root.rb +0 -98
- data/lib/r10k/synchro/git.rb +0 -226
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/module'
|
3
|
+
|
4
|
+
describe R10K::Module do
|
5
|
+
describe 'delegating to R10K::Module::Git' do
|
6
|
+
it "accepts args {:git => 'git url}" do
|
7
|
+
obj = R10K::Module.new('foo', '/modulepath', :git => 'git url')
|
8
|
+
obj.should be_a_kind_of R10K::Module::Git
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'delegating to R10K::Module::Git' do
|
13
|
+
it "accepts name matching 'username/modulename' and no args" do
|
14
|
+
obj = R10K::Module.new('bar/quux', '/modulepath', [])
|
15
|
+
obj.should be_a_kind_of R10K::Module::Forge
|
16
|
+
end
|
17
|
+
|
18
|
+
it "accepts name matching 'username/modulename' and a semver argument" do
|
19
|
+
obj = R10K::Module.new('bar/quux', '/modulepath', '10.0.0')
|
20
|
+
obj.should be_a_kind_of R10K::Module::Forge
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "raises an error if delegation fails" do
|
25
|
+
expect {
|
26
|
+
R10K::Module.new('bar-quux', '/modulepath', ["NOPE NOPE NOPE NOPE!"])
|
27
|
+
}.to raise_error RuntimeError, /doesn't have an implementation/
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r10k
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0rc1
|
5
|
+
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Adrien Thebo
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: colored
|
@@ -60,53 +60,69 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 2.5.2
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: log4r
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 1.1.10
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 1.1.10
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: json_pure
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: '0'
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rspec
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.10.0
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
88
104
|
version_requirements: !ruby/object:Gem::Requirement
|
89
105
|
none: false
|
90
106
|
requirements:
|
91
107
|
- - ~>
|
92
108
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
109
|
+
version: 2.10.0
|
94
110
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
111
|
+
name: mocha
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
97
113
|
none: false
|
98
114
|
requirements:
|
99
|
-
- -
|
115
|
+
- - ~>
|
100
116
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
102
|
-
type: :
|
117
|
+
version: 0.10.5
|
118
|
+
type: :development
|
103
119
|
prerelease: false
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
105
121
|
none: false
|
106
122
|
requirements:
|
107
|
-
- -
|
123
|
+
- - ~>
|
108
124
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
125
|
+
version: 0.10.5
|
110
126
|
description: ! " R10K is an implementation of the Dynamic Puppet environments based
|
111
127
|
on git repositories\n as described in http://puppetlabs.com/blog/git-workflow-and-puppet-environments/.
|
112
128
|
It\n aggressively caches and tries to minimize network activity to ensure that
|
@@ -118,37 +134,51 @@ extensions: []
|
|
118
134
|
extra_rdoc_files: []
|
119
135
|
files:
|
120
136
|
- bin/r10k
|
121
|
-
- lib/r10k
|
122
|
-
- lib/r10k/
|
123
|
-
- lib/r10k/
|
124
|
-
- lib/r10k/
|
125
|
-
- lib/r10k/
|
137
|
+
- lib/r10k.rb
|
138
|
+
- lib/r10k/errors.rb
|
139
|
+
- lib/r10k/logging.rb
|
140
|
+
- lib/r10k/deployment.rb
|
141
|
+
- lib/r10k/git/errors.rb
|
142
|
+
- lib/r10k/git/cache.rb
|
143
|
+
- lib/r10k/git/working_dir.rb
|
144
|
+
- lib/r10k/git/repository.rb
|
145
|
+
- lib/r10k/cli.rb
|
146
|
+
- lib/r10k/module.rb
|
147
|
+
- lib/r10k/task_runner.rb
|
148
|
+
- lib/r10k/execution.rb
|
149
|
+
- lib/r10k/puppetfile.rb
|
150
|
+
- lib/r10k/deployment/environment.rb
|
151
|
+
- lib/r10k/deployment/config/loader.rb
|
152
|
+
- lib/r10k/deployment/config.rb
|
153
|
+
- lib/r10k/deployment/source.rb
|
154
|
+
- lib/r10k/util/purgeable.rb
|
155
|
+
- lib/r10k/util/interp.rb
|
156
|
+
- lib/r10k/cli/environment.rb
|
126
157
|
- lib/r10k/cli/environment/list.rb
|
158
|
+
- lib/r10k/cli/environment/deploy.rb
|
127
159
|
- lib/r10k/cli/environment/stale.rb
|
128
|
-
- lib/r10k/cli/environment.rb
|
129
|
-
- lib/r10k/cli/ext/logging.rb
|
130
|
-
- lib/r10k/cli/module/deploy.rb
|
131
|
-
- lib/r10k/cli/module/list.rb
|
132
160
|
- lib/r10k/cli/module.rb
|
133
161
|
- lib/r10k/cli/synchronize.rb
|
134
|
-
- lib/r10k/cli.rb
|
135
|
-
- lib/r10k/
|
136
|
-
- lib/r10k/
|
137
|
-
- lib/r10k/
|
138
|
-
- lib/r10k/
|
139
|
-
- lib/r10k/
|
140
|
-
- lib/r10k/
|
141
|
-
- lib/r10k/
|
142
|
-
- lib/r10k/
|
162
|
+
- lib/r10k/cli/puppetfile.rb
|
163
|
+
- lib/r10k/cli/deploy.rb
|
164
|
+
- lib/r10k/cli/ext/logging.rb
|
165
|
+
- lib/r10k/cli/module/list.rb
|
166
|
+
- lib/r10k/cli/module/deploy.rb
|
167
|
+
- lib/r10k/cli/version.rb
|
168
|
+
- lib/r10k/task/environment.rb
|
169
|
+
- lib/r10k/task/deployment.rb
|
170
|
+
- lib/r10k/task/module.rb
|
171
|
+
- lib/r10k/task/puppetfile.rb
|
172
|
+
- lib/r10k/task.rb
|
143
173
|
- lib/r10k/module/forge.rb
|
144
174
|
- lib/r10k/module/git.rb
|
145
|
-
- lib/r10k/module.rb
|
146
|
-
- lib/r10k/root.rb
|
147
|
-
- lib/r10k/synchro/git.rb
|
148
|
-
- lib/r10k/util/interp.rb
|
149
175
|
- lib/r10k/version.rb
|
150
|
-
- lib/r10k.rb
|
151
176
|
- lib/semver.rb
|
177
|
+
- spec/unit/module_spec.rb
|
178
|
+
- spec/unit/git/working_dir_spec.rb
|
179
|
+
- spec/unit/git/cache_spec.rb
|
180
|
+
- spec/unit/deployment/environment_spec.rb
|
181
|
+
- spec/unit/module/forge_spec.rb
|
152
182
|
homepage: http://github.com/adrienthebo/r10k
|
153
183
|
licenses: []
|
154
184
|
post_install_message:
|
@@ -164,13 +194,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
195
|
none: false
|
166
196
|
requirements:
|
167
|
-
- - ! '
|
197
|
+
- - ! '>'
|
168
198
|
- !ruby/object:Gem::Version
|
169
|
-
version:
|
199
|
+
version: 1.3.1
|
170
200
|
requirements: []
|
171
201
|
rubyforge_project:
|
172
202
|
rubygems_version: 1.8.23
|
173
203
|
signing_key:
|
174
204
|
specification_version: 3
|
175
205
|
summary: Dynamic Puppet environments with Git
|
176
|
-
test_files:
|
206
|
+
test_files:
|
207
|
+
- spec/unit/module_spec.rb
|
208
|
+
- spec/unit/git/working_dir_spec.rb
|
209
|
+
- spec/unit/git/cache_spec.rb
|
210
|
+
- spec/unit/deployment/environment_spec.rb
|
211
|
+
- spec/unit/module/forge_spec.rb
|
data/lib/r10k/action.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'r10k/action'
|
2
|
-
require 'r10k/errors'
|
3
|
-
require 'r10k/action/module'
|
4
|
-
require 'r10k/deployment'
|
5
|
-
require 'r10k/logging'
|
6
|
-
|
7
|
-
require 'middleware'
|
8
|
-
|
9
|
-
module R10K::Action::Environment
|
10
|
-
|
11
|
-
class Deploy
|
12
|
-
# Middleware action to deploy an environment
|
13
|
-
|
14
|
-
include R10K::Logging
|
15
|
-
|
16
|
-
# @param [Object] app The next application in the middlware stack
|
17
|
-
# @param [R10K::Module] mod The module to deploy
|
18
|
-
def initialize(app, root)
|
19
|
-
@app, @root = app, root
|
20
|
-
end
|
21
|
-
|
22
|
-
# @param [Hash] env
|
23
|
-
#
|
24
|
-
# @option env [true, false] :update_cache
|
25
|
-
# @option env [true, false] :recurse
|
26
|
-
# @option env [true, false] :trace
|
27
|
-
def call(env)
|
28
|
-
@env = env
|
29
|
-
|
30
|
-
logger.info "Deploying environment #{@root.name}"
|
31
|
-
FileUtils.mkdir_p @root.full_path
|
32
|
-
@root.sync! :update_cache => @env[:update_cache]
|
33
|
-
|
34
|
-
if @env[:recurse]
|
35
|
-
# Build a new middleware chain and run it
|
36
|
-
stack = Middleware::Builder.new
|
37
|
-
@root.modules.each { |mod| stack.use R10K::Action::Module::Deploy, mod }
|
38
|
-
stack.call(@env)
|
39
|
-
end
|
40
|
-
|
41
|
-
@app.call(@env)
|
42
|
-
rescue R10K::ExecutionFailure => e
|
43
|
-
logger.error "Could not synchronize #{@root.full_path}: #{e}".red
|
44
|
-
$stderr.puts e.backtrace.join("\n").red if @env[:trace]
|
45
|
-
@app.call(@env)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
class Purge
|
50
|
-
# Middleware action to purge stale environments from a directory
|
51
|
-
|
52
|
-
include R10K::Logging
|
53
|
-
|
54
|
-
# @param [Object] app The next application in the middlware stack
|
55
|
-
# @param [String] path The directory path to purge
|
56
|
-
def initialize(app, path)
|
57
|
-
@app, @path = app, path
|
58
|
-
end
|
59
|
-
|
60
|
-
# @param [Hash] env
|
61
|
-
def call(env)
|
62
|
-
@env = env
|
63
|
-
|
64
|
-
stale_directories = R10K::Deployment.collection.stale(@path)
|
65
|
-
|
66
|
-
stale_directories.each do |dir|
|
67
|
-
logger.info "Purging stale environment #{dir.inspect}"
|
68
|
-
FileUtils.rm_rf(dir, :secure => true)
|
69
|
-
end
|
70
|
-
|
71
|
-
@app.call(@env)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
data/lib/r10k/action/module.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'r10k/action'
|
2
|
-
require 'r10k/errors'
|
3
|
-
require 'r10k/logging'
|
4
|
-
|
5
|
-
require 'middleware'
|
6
|
-
|
7
|
-
module R10K::Action::Module
|
8
|
-
|
9
|
-
class R10K::Action::Module::Deploy
|
10
|
-
# Middleware to deploy a module
|
11
|
-
|
12
|
-
include R10K::Logging
|
13
|
-
|
14
|
-
# @param [Object] app The next application in the middlware stack
|
15
|
-
# @param [R10K::Module] mod The module to deploy
|
16
|
-
def initialize(app, mod)
|
17
|
-
@app, @mod = app, mod
|
18
|
-
end
|
19
|
-
|
20
|
-
# @param [Hash] env
|
21
|
-
#
|
22
|
-
# @option env [true, false] :update_cache
|
23
|
-
def call(env)
|
24
|
-
@env = env
|
25
|
-
|
26
|
-
logger.info "Deploying module #{@mod.name}"
|
27
|
-
@mod.sync! :update_cache => @env[:update_cache]
|
28
|
-
|
29
|
-
@app.call(@env)
|
30
|
-
rescue R10K::ExecutionFailure => e
|
31
|
-
logger.error "Could not synchronize #{@mod.full_path}: #{e}".red
|
32
|
-
$stderr.puts e.backtrace.join("\n").red if @env[:trace]
|
33
|
-
@app.call(@env)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/r10k/cli/cache.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'r10k/cli'
|
2
|
-
require 'r10k/synchro/git'
|
3
|
-
require 'cri'
|
4
|
-
require 'r10k/logging'
|
5
|
-
|
6
|
-
module R10K::CLI
|
7
|
-
module Cache
|
8
|
-
def self.command
|
9
|
-
@cmd ||= Cri::Command.define do
|
10
|
-
name 'cache'
|
11
|
-
usage 'cache'
|
12
|
-
summary 'Update cache for all sources'
|
13
|
-
|
14
|
-
run do |opts, args, cmd|
|
15
|
-
sources = R10K::Deployment.config[:sources]
|
16
|
-
remotes = Set.new
|
17
|
-
|
18
|
-
sources.each_pair do |name, hash|
|
19
|
-
remotes << hash['remote']
|
20
|
-
end
|
21
|
-
|
22
|
-
remotes.each do |remote|
|
23
|
-
logger.info "Updating cache for #{remote.inspect}"
|
24
|
-
synchro = R10K::Synchro::Git.new(remote)
|
25
|
-
synchro.cache
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
self.command.add_command(Cache.command)
|
32
|
-
end
|
data/lib/r10k/config.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'r10k/deployment'
|
2
|
-
require 'r10k/config/loader'
|
3
|
-
|
4
|
-
class R10K::Config
|
5
|
-
|
6
|
-
attr_accessor :configfile
|
7
|
-
|
8
|
-
def loaded?
|
9
|
-
!(@config.nil?)
|
10
|
-
end
|
11
|
-
|
12
|
-
# Serve up the loaded config if it's already been loaded, otherwise try to
|
13
|
-
# load a config in the current wd.
|
14
|
-
def dump
|
15
|
-
load_config unless @config
|
16
|
-
@config
|
17
|
-
end
|
18
|
-
|
19
|
-
def setting(key)
|
20
|
-
self.dump[key]
|
21
|
-
end
|
22
|
-
alias_method :[], :setting
|
23
|
-
|
24
|
-
# Load and store a config file, and set relevant options
|
25
|
-
#
|
26
|
-
# @param [String] configfile The path to the YAML config file
|
27
|
-
def load_config
|
28
|
-
unless @configfile
|
29
|
-
loader = R10K::Config::Loader.new
|
30
|
-
@configfile = loader.search
|
31
|
-
end
|
32
|
-
File.open(@configfile) { |fh| @config = YAML.load(fh.read) }
|
33
|
-
apply_config_settings
|
34
|
-
@config
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
# Apply config settings to the relevant classes after a config has been loaded.
|
40
|
-
def apply_config_settings
|
41
|
-
if @config[:cachedir]
|
42
|
-
R10K::Synchro::Git.cache_root = @config[:cachedir]
|
43
|
-
end
|
44
|
-
@collection = R10K::Deployment::EnvironmentCollection.new(@config)
|
45
|
-
end
|
46
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'r10k'
|
2
|
-
require 'r10k/logging'
|
3
|
-
|
4
|
-
class R10K::Deployment::EnvironmentCollection
|
5
|
-
|
6
|
-
include R10K::Logging
|
7
|
-
|
8
|
-
attr_reader :update_cache
|
9
|
-
|
10
|
-
def initialize(config, options = {:update_cache => true})
|
11
|
-
@config = config
|
12
|
-
@environments = []
|
13
|
-
|
14
|
-
@update_cache = options.delete(:update_cache)
|
15
|
-
load_all
|
16
|
-
end
|
17
|
-
|
18
|
-
def current(basedir)
|
19
|
-
basedir = File.expand_path(basedir)
|
20
|
-
tracked_envs = @environments.select do |env|
|
21
|
-
envdir = File.expand_path(env.basedir)
|
22
|
-
envdir == basedir
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# List subdirectories that aren't associated with an env
|
27
|
-
#
|
28
|
-
# If a branch associated with an environment is deleted then the associated
|
29
|
-
# branch ceases to be tracked. This method will scan a directory for
|
30
|
-
# subdirectories and return any subdirectories that don't have an active
|
31
|
-
# branch associated.
|
32
|
-
#
|
33
|
-
# @param [String] basedir The directory to scan
|
34
|
-
#
|
35
|
-
# @return [Array<String>] A list of filenames
|
36
|
-
def stale(basedir)
|
37
|
-
basedir = File.expand_path(basedir)
|
38
|
-
|
39
|
-
all_dirs = Dir.glob("#{basedir}/*").map do |file|
|
40
|
-
File.basename(file) if File.directory?(file)
|
41
|
-
end.compact
|
42
|
-
current_dirs = current(basedir).map(&:name)
|
43
|
-
|
44
|
-
stale_dirs = all_dirs - current_dirs
|
45
|
-
|
46
|
-
stale_dirs.map {|dir| File.join(basedir, dir)}
|
47
|
-
end
|
48
|
-
|
49
|
-
# @return [Array<R10K::Root>]
|
50
|
-
def to_a
|
51
|
-
@environments
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def load_all
|
57
|
-
@config[:sources].each_pair do |repo_name, repo_config|
|
58
|
-
synchro = R10K::Synchro::Git.new(repo_config['remote'])
|
59
|
-
if @update_cache
|
60
|
-
logger.info "Updating git cache for #{repo_config['remote']}"
|
61
|
-
synchro.cache
|
62
|
-
end
|
63
|
-
|
64
|
-
if repo_config['ref']
|
65
|
-
@environments << R10K::Root.new(repo_config)
|
66
|
-
else
|
67
|
-
synchro.branches.each do |branch|
|
68
|
-
@environments << R10K::Root.new(repo_config.merge({'ref' => branch}))
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
@environments
|
74
|
-
end
|
75
|
-
end
|