Module: SSHKit::Custom::DSL::ConfigStore
- Defined in:
- lib/sshkit/custom/dsl/config_store.rb
Class Method Summary collapse
- ._envs ⇒ Object
- ._user_groups ⇒ Object
- .add_env(env) ⇒ Object
- .add_pwd(directory) ⇒ Object
- .add_user_group(user, group) ⇒ Object
- .backend ⇒ Object
- .backends ⇒ Object
- .backends=(hosts) ⇒ Object
- .pop_env ⇒ Object
- .pop_pwd ⇒ Object
- .pop_user_group ⇒ Object
- .runner ⇒ Object
- .runner_opts=(opts) ⇒ Object
Class Method Details
._envs ⇒ Object
41 42 43 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 41 def _envs Thread.current[:_envs] ||= [] end |
._user_groups ⇒ Object
57 58 59 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 57 def _user_groups Thread.current[:_user_groups] ||= [] end |
.add_env(env) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 45 def add_env(env) old_env = backends.first.env.clone _envs << old_env env = old_env.merge(env) backend.env = env end |
.add_pwd(directory) ⇒ Object
33 34 35 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 33 def add_pwd(directory) backend.pwd ||= []; backend.pwd << directory end |
.add_user_group(user, group) ⇒ Object
61 62 63 64 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 61 def add_user_group(user, group) _user_groups << {user: backend.user, group: backend.group } backend.user = user; backend.group = group end |
.backend ⇒ Object
71 72 73 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 71 def backend SSHKit::Runner::Abstract.active_backend end |
.backends ⇒ Object
29 30 31 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 29 def backends @backends ||= [] end |
.backends=(hosts) ⇒ Object
25 26 27 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 25 def backends=(hosts) @backends = hosts.map { |host| SSHKit.config.backend.new(host) } end |
.pop_env ⇒ Object
52 53 54 55 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 52 def pop_env old_env = _envs.pop || {} backends.each {|backend| backend.env = old_env} end |
.pop_pwd ⇒ Object
37 38 39 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 37 def pop_pwd backend.pwd ||= []; backend.pwd.pop end |
.pop_user_group ⇒ Object
66 67 68 69 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 66 def pop_user_group old_user_group = _user_groups.pop || {} backend.user = old_user_group[:user]; backend.group = old_user_group[:group] end |
.runner ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 13 def runner @runner ||= case @runner_opts[:in] when :parallel then SSHKit::Runner::Parallel when :sequence then SSHKit::Runner::Sequential when :groups then SSHKit::Runner::Group else raise RuntimeError, "Don't know how to handle run style #{@runner_opts[:in].inspect}" end.new(nil, @runner_opts) @runner.tap{|r| r.backends = backends} end |
.runner_opts=(opts) ⇒ Object
8 9 10 11 |
# File 'lib/sshkit/custom/dsl/config_store.rb', line 8 def runner_opts=(opts) @runner = nil @runner_opts = { in: :parallel }.merge(opts) end |