Module: SSHKit::Custom::Config::Store

Defined in:
lib/sshkit/custom/config/store.rb

Class Method Summary collapse

Class Method Details

._envsObject



40
41
42
# File 'lib/sshkit/custom/config/store.rb', line 40

def _envs
  config_scope[:_envs] ||= []
end

._user_groupsObject



56
57
58
# File 'lib/sshkit/custom/config/store.rb', line 56

def _user_groups
  config_scope[:_user_groups] ||= []
end

.active_backendObject



72
73
74
# File 'lib/sshkit/custom/config/store.rb', line 72

def active_backend
  SSHKit::Custom::Config::Runner::Abstract.active_backend
end

.add_env(env) ⇒ Object



44
45
46
47
48
49
# File 'lib/sshkit/custom/config/store.rb', line 44

def add_env(env)
  old_env =  backends.first.env.clone
  _envs << old_env
  env = old_env.merge(env)
  active_backend.env = env
end

.add_pwd(directory) ⇒ Object



32
33
34
# File 'lib/sshkit/custom/config/store.rb', line 32

def add_pwd(directory)
  active_backend.pwd ||= [];  active_backend.pwd << directory
end

.add_user_group(user, group) ⇒ Object



60
61
62
63
64
# File 'lib/sshkit/custom/config/store.rb', line 60

def add_user_group(user, group)
  _user_groups << {user: active_backend.user, group:  active_backend.group }
  active_backend.user = user
  active_backend.group = group
end

.backendsObject



28
29
30
# File 'lib/sshkit/custom/config/store.rb', line 28

def backends
  @backends ||= []
end

.backends=(hosts) ⇒ Object



24
25
26
# File 'lib/sshkit/custom/config/store.rb', line 24

def backends=(hosts)
  @backends = hosts.map { |host| SSHKit.config.backend.new(host) }
end

.config_scopeObject



12
13
14
# File 'lib/sshkit/custom/config/store.rb', line 12

def config_scope
  @config_scope ||= ScopedStorage::Scope.new('sshkit_dsl_config', scope_storage)
end

.create_runner(opts) ⇒ Object



16
17
18
# File 'lib/sshkit/custom/config/store.rb', line 16

def create_runner(opts)
  @runner ||= Runner::Abstract.create_runner opts
end

.pop_envObject



51
52
53
54
# File 'lib/sshkit/custom/config/store.rb', line 51

def pop_env
  old_env = _envs.pop || {}
  backends.each {|backend| backend.env = old_env}
end

.pop_pwdObject



36
37
38
# File 'lib/sshkit/custom/config/store.rb', line 36

def pop_pwd
  active_backend.pwd ||= [];  active_backend.pwd.pop
end

.pop_user_groupObject



66
67
68
69
70
# File 'lib/sshkit/custom/config/store.rb', line 66

def pop_user_group
  old_user_group = _user_groups.pop || {}
  active_backend.user = old_user_group[:user]
  active_backend.group = old_user_group[:group]
end

.runnerObject



20
21
22
# File 'lib/sshkit/custom/config/store.rb', line 20

def runner
  @runner.tap{|r| r.backends = backends}
end

.scope_storageObject



8
9
10
# File 'lib/sshkit/custom/config/store.rb', line 8

def scope_storage
  ScopedStorage::ThreadLocalStorage
end