eventhub-command 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24eedb865c6d138112f24cc2ddde9eeb2d2c3169
4
- data.tar.gz: 035a36ace907437d1b7c608f55c0f6360e73293d
3
+ metadata.gz: e7d46ec72bd221a0e6bdfdbae22b2655e80f29ac
4
+ data.tar.gz: b31263f6fcbb048b42c176a75c304441621026b3
5
5
  SHA512:
6
- metadata.gz: e9e38cacb2d1eaee3855a9256af3aceac25515e547f2f16f27454f5d36e8016228a7d639c232fccb5e1748599eb9735973799c98116fdfdbfc8dbfa686158972
7
- data.tar.gz: 14d58405c1e74c1643ae24cefedb38cb5f78705cfaff319309b27c4a80e6b60d270a73ead3e0266cf882916ad9271bdf8eadf632e4cf950c668489eb9a78843a
6
+ metadata.gz: 164370e1291fc74a31fb996ff3548e97c483482973fa6e8c69968dfc2c2f8f62d34ae31fb123da01d447b1a79fecd2b8471049136641e66b66f002c3e84d22ef
7
+ data.tar.gz: 6f33258cb039bc03528eb1f95e923d98e3a4fb219594a48f72f198be0da9a22d58631795b36afc1b1a7abe3e3eeacf80bbf6bffe824710ca6ded1c16c4376ce0
data/.gitignore CHANGED
@@ -1,18 +1,18 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
18
  .DS_Store
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'https://rubygems.org'
2
- gemspec
1
+ source 'https://rubygems.org'
2
+ gemspec
data/Rakefile CHANGED
@@ -1,44 +1,44 @@
1
- require 'rake/clean'
2
- require 'rubygems'
3
- require 'rubygems/package_task'
4
- require 'rdoc/task'
5
- require 'cucumber'
6
- require 'cucumber/rake/task'
7
- Rake::RDocTask.new do |rd|
8
- rd.main = "README.rdoc"
9
- rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
- rd.title = 'Your application title'
11
- end
12
-
13
- spec = eval(File.read('eh.gemspec'))
14
-
15
- Gem::PackageTask.new(spec) do |pkg|
16
- end
17
- CUKE_RESULTS = 'results.html'
18
- CLEAN << CUKE_RESULTS
19
- desc 'Run features'
20
- Cucumber::Rake::Task.new(:features) do |t|
21
- opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
- opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
- t.cucumber_opts = opts
24
- t.fork = false
25
- end
26
-
27
- desc 'Run features tagged as work-in-progress (@wip)'
28
- Cucumber::Rake::Task.new('features:wip') do |t|
29
- tag_opts = ' --tags ~@pending'
30
- tag_opts = ' --tags @wip'
31
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
- t.fork = false
33
- end
34
-
35
- task :cucumber => :features
36
- task 'cucumber:wip' => 'features:wip'
37
- task :wip => 'features:wip'
38
- require 'rake/testtask'
39
- Rake::TestTask.new do |t|
40
- t.libs << "test"
41
- t.test_files = FileList['test/*_test.rb']
42
- end
43
-
44
- task :default => [:test,:features]
1
+ require 'rake/clean'
2
+ require 'rubygems'
3
+ require 'rubygems/package_task'
4
+ require 'rdoc/task'
5
+ require 'cucumber'
6
+ require 'cucumber/rake/task'
7
+ Rake::RDocTask.new do |rd|
8
+ rd.main = "README.rdoc"
9
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
+ rd.title = 'Your application title'
11
+ end
12
+
13
+ spec = eval(File.read('eh.gemspec'))
14
+
15
+ Gem::PackageTask.new(spec) do |pkg|
16
+ end
17
+ CUKE_RESULTS = 'results.html'
18
+ CLEAN << CUKE_RESULTS
19
+ desc 'Run features'
20
+ Cucumber::Rake::Task.new(:features) do |t|
21
+ opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
+ opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
+ t.cucumber_opts = opts
24
+ t.fork = false
25
+ end
26
+
27
+ desc 'Run features tagged as work-in-progress (@wip)'
28
+ Cucumber::Rake::Task.new('features:wip') do |t|
29
+ tag_opts = ' --tags ~@pending'
30
+ tag_opts = ' --tags @wip'
31
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
+ t.fork = false
33
+ end
34
+
35
+ task :cucumber => :features
36
+ task 'cucumber:wip' => 'features:wip'
37
+ task :wip => 'features:wip'
38
+ require 'rake/testtask'
39
+ Rake::TestTask.new do |t|
40
+ t.libs << "test"
41
+ t.test_files = FileList['test/*_test.rb']
42
+ end
43
+
44
+ task :default => [:test,:features]
data/eh.rdoc CHANGED
@@ -1,5 +1,5 @@
1
- = eh
2
-
3
- Generate this with
4
- eh rdoc
1
+ = eh
2
+
3
+ Generate this with
4
+ eh rdoc
5
5
  After you have described your command line interface
