eventhub-command 0.3.13 → 0.3.14
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.
- checksums.yaml +4 -4
- data/.gitignore +17 -17
- data/Gemfile +2 -2
- data/Rakefile +44 -44
- data/eh.gemspec +2 -0
- data/eh.rdoc +4 -4
- data/lib/deployer/base_deployer.rb +149 -149
- data/lib/deployer/executor.rb +19 -3
- data/lib/deployer/mule_deployer.rb +85 -85
- data/lib/deployer/net_ssh_extension.rb +45 -45
- data/lib/deployer/stage.rb +36 -36
- data/lib/eh-commands.rb +2 -0
- data/lib/eh.rb +11 -11
- data/lib/eh/commands/deploy_mule.rb +23 -23
- data/lib/eh/commands/deploy_ruby.rb +25 -25
- data/lib/eh/commands/generate_processor.rb +90 -90
- data/lib/eh/commands/package_ruby.rb +113 -113
- data/lib/eh/commands/proxy.rb +50 -0
- data/lib/eh/commands/repository.rb +81 -81
- data/lib/eh/proxy/proxy.rb +98 -0
- data/lib/eh/proxy/settings/git.rb +37 -0
- data/lib/eh/proxy/settings/shell.rb +46 -0
- data/lib/eh/proxy/settings/svn.rb +61 -0
- data/lib/eh/settings.rb +28 -0
- data/lib/eh/version.rb +1 -1
- data/test/default_test.rb +14 -14
- data/test/test_helper.rb +9 -9
- data/todo.txt +8 -8
- metadata +37 -3
@@ -0,0 +1,50 @@
|
|
1
|
+
desc 'enable/disable proxy'
|
2
|
+
|
3
|
+
command :proxy do |c|
|
4
|
+
|
5
|
+
c.switch([:v, :verbose], :desc => 'Show additional output.')
|
6
|
+
c.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where proxy is', default_value: Eh::Settings.current.default_stage)
|
7
|
+
|
8
|
+
c.command :off do |c|
|
9
|
+
|
10
|
+
c.action do |global_options, options, arguments|
|
11
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).unset
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
c.command :on do |c|
|
16
|
+
c.arg_name 'name'
|
17
|
+
c.action do |global_options, options, arguments|
|
18
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).set(arguments[0])
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
c.command :list do |c|
|
24
|
+
c.action do |global_options, options, arguments|
|
25
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).list
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
c.arg_name 'name'
|
30
|
+
c.command :remove do |c|
|
31
|
+
c.action do |global_options, options, arguments|
|
32
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).remove(arguments[0])
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
c.arg_name 'name'
|
37
|
+
c.arg_name 'proxy'
|
38
|
+
c.command :add do |c|
|
39
|
+
c.action do |global, options, arguments|
|
40
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).add(arguments[0], arguments[1])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
c.arg_name 'name'
|
45
|
+
c.command :select do |c|
|
46
|
+
c.action do |global_options, options, arguments|
|
47
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).select(arguments[0])
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,81 +1,81 @@
|
|
1
|
-
desc "manage repositories"
|
2
|
-
|
3
|
-
command :repository do |command|
|
4
|
-
command.desc "Lists all avaiable repositories"
|
5
|
-
command.command :list do |command|
|
6
|
-
command.action do |global_options,options,args|
|
7
|
-
|
8
|
-
Eh::Settings.current.repositories.each_with_index do |repository, index|
|
9
|
-
if repository.current?
|
10
|
-
puts "#{index + 1}: #{repository.url} (current)"
|
11
|
-
else
|
12
|
-
puts "#{index + 1}: #{repository.url}"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
command.desc "selects a repository: eh repository select INDEX"
|
19
|
-
command.command :select do |command|
|
20
|
-
command.action do |global_options,options,args|
|
21
|
-
if Eh::Settings.current.repositories.length == 0
|
22
|
-
raise "No repository configured so far"
|
23
|
-
end
|
24
|
-
if args.length != 1
|
25
|
-
raise "Need exactly 1 arguments: index"
|
26
|
-
end
|
27
|
-
selected = args[0].to_i
|
28
|
-
Eh::Settings.current.data['repositories'].each_with_index do |repository, index|
|
29
|
-
repository['current'] = (index + 1) == selected
|
30
|
-
end
|
31
|
-
puts "Selected #{Eh::Settings.current.repository.url}"
|
32
|
-
Eh::Settings.current.write
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
command.desc 'add a repository to the config: eh repository add URL DIR USERNAME PASSWORD'
|
37
|
-
command.command :add do |command|
|
38
|
-
command.action do |global_options, options, args|
|
39
|
-
if args.length != 4
|
40
|
-
raise "Need exactly 4 arguments: URL, DIR, USERNAME, PASSWORD"
|
41
|
-
end
|
42
|
-
Eh::Settings.current.data['repositories'] ||= []
|
43
|
-
|
44
|
-
# check if same repo already exists
|
45
|
-
exists = Eh::Settings.current.data['repositories'].any? do |repository|
|
46
|
-
repository['url'] == args[0]
|
47
|
-
end
|
48
|
-
if exists
|
49
|
-
raise "Already configured repository for '#{args[0]}'"
|
50
|
-
end
|
51
|
-
|
52
|
-
Eh::Settings.current.data['repositories'] << {
|
53
|
-
'url' => args[0],
|
54
|
-
'dir' => args[1],
|
55
|
-
'deploy_username' => args[2],
|
56
|
-
'deploy_password' => args[3],
|
57
|
-
'current' => (Eh::Settings.current.data['repositories'].length == 0)
|
58
|
-
}
|
59
|
-
Eh::Settings.current.write
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
|
64
|
-
command.desc 'remove a repository from the config: eh repository remove INDEX'
|
65
|
-
command.command :remove do |command|
|
66
|
-
command.action do |global_options, options, args|
|
67
|
-
|
68
|
-
if args.length != 1
|
69
|
-
raise "Need exactly 1 arguments: index"
|
70
|
-
end
|
71
|
-
selected = args[0].to_i
|
72
|
-
|
73
|
-
if Eh::Settings.current.repositories[selected - 1].nil?
|
74
|
-
raise "No repository with index #{selected}"
|
75
|
-
end
|
76
|
-
|
77
|
-
Eh::Settings.current.data['repositories'].delete_at(selected - 1)
|
78
|
-
Eh::Settings.current.write
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
1
|
+
desc "manage repositories"
|
2
|
+
|
3
|
+
command :repository do |command|
|
4
|
+
command.desc "Lists all avaiable repositories"
|
5
|
+
command.command :list do |command|
|
6
|
+
command.action do |global_options,options,args|
|
7
|
+
|
8
|
+
Eh::Settings.current.repositories.each_with_index do |repository, index|
|
9
|
+
if repository.current?
|
10
|
+
puts "#{index + 1}: #{repository.url} (current)"
|
11
|
+
else
|
12
|
+
puts "#{index + 1}: #{repository.url}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
command.desc "selects a repository: eh repository select INDEX"
|
19
|
+
command.command :select do |command|
|
20
|
+
command.action do |global_options,options,args|
|
21
|
+
if Eh::Settings.current.repositories.length == 0
|
22
|
+
raise "No repository configured so far"
|
23
|
+
end
|
24
|
+
if args.length != 1
|
25
|
+
raise "Need exactly 1 arguments: index"
|
26
|
+
end
|
27
|
+
selected = args[0].to_i
|
28
|
+
Eh::Settings.current.data['repositories'].each_with_index do |repository, index|
|
29
|
+
repository['current'] = (index + 1) == selected
|
30
|
+
end
|
31
|
+
puts "Selected #{Eh::Settings.current.repository.url}"
|
32
|
+
Eh::Settings.current.write
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
command.desc 'add a repository to the config: eh repository add URL DIR USERNAME PASSWORD'
|
37
|
+
command.command :add do |command|
|
38
|
+
command.action do |global_options, options, args|
|
39
|
+
if args.length != 4
|
40
|
+
raise "Need exactly 4 arguments: URL, DIR, USERNAME, PASSWORD"
|
41
|
+
end
|
42
|
+
Eh::Settings.current.data['repositories'] ||= []
|
43
|
+
|
44
|
+
# check if same repo already exists
|
45
|
+
exists = Eh::Settings.current.data['repositories'].any? do |repository|
|
46
|
+
repository['url'] == args[0]
|
47
|
+
end
|
48
|
+
if exists
|
49
|
+
raise "Already configured repository for '#{args[0]}'"
|
50
|
+
end
|
51
|
+
|
52
|
+
Eh::Settings.current.data['repositories'] << {
|
53
|
+
'url' => args[0],
|
54
|
+
'dir' => args[1],
|
55
|
+
'deploy_username' => args[2],
|
56
|
+
'deploy_password' => args[3],
|
57
|
+
'current' => (Eh::Settings.current.data['repositories'].length == 0)
|
58
|
+
}
|
59
|
+
Eh::Settings.current.write
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
command.desc 'remove a repository from the config: eh repository remove INDEX'
|
65
|
+
command.command :remove do |command|
|
66
|
+
command.action do |global_options, options, args|
|
67
|
+
|
68
|
+
if args.length != 1
|
69
|
+
raise "Need exactly 1 arguments: index"
|
70
|
+
end
|
71
|
+
selected = args[0].to_i
|
72
|
+
|
73
|
+
if Eh::Settings.current.repositories[selected - 1].nil?
|
74
|
+
raise "No repository with index #{selected}"
|
75
|
+
end
|
76
|
+
|
77
|
+
Eh::Settings.current.data['repositories'].delete_at(selected - 1)
|
78
|
+
Eh::Settings.current.write
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module Eh
|
2
|
+
module Proxy
|
3
|
+
require_relative 'settings/git'
|
4
|
+
require_relative 'settings/svn'
|
5
|
+
require_relative 'settings/shell'
|
6
|
+
|
7
|
+
class Proxy
|
8
|
+
def initialize(stage_name, verbose)
|
9
|
+
@stage_name = stage_name
|
10
|
+
@verbose = verbose
|
11
|
+
end
|
12
|
+
|
13
|
+
def set(name = nil)
|
14
|
+
proxy = find_proxy_by_name(name) || find_default_proxy
|
15
|
+
if proxy.nil?
|
16
|
+
raise "No proxy found"
|
17
|
+
end
|
18
|
+
Eh::Proxy::Settings::Git.new(stage, verbose).set(proxy.url)
|
19
|
+
Eh::Proxy::Settings::Svn.new(stage, verbose).set(proxy.url)
|
20
|
+
Eh::Proxy::Settings::Shell.new(stage, verbose).set(proxy.url)
|
21
|
+
end
|
22
|
+
|
23
|
+
def unset
|
24
|
+
Eh::Proxy::Settings::Git.new(stage, verbose).unset
|
25
|
+
Eh::Proxy::Settings::Svn.new(stage, verbose).unset
|
26
|
+
Eh::Proxy::Settings::Shell.new(stage, verbose).unset
|
27
|
+
end
|
28
|
+
|
29
|
+
def remove(name)
|
30
|
+
proxy = find_proxy_by_name(name)
|
31
|
+
if proxy.nil?
|
32
|
+
raise "No proxy with name #{name}"
|
33
|
+
end
|
34
|
+
|
35
|
+
Eh::Settings.current.data['proxies'].reject! { |json| json['name'] == name}
|
36
|
+
Eh::Settings.current.write
|
37
|
+
end
|
38
|
+
|
39
|
+
def add(name, url)
|
40
|
+
if name.nil? || url.nil?
|
41
|
+
raise "Please provide name and url"
|
42
|
+
end
|
43
|
+
if find_proxy_by_name(name) || find_proxy_by_url(url)
|
44
|
+
raise "Already configured proxy for '#{name} -> #{url}'"
|
45
|
+
end
|
46
|
+
|
47
|
+
Eh::Settings.current.data['proxies'] << {
|
48
|
+
'url' => url,
|
49
|
+
'name' => name,
|
50
|
+
'default' => (Eh::Settings.current.proxies.length == 0)
|
51
|
+
}
|
52
|
+
Eh::Settings.current.write
|
53
|
+
end
|
54
|
+
|
55
|
+
def select(name)
|
56
|
+
proxy = find_proxy_by_name(name)
|
57
|
+
if proxy.nil?
|
58
|
+
raise "No proxy found with name #{name}"
|
59
|
+
end
|
60
|
+
|
61
|
+
Eh::Settings.current.data['proxies'].each do |json|
|
62
|
+
json['default'] = (json['name'] == name)
|
63
|
+
end
|
64
|
+
Eh::Settings.current.write
|
65
|
+
end
|
66
|
+
|
67
|
+
def list
|
68
|
+
Eh::Settings.current.proxies.each do |proxy|
|
69
|
+
puts proxy.label
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
attr_reader :stage_name, :verbose
|
75
|
+
|
76
|
+
def stage
|
77
|
+
@stage ||= Deployer::Stage.load(stage_name, stage_path)
|
78
|
+
end
|
79
|
+
|
80
|
+
def stage_path
|
81
|
+
File.join(Eh::Settings.current.stages_dir, "#{stage_name}.yml")
|
82
|
+
end
|
83
|
+
|
84
|
+
def find_proxy_by_name(name)
|
85
|
+
Eh::Settings.current.proxies.find { |proxy| proxy.name == name }
|
86
|
+
end
|
87
|
+
|
88
|
+
def find_proxy_by_url(url)
|
89
|
+
Eh::Settings.current.proxies.find { |proxy| proxy.url == url }
|
90
|
+
end
|
91
|
+
|
92
|
+
def find_default_proxy
|
93
|
+
Eh::Settings.current.proxies.find { |proxy| proxy.default }
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Eh::Proxy::Settings
|
2
|
+
class Git
|
3
|
+
def initialize(stage, verbose = true)
|
4
|
+
@stage = stage
|
5
|
+
@verbose = verbose
|
6
|
+
end
|
7
|
+
|
8
|
+
def set(value)
|
9
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
10
|
+
executor.execute(set_command(value), abort_on_error: false)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def unset
|
15
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
16
|
+
executor.execute(unset_command, abort_on_error: false)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def verbose?
|
24
|
+
@verbose
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :stage
|
28
|
+
|
29
|
+
def unset_command
|
30
|
+
"git config --global --unset http.proxy ; git config --global --unset https.proxy"
|
31
|
+
end
|
32
|
+
|
33
|
+
def set_command(value)
|
34
|
+
"git config --global http.proxy http://#{value} ; git config --global https.proxy https://#{value}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Eh::Proxy::Settings
|
2
|
+
class Shell
|
3
|
+
def initialize(stage, verbose = true)
|
4
|
+
@stage = stage
|
5
|
+
@verbose = verbose
|
6
|
+
end
|
7
|
+
|
8
|
+
def set(value)
|
9
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
10
|
+
executor.execute(set_command(value), abort_on_error: false)
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def unset
|
16
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
17
|
+
executor.execute(unset_command, abort_on_error: false)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def proxy_file
|
25
|
+
'~/.proxy'
|
26
|
+
end
|
27
|
+
|
28
|
+
def verbose?
|
29
|
+
@verbose
|
30
|
+
end
|
31
|
+
|
32
|
+
attr_reader :stage
|
33
|
+
|
34
|
+
def unset_command
|
35
|
+
"rm -f #{proxy_file} ; touch #{proxy_file}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def set_command(value)
|
39
|
+
"echo '#{set_content(value)}' > #{proxy_file}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def set_content(value)
|
43
|
+
"export http_proxy=#{value}\nexport https_proxy=#{value}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
require 'parseconfig'
|
3
|
+
module Eh::Proxy::Settings
|
4
|
+
|
5
|
+
class Svn
|
6
|
+
def initialize(stage, verbose = true)
|
7
|
+
@stage = stage
|
8
|
+
@verbose = verbose
|
9
|
+
end
|
10
|
+
|
11
|
+
def unset
|
12
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
13
|
+
executor.download("~/.subversion/servers", temporary_config_file)
|
14
|
+
config = ParseConfig.new(temporary_config_file)
|
15
|
+
|
16
|
+
config['global'].delete('http-proxy-host')
|
17
|
+
config['global'].delete('http-proxy-port')
|
18
|
+
config['global'].delete('http-proxy-username')
|
19
|
+
config['global'].delete('http-proxy-password')
|
20
|
+
File.open(temporary_config_file, 'w') do |file|
|
21
|
+
config.write(file, false)
|
22
|
+
end
|
23
|
+
executor.upload(temporary_config_file, "~/.subversion/servers")
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
def set(value)
|
29
|
+
uri = URI.parse("http://#{value}")
|
30
|
+
|
31
|
+
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
32
|
+
executor.download("~/.subversion/servers", temporary_config_file)
|
33
|
+
config = ParseConfig.new(temporary_config_file)
|
34
|
+
config['global']['http-proxy-host'] = uri.host
|
35
|
+
config['global']['http-proxy-port'] = uri.port
|
36
|
+
File.open(temporary_config_file, 'w') do |file|
|
37
|
+
config.write(file, false)
|
38
|
+
end
|
39
|
+
executor.upload(temporary_config_file, "~/.subversion/servers")
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def verbose?
|
47
|
+
@verbose
|
48
|
+
end
|
49
|
+
|
50
|
+
attr_reader :stage
|
51
|
+
|
52
|
+
def unset_command
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def temporary_config_file
|
57
|
+
@temporary_config_file ||= Dir::Tmpname.make_tmpname([Dir.tmpdir, 'subversion_servers'], nil)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|