eventhub-command 0.6.10 → 0.7.0
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/CHANGELOG.md +8 -0
- data/README.md +2 -0
- data/bin/eh +4 -7
- data/lib/deployer/config_deployer.rb +0 -9
- data/lib/deployer/ruby_deployer.rb +0 -2
- data/lib/eh-commands.rb +4 -4
- data/lib/eh.rb +1 -0
- data/lib/eh/commands/{db.rb → database.rb} +22 -25
- data/lib/eh/commands/deploy.rb +29 -30
- data/lib/eh/commands/dump.rb +4 -5
- data/lib/eh/commands/generate.rb +7 -5
- data/lib/eh/commands/package.rb +19 -17
- data/lib/eh/commands/proxy.rb +33 -29
- data/lib/eh/commands/repository.rb +24 -11
- data/lib/eh/commands/stage.rb +28 -14
- data/lib/eh/proxy/proxy.rb +11 -5
- data/lib/eh/proxy/settings/git.rb +1 -1
- data/lib/eh/proxy/settings/svn.rb +1 -1
- data/lib/eh/version.rb +1 -1
- data/lib/helper.rb +13 -0
- data/lib/packager/go.rb +1 -8
- data/lib/packager/rails.rb +0 -16
- data/lib/packager/ruby.rb +1 -1
- metadata +26 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c7dbd01c57417a4d8ffdffd338f2fa1ad170d23
|
4
|
+
data.tar.gz: f582323a6905bae41cd7bba5b5bffe1f35b3533a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52d5cabc1dd6546c835ec7fbef0c294b919135310bf933623048868f547e7a45ad650eeacc5ca04d49b00f326e86a7fc061e0791c2e5ac225c6a85f82a46e805
|
7
|
+
data.tar.gz: 1ee64c56a674128255197cdac3d2dbdd1969379a38825b27fdcb043f81c6b7724845837a8fbc9446cf1bdd3470a3f9717fe98792b02d9dbd3a67bcc6e5a227e9
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
[](https://badge.fury.io/rb/eventhub-command)
|
1
2
|
[](https://gemnasium.com/github.com/thomis/eventhub-command)
|
3
|
+
[](https://travis-ci.org/thomis/eventhub-command)
|
2
4
|
|
3
5
|
eventhub-command
|
4
6
|
================
|
data/bin/eh
CHANGED
@@ -7,6 +7,7 @@ require 'bundler'
|
|
7
7
|
include GLI::App
|
8
8
|
|
9
9
|
program_desc 'Command line tools for EventHub'
|
10
|
+
sort_help :manually
|
10
11
|
|
11
12
|
version Eh::VERSION
|
12
13
|
config_file = File.expand_path(File.join('~', '.eh'))
|
@@ -17,19 +18,15 @@ else
|
|
17
18
|
File.open(config_file, 'w') do |file|
|
18
19
|
file.write(JSON.dump({}))
|
19
20
|
end
|
20
|
-
|
21
|
-
exit
|
21
|
+
raise "No config File found. Created empty config file for you. You can run 'eh repository add/select' to manage repositories"
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
24
|
require 'eh-commands'
|
26
25
|
|
27
|
-
# Use argument validation
|
28
|
-
arguments :strict
|
29
|
-
|
30
26
|
accept Array do |value|
|
31
27
|
value.split(/,/).map(&:strip)
|
32
28
|
end
|
33
29
|
|
34
|
-
switch([:v, :verbose], :desc => "Show
|
30
|
+
switch([:v, :verbose], :desc => "Show verbose output")
|
31
|
+
|
35
32
|
exit run(ARGV)
|
@@ -15,15 +15,6 @@ class Deployer::ConfigDeployer < Deployer::BaseDeployer
|
|
15
15
|
|
16
16
|
cmd = "rsync -r --exclude=.svn #{source} #{target}"
|
17
17
|
executor.execute(cmd)
|
18
|
-
# stage.hosts.each do |host|
|
19
|
-
# hostname = host[:host]
|
20
|
-
# source = cached_copy_dir('..', 'config', stage.name, hostname, '')
|
21
|
-
# target = config_source_dir
|
22
|
-
|
23
|
-
# # we use rsync to copy without .svn folders
|
24
|
-
# cmd = "mkdir -p #{target} && rsync -r --exclude=.svn #{source} #{target}"
|
25
|
-
# executor.execute_on(host, cmd)
|
26
|
-
# end
|
27
18
|
end
|
28
19
|
end
|
29
20
|
end
|
@@ -12,10 +12,8 @@ class Deployer::RubyDeployer < Deployer::BaseDeployer
|
|
12
12
|
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
13
13
|
create_base_dirs(executor)
|
14
14
|
|
15
|
-
|
16
15
|
update_cached_copy(executor)
|
17
16
|
|
18
|
-
|
19
17
|
# fetch processor_names unless they have been passed as an argument to the initializer
|
20
18
|
processor_names_to_deploy = resolve_processor_names(executor, options)
|
21
19
|
processor_names_to_deploy.sort(& ruby_sorter).each do |processor_name|
|
data/lib/eh-commands.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# All commands are required here
|
2
2
|
if Eh::Settings.current.repository
|
3
3
|
require 'eh/commands/generate'
|
4
|
+
require 'eh/commands/package'
|
5
|
+
require 'eh/commands/deploy'
|
4
6
|
require 'eh/commands/stage'
|
5
|
-
require 'eh/commands/dump'
|
6
|
-
require 'eh/commands/db'
|
7
7
|
require 'eh/commands/proxy'
|
8
|
-
require 'eh/commands/
|
9
|
-
require 'eh/commands/
|
8
|
+
require 'eh/commands/dump'
|
9
|
+
require 'eh/commands/database'
|
10
10
|
require 'eh/proxy/proxy'
|
11
11
|
else
|
12
12
|
# remove unused settings for this version
|
data/lib/eh.rb
CHANGED
@@ -1,28 +1,27 @@
|
|
1
|
-
desc '
|
2
|
-
command :
|
1
|
+
desc 'Database commands (run on local machine)'
|
2
|
+
command :database do |database|
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
command.flag([:file], desc: "Output Filename, last backup will be taken as default")
|
4
|
+
database.flag([:user], default_value: 'event_hub_console', desc: 'DB User')
|
5
|
+
database.flag([:db], default_value: 'event_hub_console', desc: 'DB name')
|
6
|
+
database.flag([:file], desc: "Output Filename, last backup will be taken as default")
|
8
7
|
|
9
|
-
|
10
|
-
|
8
|
+
database.desc 'Dump database from defined stage'
|
9
|
+
database.command :dump do |dump|
|
10
|
+
dump.action do |global_options, options, args|
|
11
11
|
base = Eh::Settings.current.db_backups_dir
|
12
12
|
stamp = Time.now.strftime('%Y%m%d%H%M%S')
|
13
13
|
target = options[:file] || "#{stamp}-console-dump.sql.compressed"
|
14
14
|
|
15
15
|
cmd = "mkdir -p #{base} && cd #{base} && pg_dump -Fc -U#{options[:user]} #{options[:db]} -f#{target}"
|
16
|
-
if
|
17
|
-
puts "will execute '#{cmd}'"
|
18
|
-
end
|
16
|
+
puts "will execute '#{cmd}'" if global_options[:verbose]
|
19
17
|
system cmd
|
20
|
-
puts "
|
18
|
+
puts "Database has been dumped to #{target}".green
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
24
|
-
|
25
|
-
|
22
|
+
database.desc 'Restore database to defined stage'
|
23
|
+
database.command :restore do |restore|
|
24
|
+
restore.action do |global_options, options, args|
|
26
25
|
source = options[:file] || begin
|
27
26
|
base = Eh::Settings.current.db_backups_dir
|
28
27
|
pattern = File.join(base, '*')
|
@@ -36,19 +35,19 @@ command :db do |command|
|
|
36
35
|
answer = $stdin.gets.chomp.downcase
|
37
36
|
if answer == 'yes'
|
38
37
|
cmd = "pg_restore -Fc -U #{options[:user]} -d #{options[:db]} #{source}"
|
39
|
-
if
|
40
|
-
puts "will execute '#{cmd}'"
|
41
|
-
end
|
38
|
+
puts "will execute '#{cmd}'" if global_options[:verbose]
|
42
39
|
system cmd
|
40
|
+
puts "Database has been restored".green
|
43
41
|
else
|
44
|
-
puts "
|
42
|
+
puts "Aborted".green
|
45
43
|
end
|
46
44
|
end
|
47
45
|
end
|
48
46
|
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
database.desc 'Cleanup dump files'
|
48
|
+
database.command :cleanup do |cleanup|
|
49
|
+
cleanup.flag([:keep], type: Integer, desc: "How many dumps to keep", default_value: 25)
|
50
|
+
cleanup.action do |global_options, options, args|
|
52
51
|
keep = options[:keep]
|
53
52
|
base = Eh::Settings.current.db_backups_dir
|
54
53
|
pattern = File.join(base, '*')
|
@@ -56,12 +55,10 @@ command :db do |command|
|
|
56
55
|
to_delete = files[keep..-1] || []
|
57
56
|
|
58
57
|
to_delete.each do |file|
|
59
|
-
if
|
60
|
-
puts "will delete #{file}"
|
61
|
-
end
|
58
|
+
puts "will delete #{file}" if global_options[:verbose]
|
62
59
|
system "rm #{file}"
|
63
60
|
end
|
64
|
-
puts "
|
61
|
+
puts "Deleted #{to_delete.size} file(s)".green
|
65
62
|
end
|
66
63
|
end
|
67
64
|
|
data/lib/eh/commands/deploy.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
|
-
desc '
|
2
|
-
command :deploy do |
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
forward_arguments = arguments.join(' ')
|
1
|
+
desc 'Deployment commands'
|
2
|
+
command :deploy do |deploy|
|
3
|
+
deploy.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where processor is deployed to', default_value: Eh::Settings.current.default_stage)
|
4
|
+
deploy.flag([:branch], desc: 'branch', type: String, long_desc: 'What branch to deploy. Only when deploy_via=scm', default_value: 'master')
|
5
|
+
deploy.flag([:tag], desc: 'tag', type: String, long_desc: 'What tag to deploy. Only when deploy_via=scm', default_value: nil)
|
6
|
+
deploy.flag([:deploy_via], desc: 'where to deploy from', type: String, long_desc: 'deploy via scm or scp. If you use scp then the working_dir is packaged and copied tot the servers', default_value: 'svn')
|
7
|
+
|
8
|
+
deploy.desc 'Deploy all components'
|
9
|
+
deploy.command :all do |all|
|
10
|
+
all.action do |global_options, options, args|
|
11
|
+
forward_arguments = args.join(' ')
|
13
12
|
deploy_config(options, forward_arguments)
|
14
13
|
deploy_console(options, forward_arguments)
|
15
14
|
deploy_go(options, forward_arguments)
|
@@ -18,26 +17,26 @@ command :deploy do |c|
|
|
18
17
|
end
|
19
18
|
end
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
deploy.desc 'Deploy configuration files'
|
21
|
+
deploy.command :config do |config|
|
22
|
+
config.action do |global_options, options, args|
|
24
23
|
Deployer::ConfigDeployer.new(options).deploy!
|
25
24
|
end
|
26
25
|
end
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
deploy.desc 'Deploy rails console'
|
28
|
+
deploy.command :console do |console|
|
29
|
+
console.flag([:working_dir], desc: 'directory to execute commands in', type: String, default_value: '.')
|
31
30
|
|
32
|
-
|
31
|
+
console.action do |global_options, options, args|
|
33
32
|
Deployer::ConsoleDeployer.new(options).deploy!
|
34
33
|
end
|
35
34
|
end
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
deploy.desc 'Deploy channel adapter(s)'
|
37
|
+
deploy.arg_name '[NAME1[,NAME2,PATTERN*]]'
|
38
|
+
deploy.command :mule do |mule|
|
39
|
+
mule.action do |global_options, options, args|
|
41
40
|
if args[0]
|
42
41
|
adapter_names = args[0].split(',').map(&:strip)
|
43
42
|
else
|
@@ -47,10 +46,10 @@ command :deploy do |c|
|
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
deploy.desc 'Deploy ruby processor(s)'
|
50
|
+
deploy.arg_name '[NAME1[,NAME2,PATTERN*]]'
|
51
|
+
deploy.command :ruby do |ruby|
|
52
|
+
ruby.action do |global_options, options, args|
|
54
53
|
if args[0]
|
55
54
|
processor_names = args[0].split(',').map(&:strip)
|
56
55
|
else
|
@@ -60,9 +59,9 @@ command :deploy do |c|
|
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
deploy.desc 'Deploy go processor(s)'
|
63
|
+
deploy.arg_name '[NAME1[,NAME2,PATTERN*]]'
|
64
|
+
deploy.command :go do |go|
|
66
65
|
go.action do |global_options, options, args|
|
67
66
|
if args[0]
|
68
67
|
processor_names = args[0].split(',').map(&:strip)
|
data/lib/eh/commands/dump.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
desc "
|
1
|
+
desc "Creating a dump from an eventhub environment with database, logfiles, folders"
|
2
2
|
|
3
3
|
command :dump do |command|
|
4
4
|
command.desc "Create a backup"
|
5
5
|
command.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where processor is deployed to', default_value: Eh::Settings.current.default_stage)
|
6
|
-
command.switch([:v, :verbose], :desc => 'Show additional output.')
|
7
6
|
|
7
|
+
command.desc('Download dumped database')
|
8
8
|
command.command :download do |command|
|
9
9
|
|
10
10
|
command.action do |global_options, options, args|
|
@@ -21,6 +21,7 @@ command :dump do |command|
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
command.desc('Create dump file from database')
|
24
25
|
command.command :create do |command|
|
25
26
|
|
26
27
|
command.action do |global_options, options, args|
|
@@ -35,14 +36,12 @@ command :dump do |command|
|
|
35
36
|
cmds << "cd #{dir} && zip -r #{zip_target} ."
|
36
37
|
cmds << "rm -rf #{dir}"
|
37
38
|
|
38
|
-
|
39
|
-
Deployer::Executor.new(stage(options).single_host_stage, verbose: options[:verbose]) do |executor|
|
39
|
+
Deployer::Executor.new(stage(options).single_host_stage, verbose: global_options[:verbose]) do |executor|
|
40
40
|
cmds.each do |cmd|
|
41
41
|
executor.execute(cmd)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
45
|
puts "Created an dump in #{zip_target}. Use #{stamp.green} as identifier for eh dump download."
|
47
46
|
end
|
48
47
|
end
|
data/lib/eh/commands/generate.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
desc '
|
2
|
-
arg_name 'module_name processor_name'
|
1
|
+
desc 'Generate template for a new processor'
|
3
2
|
command :generate do |c|
|
4
|
-
|
3
|
+
|
4
|
+
c.arg_name 'MODULE_NAME PROCESSOR_NAME'
|
5
|
+
c.desc "Generate ruby based processor"
|
6
|
+
c.command :ruby do |c|
|
5
7
|
c.action do |global_options, options, args|
|
6
8
|
require 'active_support/core_ext/string/inflections'
|
7
9
|
require 'fileutils'
|
8
10
|
require 'erb'
|
9
11
|
|
10
12
|
if args.size != 2
|
11
|
-
puts "Needs exactly 2 arguments: eh
|
13
|
+
puts "Needs exactly 2 arguments: eh generate processor MODULE NAME"
|
12
14
|
exit -1
|
13
15
|
end
|
14
16
|
|
@@ -17,7 +19,7 @@ command :generate do |c|
|
|
17
19
|
underscored_processor_module_name = processor_module_name.underscore
|
18
20
|
underscored_processor_class_name = processor_class_name.underscore
|
19
21
|
|
20
|
-
destination_dir = Eh::Settings.current.
|
22
|
+
destination_dir = Eh::Settings.current.ruby_processors_src_dir
|
21
23
|
destination_dir = File.join(destination_dir, "#{underscored_processor_module_name}.#{underscored_processor_class_name}")
|
22
24
|
|
23
25
|
if Dir.exists? destination_dir
|
data/lib/eh/commands/package.rb
CHANGED
@@ -1,37 +1,36 @@
|
|
1
|
-
desc '
|
2
|
-
command :package do |
|
3
|
-
|
4
|
-
|
1
|
+
desc 'Package commands'
|
2
|
+
command :package do |package|
|
3
|
+
package.flag([:s, :source], :desc => "Source directory to read processors from.")
|
4
|
+
package.flag([:d, :destination], :desc => "Destination directory to place created zip files.")
|
5
|
+
package.flag([:x, :exclude], arg_name: 'NAME1,NAME2,PATTERN*', desc: "Exclude components with NAME1,NAME2,PATTERN*", type: String)
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
ruby.flag([:i, :include], :desc => "Include processors by name format: [processor_name,[other_processor_name,pattern*]]", :type => String, :long_desc => "You can specify multiple processors by providing a comma-separated list as well as pattern using '*'")
|
10
|
-
ruby.flag([:x, :exclude], :desc => "Exclude processors by name format: [processor_name,[other_processor_name,pattern*]]", :type => String, :long_desc => "You can specify multiple processors by providing a comma-separated list as well as pattern using '*'")
|
7
|
+
package.desc 'Packages ruby processors to zip files'
|
8
|
+
package.arg_name '[NAME1,[NAME2,PATTERN*]]'
|
9
|
+
package.command :ruby do |ruby|
|
11
10
|
|
12
11
|
ruby.action do |global_options, options, args|
|
13
12
|
options['s'] ||= Eh::Settings.current.ruby_processors_src_dir
|
14
13
|
options['d'] ||= Eh::Settings.current.ruby_release_dir
|
15
14
|
source_dir = options.fetch('s')
|
16
15
|
destination_dir = options.fetch('d')
|
17
|
-
include_pattern =
|
16
|
+
include_pattern = args[0]
|
18
17
|
exclude_pattern = options['x']
|
19
18
|
packager = Packager::Ruby.new(source_dir, destination_dir, include_pattern, exclude_pattern)
|
20
19
|
packager.package
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
go.flag([:p, :platform], :
|
23
|
+
package.desc 'Packages go processors to zip files'
|
24
|
+
package.arg_name '[NAME1,[NAME2,PATTERN*]]'
|
25
|
+
package.command :go do |go|
|
26
|
+
go.flag([:p, :platform], arg_name: 'PLATFORM', desc: 'Target platform', must_match: ['linux', 'darwin', 'windows'], default_value: 'linux')
|
28
27
|
|
29
28
|
go.action do |global_options, options, args|
|
30
29
|
options['s'] ||= Eh::Settings.current.go_processors_src_dir
|
31
30
|
options['d'] ||= Eh::Settings.current.go_release_dir
|
32
31
|
source_dir = options.fetch('s')
|
33
32
|
destination_dir = options.fetch('d')
|
34
|
-
include_pattern =
|
33
|
+
include_pattern = args[0]
|
35
34
|
exclude_pattern = options['x']
|
36
35
|
platform = options['p'] || 'linux'
|
37
36
|
packager = Packager::Go.new(source_dir, destination_dir, include_pattern, exclude_pattern, platform)
|
@@ -40,11 +39,14 @@ command :package do |c|
|
|
40
39
|
|
41
40
|
end
|
42
41
|
|
43
|
-
|
44
|
-
|
42
|
+
package.desc 'Packages rails console app to zip file'
|
43
|
+
package.command :rails do |rails|
|
45
44
|
rails.action do |global_options, options, args|
|
46
45
|
options['s'] ||= Eh::Settings.current.rails_src_dir
|
47
46
|
options['d'] ||= Eh::Settings.current.rails_release_dir
|
47
|
+
|
48
|
+
raise 'Flag [-x, --exclude] is currently not supported with rails subcommand' if options[:exclude]
|
49
|
+
|
48
50
|
source_dir = options.fetch('s')
|
49
51
|
destination_dir = options.fetch('d')
|
50
52
|
|
data/lib/eh/commands/proxy.rb
CHANGED
@@ -1,50 +1,54 @@
|
|
1
|
-
desc '
|
1
|
+
desc 'Manage proxies'
|
2
|
+
command :proxy do |proxy|
|
2
3
|
|
3
|
-
|
4
|
+
proxy.switch([:v, :verbose], :desc => 'Show additional output.')
|
5
|
+
proxy.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where proxy is', default_value: Eh::Settings.current.default_stage)
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
c.action do |global_options, options, arguments|
|
11
|
-
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).unset
|
7
|
+
proxy.desc 'List defined proxies'
|
8
|
+
proxy.command :list do |list|
|
9
|
+
list.action do |global_options, options, arguments|
|
10
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).list
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
proxy.desc 'Select proxy by NAME'
|
15
|
+
proxy.arg_name 'NAME'
|
16
|
+
proxy.command :select do |select|
|
17
|
+
select.action do |global_options, options, arguments|
|
18
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).select(arguments[0])
|
19
19
|
end
|
20
|
-
|
21
20
|
end
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
proxy.desc 'Enable proxy default or by NAME'
|
23
|
+
proxy.arg_name 'NAME'
|
24
|
+
proxy.command :on do |on|
|
25
|
+
on.action do |global_options, options, arguments|
|
26
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).set(arguments[0])
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).
|
30
|
+
proxy.desc 'Disable default proxy'
|
31
|
+
proxy.command :off do |off|
|
32
|
+
off.action do |global_options, options, arguments|
|
33
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).unset
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
proxy.desc 'Add new proxy by NAME and PROXY_URL'
|
38
|
+
proxy.arg_name 'NAME PROXY_URL'
|
39
|
+
proxy.command :add do |add|
|
40
|
+
add.action do |global, options, arguments|
|
40
41
|
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).add(arguments[0], arguments[1])
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
proxy.desc "Remove by NAME"
|
46
|
+
proxy.arg_name 'NAME'
|
47
|
+
proxy.command :remove do |remove|
|
48
|
+
remove.action do |global_options, options, arguments|
|
49
|
+
Eh::Proxy::Proxy.new(options[:stage], options[:verbose]).remove(arguments[0])
|
48
50
|
end
|
49
51
|
end
|
52
|
+
|
53
|
+
proxy.default_command :list
|
50
54
|
end
|
@@ -1,39 +1,45 @@
|
|
1
|
-
desc "
|
1
|
+
desc "Manage repositories"
|
2
2
|
|
3
3
|
command :repository do |command|
|
4
4
|
command.desc "Lists all avaiable repositories"
|
5
5
|
command.command :list do |command|
|
6
6
|
command.action do |global_options,options,args|
|
7
7
|
|
8
|
+
puts "Defined Repositories [#{Eh::Settings.current.data['repositories'].size}]"
|
8
9
|
Eh::Settings.current.repositories.each_with_index do |repository, index|
|
9
10
|
if repository.current?
|
10
|
-
puts "#{index
|
11
|
+
puts " #{index+1}. #{repository.url} (current)".green
|
11
12
|
else
|
12
|
-
puts "#{index
|
13
|
+
puts " #{index+1}. #{repository.url}"
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
|
-
command.desc "
|
19
|
+
command.desc "Selects a repository by INDEX"
|
20
|
+
command.arg_name 'INDEX'
|
19
21
|
command.command :select do |command|
|
20
22
|
command.action do |global_options,options,args|
|
21
23
|
if Eh::Settings.current.repositories.length == 0
|
22
24
|
raise "No repository configured so far"
|
23
25
|
end
|
24
26
|
if args.length != 1
|
25
|
-
raise "
|
27
|
+
raise "Needs mandatory INDEX argument"
|
26
28
|
end
|
27
29
|
selected = args[0].to_i
|
30
|
+
if selected > Eh::Settings.current.data['repositories'].size
|
31
|
+
raise "Argument INDEX is out of range"
|
32
|
+
end
|
28
33
|
Eh::Settings.current.data['repositories'].each_with_index do |repository, index|
|
29
34
|
repository['current'] = (index + 1) == selected
|
30
35
|
end
|
31
|
-
puts "Selected #{Eh::Settings.current.repository.url}"
|
32
36
|
Eh::Settings.current.write
|
37
|
+
puts "Repository selected: #{Eh::Settings.current.repository.url}".green
|
33
38
|
end
|
34
39
|
end
|
35
40
|
|
36
|
-
command.desc '
|
41
|
+
command.desc 'Add a repository with URL DIR USERNAME PASSWORD'
|
42
|
+
command.arg_name 'URL DIR USERNAME PASSWORD'
|
37
43
|
command.command :add do |command|
|
38
44
|
command.action do |global_options, options, args|
|
39
45
|
if args.length != 4
|
@@ -46,7 +52,7 @@ command :repository do |command|
|
|
46
52
|
repository['url'] == args[0]
|
47
53
|
end
|
48
54
|
if exists
|
49
|
-
raise "Already configured repository
|
55
|
+
raise "Already configured repository [#{args[0]}]"
|
50
56
|
end
|
51
57
|
|
52
58
|
Eh::Settings.current.data['repositories'] << {
|
@@ -57,25 +63,32 @@ command :repository do |command|
|
|
57
63
|
'current' => (Eh::Settings.current.data['repositories'].length == 0)
|
58
64
|
}
|
59
65
|
Eh::Settings.current.write
|
66
|
+
|
67
|
+
puts "New Repository [#{args[0]}] has beed added. Total Repositories: #{Eh::Settings.current.data['repositories'].size}".green
|
60
68
|
end
|
61
69
|
end
|
62
70
|
|
63
71
|
|
64
|
-
command.desc '
|
72
|
+
command.desc 'Remove a repository by INDEX'
|
73
|
+
command.arg_name 'INDEX'
|
65
74
|
command.command :remove do |command|
|
66
75
|
command.action do |global_options, options, args|
|
67
76
|
|
68
77
|
if args.length != 1
|
69
|
-
raise "
|
78
|
+
raise "Needs mandatory INDEX argument"
|
70
79
|
end
|
71
80
|
selected = args[0].to_i
|
72
81
|
|
73
82
|
if Eh::Settings.current.repositories[selected - 1].nil?
|
74
|
-
raise "No repository with index
|
83
|
+
raise "No repository with index [selected]"
|
75
84
|
end
|
76
85
|
|
77
86
|
Eh::Settings.current.data['repositories'].delete_at(selected - 1)
|
78
87
|
Eh::Settings.current.write
|
88
|
+
|
89
|
+
puts "Repository has been removed. Total Repositories: #{Eh::Settings.current.data['repositories'].size}".green
|
79
90
|
end
|
80
91
|
end
|
92
|
+
|
93
|
+
command.default_command :list
|
81
94
|
end
|
data/lib/eh/commands/stage.rb
CHANGED
@@ -1,25 +1,39 @@
|
|
1
|
-
desc '
|
1
|
+
desc 'Manage stages'
|
2
2
|
command :stage do |command|
|
3
|
-
|
4
|
-
command.
|
5
|
-
|
6
|
-
c.action do |global_options, options, args|
|
3
|
+
command.desc 'List defined stages'
|
4
|
+
command.command :list do |list|
|
5
|
+
list.action do |global_options, options, args|
|
7
6
|
dir = Eh::Settings.current.stages_dir
|
8
|
-
puts "Checking in #{dir}".
|
9
|
-
puts "Available
|
7
|
+
puts "Checking in #{dir}".yellow if global_options[:verbose]
|
8
|
+
puts "Available Stages"
|
10
9
|
Dir.glob(File.join(dir, '*.yml')) do |name|
|
11
10
|
stage_name = File.basename(name, '.*')
|
12
|
-
|
13
|
-
puts "#{stage_name} #{default}".
|
11
|
+
is_default = Eh::Settings.current.default_stage == stage_name
|
12
|
+
puts " - #{stage_name} #{is_default ? '(default)' : nil}".send(is_default ? :green : :white)
|
14
13
|
end
|
15
14
|
end
|
16
15
|
end
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
|
17
|
+
command.desc 'Select default stage'
|
18
|
+
command.arg_name 'NAME'
|
19
|
+
command.command :select do |default|
|
20
|
+
default.action do |global_options, options, args|
|
21
|
+
new_stage = args[0]
|
22
|
+
|
23
|
+
if args.size != 1
|
24
|
+
raise "Needs a stage NAME to select"
|
25
|
+
end
|
26
|
+
|
27
|
+
# check if new_stage.yml exist in stages folder
|
28
|
+
unless File.exist?(File.join(Eh::Settings.current.stages_dir, "#{new_stage}.yml"))
|
29
|
+
raise "Stage [#{new_stage}] is not defined yet"
|
30
|
+
end
|
31
|
+
|
32
|
+
Eh::Settings.current.data['default_stage'] = new_stage
|
21
33
|
Eh::Settings.current.write
|
22
|
-
puts "
|
34
|
+
puts "Default stage selected: #{new_stage}".green
|
23
35
|
end
|
24
36
|
end
|
37
|
+
|
38
|
+
command.default_command :list
|
25
39
|
end
|
data/lib/eh/proxy/proxy.rb
CHANGED
@@ -28,21 +28,23 @@ module Eh
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def remove(name)
|
31
|
+
raise "Needs a proxy NAME to remove" if name.nil?
|
31
32
|
proxy = find_proxy_by_name(name)
|
32
33
|
if proxy.nil?
|
33
|
-
raise "No proxy with name #{name}"
|
34
|
+
raise "No proxy with given name [#{name}]"
|
34
35
|
end
|
35
36
|
|
36
37
|
Eh::Settings.current.data['proxies'].reject! { |json| json['name'] == name}
|
37
38
|
Eh::Settings.current.write
|
39
|
+
puts "Proxy [#{name}] has been removed".green
|
38
40
|
end
|
39
41
|
|
40
42
|
def add(name, url)
|
41
43
|
if name.nil? || url.nil?
|
42
|
-
raise "Please provide
|
44
|
+
raise "Please provide NAME and PROXY_URL"
|
43
45
|
end
|
44
46
|
if find_proxy_by_name(name) || find_proxy_by_url(url)
|
45
|
-
raise "Already configured proxy for
|
47
|
+
raise "Already configured proxy for [#{name} -> #{url}]"
|
46
48
|
end
|
47
49
|
|
48
50
|
Eh::Settings.current.data['proxies'] << {
|
@@ -51,23 +53,27 @@ module Eh
|
|
51
53
|
'default' => (Eh::Settings.current.proxies.length == 0)
|
52
54
|
}
|
53
55
|
Eh::Settings.current.write
|
56
|
+
puts "Proxy [#{name}] has been added".green
|
54
57
|
end
|
55
58
|
|
56
59
|
def select(name)
|
60
|
+
raise "Needs a proxy NAME to select" if name.nil?
|
57
61
|
proxy = find_proxy_by_name(name)
|
58
62
|
if proxy.nil?
|
59
|
-
raise "No proxy found with name #{name}"
|
63
|
+
raise "No proxy found with given name [#{name}]"
|
60
64
|
end
|
61
65
|
|
62
66
|
Eh::Settings.current.data['proxies'].each do |json|
|
63
67
|
json['default'] = (json['name'] == name)
|
64
68
|
end
|
65
69
|
Eh::Settings.current.write
|
70
|
+
puts "Proxy [#{name}] has been selected".green
|
66
71
|
end
|
67
72
|
|
68
73
|
def list
|
74
|
+
puts "Defined Proxies"
|
69
75
|
Eh::Settings.current.proxies.each do |proxy|
|
70
|
-
puts proxy.label
|
76
|
+
puts proxy.label.send( proxy.label =~ /\(default\)/ ? :green : :white )
|
71
77
|
end
|
72
78
|
end
|
73
79
|
|
@@ -31,7 +31,7 @@ module Eh::Proxy::Settings
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def set_command(value)
|
34
|
-
"git config --global http.proxy http://#{value} ; git config --global https.proxy https://#{value}"
|
34
|
+
"git config --global http.proxy http://#{trim_url(value)} ; git config --global https.proxy https://#{trim_url(value)}"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -26,7 +26,7 @@ module Eh::Proxy::Settings
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def set(value)
|
29
|
-
uri = URI.parse("http://#{value}")
|
29
|
+
uri = URI.parse("http://#{trim_url(value)}")
|
30
30
|
|
31
31
|
Deployer::Executor.new(stage, verbose: verbose?) do |executor|
|
32
32
|
executor.download("~/.subversion/servers", temporary_config_file)
|
data/lib/eh/version.rb
CHANGED
data/lib/helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# have a custom error handling
|
2
|
+
# have no "error:"-prefix and all text is red
|
3
|
+
if self.respond_to?(:on_error) # to exclude it in rspecs
|
4
|
+
on_error do |exception|
|
5
|
+
$stderr.puts exception.to_s.red
|
6
|
+
false # skip GLI's error handling
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# helper method to trim url
|
11
|
+
def trim_url(str)
|
12
|
+
str.sub(%r{^https?:(//|\\\\)}i, '')
|
13
|
+
end
|
data/lib/packager/go.rb
CHANGED
@@ -14,7 +14,6 @@ class Packager::Go
|
|
14
14
|
assert_at_least_one_processor!
|
15
15
|
validate_platforms!
|
16
16
|
create_destination_dir
|
17
|
-
#copy_deployment_management_files
|
18
17
|
build_processors
|
19
18
|
package_processors
|
20
19
|
end
|
@@ -41,7 +40,7 @@ class Packager::Go
|
|
41
40
|
processor_names.each do |processor_name|
|
42
41
|
package_processor(processor_name)
|
43
42
|
end
|
44
|
-
puts "Done packaging #{processor_names.size} processors"
|
43
|
+
puts "Done packaging #{processor_names.size} processors".green
|
45
44
|
end
|
46
45
|
|
47
46
|
def package_processor(processor_name)
|
@@ -85,12 +84,6 @@ class Packager::Go
|
|
85
84
|
File.join(destination_dir, "#{processor_name}.zip")
|
86
85
|
end
|
87
86
|
|
88
|
-
def copy_deployment_management_files
|
89
|
-
Eh::Settings.current.deployment_management_files.each do |file|
|
90
|
-
FileUtils.cp(file, destination_dir)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
87
|
def assert_at_least_one_processor!
|
95
88
|
if processor_names.empty?
|
96
89
|
raise "There are no processor names. Either your -s directory is empty or you specified a strange combination of include and exclude pattern."
|
data/lib/packager/rails.rb
CHANGED
@@ -42,19 +42,3 @@ class Packager::Rails
|
|
42
42
|
FileUtils.rm destination_file_name(dir), force: true
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
46
|
-
|
47
|
-
# files_and_dirs =
|
48
|
-
# source = options[:source]
|
49
|
-
#
|
50
|
-
# dirs = Dir.glob("#{source}")
|
51
|
-
# dirs.each do |dir|
|
52
|
-
# app = File.basename(dir)
|
53
|
-
# destination = File.join(options[:d], "#{app}.zip")
|
54
|
-
# included = files_and_dirs.map do |s|
|
55
|
-
# File.join(app, s)
|
56
|
-
# end.join(' ')
|
57
|
-
# cmd = "cd #{File.join(dir, '..')} && zip -r #{destination} #{included}"
|
58
|
-
# ret = system cmd
|
59
|
-
# puts "Packaged #{app}: #{ret}"
|
60
|
-
# end
|
data/lib/packager/ruby.rb
CHANGED
@@ -22,7 +22,7 @@ class Packager::Ruby
|
|
22
22
|
processor_names.each do |processor_name|
|
23
23
|
package_processor(processor_name)
|
24
24
|
end
|
25
|
-
puts "Done packaging #{processor_names.size} processors"
|
25
|
+
puts "Done packaging #{processor_names.size} processors".green
|
26
26
|
end
|
27
27
|
|
28
28
|
def package_processor(processor_name)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventhub-command
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pascal Betz
|
@@ -9,148 +9,134 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 1.15.4
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 1.15.4
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '12.0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '12.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '3.7'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '3.7'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: gli
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - '='
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 2.
|
62
|
+
version: 2.17.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - '='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.
|
69
|
+
version: 2.17.0
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rubyzip
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
77
|
-
type: :runtime
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '1.0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: activesupport
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '5.0'
|
76
|
+
version: 1.2.1
|
91
77
|
type: :runtime
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
81
|
- - "~>"
|
96
82
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
83
|
+
version: 1.2.1
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
85
|
name: net-ssh
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
88
|
- - "~>"
|
103
89
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
90
|
+
version: 4.2.0
|
105
91
|
type: :runtime
|
106
92
|
prerelease: false
|
107
93
|
version_requirements: !ruby/object:Gem::Requirement
|
108
94
|
requirements:
|
109
95
|
- - "~>"
|
110
96
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
97
|
+
version: 4.2.0
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
99
|
name: colorize
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
115
101
|
requirements:
|
116
102
|
- - "~>"
|
117
103
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
104
|
+
version: 0.8.1
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
108
|
requirements:
|
123
109
|
- - "~>"
|
124
110
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
111
|
+
version: 0.8.1
|
126
112
|
- !ruby/object:Gem::Dependency
|
127
113
|
name: highline
|
128
114
|
requirement: !ruby/object:Gem::Requirement
|
129
115
|
requirements:
|
130
116
|
- - "~>"
|
131
117
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
118
|
+
version: 1.7.8
|
133
119
|
type: :runtime
|
134
120
|
prerelease: false
|
135
121
|
version_requirements: !ruby/object:Gem::Requirement
|
136
122
|
requirements:
|
137
123
|
- - "~>"
|
138
124
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
125
|
+
version: 1.7.8
|
140
126
|
- !ruby/object:Gem::Dependency
|
141
127
|
name: parseconfig
|
142
128
|
requirement: !ruby/object:Gem::Requirement
|
143
129
|
requirements:
|
144
130
|
- - "~>"
|
145
131
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
132
|
+
version: 1.0.8
|
147
133
|
type: :runtime
|
148
134
|
prerelease: false
|
149
135
|
version_requirements: !ruby/object:Gem::Requirement
|
150
136
|
requirements:
|
151
137
|
- - "~>"
|
152
138
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
139
|
+
version: 1.0.8
|
154
140
|
description: Event Hub Command Line Tool which supports you with various Event Hub
|
155
141
|
related administrative development features.
|
156
142
|
email:
|
@@ -176,7 +162,7 @@ files:
|
|
176
162
|
- lib/deployer/stage.rb
|
177
163
|
- lib/eh-commands.rb
|
178
164
|
- lib/eh.rb
|
179
|
-
- lib/eh/commands/
|
165
|
+
- lib/eh/commands/database.rb
|
180
166
|
- lib/eh/commands/deploy.rb
|
181
167
|
- lib/eh/commands/dump.rb
|
182
168
|
- lib/eh/commands/generate.rb
|
@@ -190,6 +176,7 @@ files:
|
|
190
176
|
- lib/eh/proxy/settings/svn.rb
|
191
177
|
- lib/eh/settings.rb
|
192
178
|
- lib/eh/version.rb
|
179
|
+
- lib/helper.rb
|
193
180
|
- lib/packager.rb
|
194
181
|
- lib/packager/go.rb
|
195
182
|
- lib/packager/rails.rb
|
@@ -214,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
201
|
version: '0'
|
215
202
|
requirements: []
|
216
203
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
204
|
+
rubygems_version: 2.6.12
|
218
205
|
signing_key:
|
219
206
|
specification_version: 4
|
220
207
|
summary: Event Hub Command Line Tool
|