data/lib/deployer.rb CHANGED
@@ -8,5 +8,6 @@ require_relative 'deployer/stage'
8
8
  require_relative 'deployer/base_deployer'
9
9
  require_relative 'deployer/mule_deployer'
10
10
  require_relative 'deployer/ruby_deployer'
11
+ require_relative 'deployer/go_deployer'
11
12
  require_relative 'deployer/config_deployer'
12
13
  require_relative 'deployer/console_deployer'
@@ -1,149 +1,149 @@
1
- class Deployer::BaseDeployer
2
- attr_reader :options, :stage_path, :stage
3
-
4
- def initialize(options)
5
- @options = options
6
-
7
- @stage_path = File.join(Eh::Settings.current.stages_dir, "#{options[:stage]}.yml")
8
- @stage = Deployer::Stage.load(options[:stage], stage_path)
9
- end
10
-
11
- private
12
-
13
- def config_source_dir(*extra_paths)
14
- File.join(base_dir, 'config', *extra_paths)
15
- end
16
-
17
- def log_deployment(executor, message)
18
- executor.execute("echo $(date): #{message} - #{ENV['USER']} >> #{deploy_log_file}")
19
- end
20
-
21
- def base_dir
22
- "~/apps/event_hub"
23
- end
24
-
25
- def deploy_log_file
26
- File.join(shared_dir, 'logs', 'deploy.log')
27
- end
28
-
29
- def deploy_via
30
- options[:deploy_via]
31
- end
32
-
33
- def verbose?
34
- options[:verbose]
35
- end
36
-
37
- def via_scp?
38
- deploy_via == 'scp'
39
- end
40
-
41
- def shared_dir
42
- File.join(base_dir, 'shared')
43
- end
44
-
45
- def cached_copy_scp_dir
46
- File.join(shared_dir, 'cached_copy_scp')
47
- end
48
-
49
- def cached_copy_svn_dir
50
- File.join(shared_dir, 'cached_copy_svn')
51
- end
52
-
53
- def cached_copy_dir(*extra_paths)
54
- dir = if via_scp?
55
- cached_copy_scp_dir
56
- else
57
- if options[:tag]
58
- File.join(cached_copy_svn_dir, 'tags', options[:tag], 'releases')
59
- elsif options[:branch]
60
- File.join(cached_copy_svn_dir, 'branches', options[:branch], 'releases')
61
- else
62
- File.join(cached_copy_svn_dir, 'branches', 'master', 'releases')
63
- end
64
- end
65
- File.join(dir, *extra_paths)
66
- end
67
-
68
- def scm_username
69
- Eh::Settings.current.repository.deploy_username
70
- end
71
-
72
- def scm_password
73
- Eh::Settings.current.repository.deploy_password
74
- end
75
-
76
- def scm_base_url
77
- Eh::Settings.current.repository.url
78
- end
79
-
80
- def repository
81
- "#{scm_base_url}/branches/master/releases"
82
- end
83
-
84
-
85
- def create_base_dirs(executor)
86
- dirs = [
87
- File.join(base_dir, 'config'),
88
- File.join(base_dir, 'ruby'),
89
- File.join(base_dir, 'mule'),
90
- File.join(base_dir, 'rails'),
91
- shared_dir,
92
- File.join(shared_dir, 'pids'),
93
- File.join(shared_dir, 'logs'),
94
- cached_copy_scp_dir
95
- ]
96
- cmds = dirs.map do |dir|
97
- "mkdir -p #{dir}"
98
- end
99
- executor.execute(cmds.join(" && "))
100
- end
101
-
102
- def update_scm(executor)
103
- dir = cached_copy_svn_dir
104
- cmd = <<-EOS
105
- if [[ -d #{dir} ]]
106
- then
107
- cd #{dir}
108
- svn up --trust-server-cert --non-interactive --username #{scm_username} --password #{scm_password}
109
- else
110
- svn co --trust-server-cert --non-interactive --username #{scm_username} --password #{scm_password} #{scm_base_url} #{dir}
111
- fi
112
- EOS
113
- executor.execute(cmd)
114
- end
115
-
116
- private
117
-
118
-
119
- # Executes an ls on all hosts and returns the combined
120
- # list of files or dirs.
121
- def remote_ls(executor, options, pattern)
122
- results = executor.execute("ls #{pattern}", options)
123
- results.map do |result|
124
- if result[:stdout]
125
- result[:stdout].split("\n")
126
- end
127
- end.flatten.compact.uniq
128
- end
129
-
130
- def verify_deployment_list!(requested, available)
131
- # remove requested that are not available
132
- puts 'Deployment List'.light_blue.on_blue
133
- abort = false
134
- requested.each do |name|
135
- if available.include?(name)
136
- puts "#{name}: AVAILABLE".green
137
- else
138
- abort = true
139
- puts "#{name}: UNAVAILABLE".red
140
- end
141
- end
142
- if abort
143
- puts "Not all requested components are available in #{cached_copy_dir}. Will abort.".red
144
- raise
145
- end
146
-
147
- end
148
-
149
- end
1
+ class Deployer::BaseDeployer
2
+ attr_reader :options, :stage_path, :stage
3
+
4
+ def initialize(options)
5
+ @options = options
6
+
7
+ @stage_path = File.join(Eh::Settings.current.stages_dir, "#{options[:stage]}.yml")
8
+ @stage = Deployer::Stage.load(options[:stage], stage_path)
9
+ end
10
+
11
+ private
12
+
13
+ def config_source_dir(*extra_paths)
14
+ File.join(base_dir, 'config', *extra_paths)
15
+ end
16
+
17
+ def log_deployment(executor, message)
18
+ executor.execute("echo $(date): #{message} - #{ENV['USER']} >> #{deploy_log_file}")
19
+ end
20
+
21
+ def base_dir
22
+ "~/apps/event_hub"
23
+ end
24
+
25
+ def deploy_log_file
26
+ File.join(shared_dir, 'logs', 'deploy.log')
27
+ end
28
+
29
+ def deploy_via
30
+ options[:deploy_via]
31
+ end
32
+
33
+ def verbose?
34
+ options[:verbose]
35
+ end
36
+
37
+ def via_scp?
38
+ deploy_via == 'scp'
39
+ end
40
+
41
+ def shared_dir
42
+ File.join(base_dir, 'shared')
43
+ end
44
+
45
+ def cached_copy_scp_dir
46
+ File.join(shared_dir, 'cached_copy_scp')
47
+ end
48
+
49
+ def cached_copy_svn_dir
50
+ File.join(shared_dir, 'cached_copy_svn')
51
+ end
52
+
53
+ def cached_copy_dir(*extra_paths)
54
+ dir = if via_scp?
55
+ cached_copy_scp_dir
56
+ else
57
+ if options[:tag]
58
+ File.join(cached_copy_svn_dir, 'tags', options[:tag], 'releases')
59
+ elsif options[:branch]
60
+ File.join(cached_copy_svn_dir, 'branches', options[:branch], 'releases')
61
+ else
62
+ File.join(cached_copy_svn_dir, 'branches', 'master', 'releases')
63
+ end
64
+ end
65
+ File.join(dir, *extra_paths)
66
+ end
67
+
68
+ def scm_username
69
+ Eh::Settings.current.repository.deploy_username
70
+ end
71
+
72
+ def scm_password
73
+ Eh::Settings.current.repository.deploy_password
74
+ end
75
+
76
+ def scm_base_url
77
+ Eh::Settings.current.repository.url
78
+ end
79
+
80
+ def repository
81
+ "#{scm_base_url}/branches/master/releases"
82
+ end
83
+
84
+
85
+ def create_base_dirs(executor)
86
+ dirs = [
87
+ File.join(base_dir, 'config'),
88
+ File.join(base_dir, 'ruby'),
89
+ File.join(base_dir, 'mule'),
90
+ File.join(base_dir, 'rails'),
91
+ shared_dir,
92
+ File.join(shared_dir, 'pids'),
93
+ File.join(shared_dir, 'logs'),
94
+ cached_copy_scp_dir
95
+ ]
96
+ cmds = dirs.map do |dir|
97
+ "mkdir -p #{dir}"
98
+ end
99
+ executor.execute(cmds.join(" && "))
100
+ end
101
+
102
+ def update_scm(executor)
103
+ dir = cached_copy_svn_dir
104
+ cmd = <<-EOS
105
+ if [[ -d #{dir} ]]
106
+ then
107
+ cd #{dir}
108
+ svn up --trust-server-cert --non-interactive --username #{scm_username} --password #{scm_password}
109
+ else
110
+ svn co --trust-server-cert --non-interactive --username #{scm_username} --password #{scm_password} #{scm_base_url} #{dir}
111
+ fi
112
+ EOS
113
+ executor.execute(cmd)
114
+ end
115
+
116
+ private
117
+
118
+
119
+ # Executes an ls on all hosts and returns the combined
120
+ # list of files or dirs.
121
+ def remote_ls(executor, options, pattern)
122
+ results = executor.execute("ls #{pattern}", options)
123
+ results.map do |result|
124
+ if result[:stdout]
125
+ result[:stdout].split("\n")
126
+ end
127
+ end.flatten.compact.uniq
128
+ end
129
+
130
+ def verify_deployment_list!(requested, available)
131
+ # remove requested that are not available
132
+ puts 'Deployment List'.light_blue.on_blue
133
+ abort = false
134
+ requested.each do |name|
135
+ if available.include?(name)
136
+ puts "#{name}: AVAILABLE".green
137
+ else
138
+ abort = true
139
+ puts "#{name}: UNAVAILABLE".red
140
+ end
141
+ end
142
+ if abort
143
+ puts "Not all requested components are available in #{cached_copy_dir}. Will abort.".red
144
+ raise
145
+ end
146
+
147
+ end
148
+
149
+ end