eventhub-command 0.2.2 → 0.2.3
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/README.md +91 -91
- data/Rakefile +44 -44
- data/bin/eh +35 -35
- data/eh.gemspec +29 -29
- data/eh.rdoc +4 -4
- data/lib/deployer/base_deployer.rb +149 -149
- data/lib/deployer/executor.rb +113 -113
- data/lib/deployer/mule_deployer.rb +85 -85
- data/lib/deployer/net_ssh_extension.rb +37 -37
- data/lib/deployer/ruby_deployer.rb +111 -111
- data/lib/deployer/stage.rb +27 -27
- data/lib/deployer.rb +11 -11
- data/lib/eh/commands/copy_config.rb +51 -51
- 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 +104 -104
- data/lib/eh/commands/repository.rb +81 -71
- data/lib/eh/settings.rb +114 -113
- data/lib/eh/version.rb +3 -3
- data/lib/eh-commands.rb +16 -17
- data/lib/eh.rb +11 -11
- data/test/default_test.rb +14 -14
- data/test/test_helper.rb +9 -9
- data/todo.txt +8 -8
- metadata +3 -5
- data/lib/eh/commands/deploy.rb +0 -38
@@ -1,23 +1,23 @@
|
|
1
|
-
desc 'deploy a single channel adapter'
|
2
|
-
arg_name '[channel_adapter[,other_channel_adapter,pattern*]]'
|
3
|
-
|
4
|
-
command :deploy_mule do |c|
|
5
|
-
c.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where channel adapter is deployed to', default_value: 'development')
|
6
|
-
c.flag([:deploy_via], desc: 'how to get hold of the channel adapter: scm or scp', type: String, long_desc: 'copy the channel adapter zip file via scp from this machine or check it out from scm', default_value: 'scp')
|
7
|
-
|
8
|
-
c.switch([:v, :verbose], :desc => 'Show additional output.')
|
9
|
-
|
10
|
-
c.action do |global_options, options, args|
|
11
|
-
begin
|
12
|
-
if args[0]
|
13
|
-
adapter_names = args[0].split(',').map(&:strip)
|
14
|
-
else
|
15
|
-
adapter_names = nil
|
16
|
-
end
|
17
|
-
Deployer::MuleDeployer.new(adapter_names, options).deploy!
|
18
|
-
rescue => e
|
19
|
-
puts e.message
|
20
|
-
puts e.backtrace.join("\n")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
desc 'deploy a single channel adapter'
|
2
|
+
arg_name '[channel_adapter[,other_channel_adapter,pattern*]]'
|
3
|
+
|
4
|
+
command :deploy_mule do |c|
|
5
|
+
c.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where channel adapter is deployed to', default_value: 'development')
|
6
|
+
c.flag([:deploy_via], desc: 'how to get hold of the channel adapter: scm or scp', type: String, long_desc: 'copy the channel adapter zip file via scp from this machine or check it out from scm', default_value: 'scp')
|
7
|
+
|
8
|
+
c.switch([:v, :verbose], :desc => 'Show additional output.')
|
9
|
+
|
10
|
+
c.action do |global_options, options, args|
|
11
|
+
begin
|
12
|
+
if args[0]
|
13
|
+
adapter_names = args[0].split(',').map(&:strip)
|
14
|
+
else
|
15
|
+
adapter_names = nil
|
16
|
+
end
|
17
|
+
Deployer::MuleDeployer.new(adapter_names, options).deploy!
|
18
|
+
rescue => e
|
19
|
+
puts e.message
|
20
|
+
puts e.backtrace.join("\n")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,25 +1,25 @@
|
|
1
|
-
desc 'deploy a single ruby processor'
|
2
|
-
arg_name '[processor_name,[other_processor_name,pattern*]]'
|
3
|
-
|
4
|
-
command :deploy_ruby do |c|
|
5
|
-
c.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where processor is deployed to', default_value: 'development')
|
6
|
-
c.flag([:deploy_via], desc: 'how to get hold of the processor: scm or scp', type: String, long_desc: 'copy the processor zip file via scp from this machine or check it out from scm', default_value: 'scp')
|
7
|
-
c.flag([:branch], desc: 'branch', type: String, long_desc: 'What branch to deploy. Only when deploy_via=scm', default_value: 'master')
|
8
|
-
c.flag([:tag], desc: 'tag', type: String, long_desc: 'What tag to deploy. Only when deploy_via=scm', default_value: nil)
|
9
|
-
|
10
|
-
c.switch([:v, :verbose], :desc => 'Show additional output.')
|
11
|
-
|
12
|
-
c.action do |global_options, options, args|
|
13
|
-
begin
|
14
|
-
if args[0]
|
15
|
-
processor_names = args[0].split(',').map(&:strip)
|
16
|
-
else
|
17
|
-
processor_names = nil
|
18
|
-
end
|
19
|
-
Deployer::RubyDeployer.new(processor_names, options).deploy!
|
20
|
-
rescue => e
|
21
|
-
puts e.message
|
22
|
-
puts e.backtrace.join("\n")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
1
|
+
desc 'deploy a single ruby processor'
|
2
|
+
arg_name '[processor_name,[other_processor_name,pattern*]]'
|
3
|
+
|
4
|
+
command :deploy_ruby do |c|
|
5
|
+
c.flag([:stage], desc: 'stage', type: String, long_desc: 'Stage where processor is deployed to', default_value: 'development')
|
6
|
+
c.flag([:deploy_via], desc: 'how to get hold of the processor: scm or scp', type: String, long_desc: 'copy the processor zip file via scp from this machine or check it out from scm', default_value: 'scp')
|
7
|
+
c.flag([:branch], desc: 'branch', type: String, long_desc: 'What branch to deploy. Only when deploy_via=scm', default_value: 'master')
|
8
|
+
c.flag([:tag], desc: 'tag', type: String, long_desc: 'What tag to deploy. Only when deploy_via=scm', default_value: nil)
|
9
|
+
|
10
|
+
c.switch([:v, :verbose], :desc => 'Show additional output.')
|
11
|
+
|
12
|
+
c.action do |global_options, options, args|
|
13
|
+
begin
|
14
|
+
if args[0]
|
15
|
+
processor_names = args[0].split(',').map(&:strip)
|
16
|
+
else
|
17
|
+
processor_names = nil
|
18
|
+
end
|
19
|
+
Deployer::RubyDeployer.new(processor_names, options).deploy!
|
20
|
+
rescue => e
|
21
|
+
puts e.message
|
22
|
+
puts e.backtrace.join("\n")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,90 +1,90 @@
|
|
1
|
-
desc 'Generates a template for a processor'
|
2
|
-
arg_name 'module_name processor_name'
|
3
|
-
|
4
|
-
command :generate_processor do |c|
|
5
|
-
c.action do |global_options, options, args|
|
6
|
-
require 'active_support/core_ext/string/inflections'
|
7
|
-
require 'fileutils'
|
8
|
-
require 'erb'
|
9
|
-
|
10
|
-
if args.size != 2
|
11
|
-
puts "Needs exactly 2 arguments: eh generate_processor ModuleName ProcessorName"
|
12
|
-
exit -1
|
13
|
-
end
|
14
|
-
|
15
|
-
processor_module_name = args[0].camelcase
|
16
|
-
processor_class_name = args[1].camelcase
|
17
|
-
underscored_processor_module_name = processor_module_name.underscore
|
18
|
-
underscored_processor_class_name = processor_class_name.underscore
|
19
|
-
|
20
|
-
destination_dir = Eh::Settings.current.processors_src_dir
|
21
|
-
destination_dir = File.join(destination_dir, "#{underscored_processor_module_name}.#{underscored_processor_class_name}")
|
22
|
-
|
23
|
-
if Dir.exists? destination_dir
|
24
|
-
puts "#{destination_dir} already exists!"
|
25
|
-
exit -1
|
26
|
-
end
|
27
|
-
|
28
|
-
template_tmp_dir = Eh::Settings.current.template_tmp_dir
|
29
|
-
checkout_git_repo(template_tmp_dir)
|
30
|
-
|
31
|
-
FileUtils.cp_r template_tmp_dir, destination_dir
|
32
|
-
FileUtils.rm_rf File.join(destination_dir, ".git")
|
33
|
-
FileUtils.rm File.join(destination_dir, 'README.md')
|
34
|
-
|
35
|
-
puts "Generating processor #{processor_module_name}::#{processor_class_name} in #{destination_dir}"
|
36
|
-
Dir.glob(destination_dir + "/**/*.erb") do |file|
|
37
|
-
template = ERB.new(File.read(file))
|
38
|
-
|
39
|
-
File.open(file, "w") do |writeable_file|
|
40
|
-
writeable_file.puts template.result(binding)
|
41
|
-
end
|
42
|
-
|
43
|
-
FileUtils.mv file, File.join(File.dirname(file), File.basename(file, ".erb"))
|
44
|
-
end
|
45
|
-
|
46
|
-
replacements = [
|
47
|
-
["underscored_processor_module_name", underscored_processor_module_name],
|
48
|
-
["underscored_processor_class_name", underscored_processor_class_name],
|
49
|
-
["processor_module_name", processor_module_name],
|
50
|
-
["processor_class_name", processor_class_name]
|
51
|
-
]
|
52
|
-
|
53
|
-
rename_files_with_replacements(destination_dir, replacements)
|
54
|
-
|
55
|
-
FileUtils.rm_rf template_tmp_dir
|
56
|
-
|
57
|
-
puts "Done."
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def shallow_clone_git_repository(source_url, destination_dir)
|
62
|
-
system("git clone --depth 1 #{source_url} #{destination_dir}")
|
63
|
-
end
|
64
|
-
|
65
|
-
def rename_files_with_replacements(destination_dir, replacements)
|
66
|
-
Dir.glob(destination_dir + "/**/*") do |src_file_path|
|
67
|
-
if File.file? src_file_path
|
68
|
-
dir = File.dirname src_file_path
|
69
|
-
file_with_replacements = File.basename src_file_path
|
70
|
-
|
71
|
-
replacements.each do |find_string, replace_string|
|
72
|
-
file_with_replacements.sub!(find_string, replace_string)
|
73
|
-
end
|
74
|
-
|
75
|
-
dest_file_path = File.join(dir, file_with_replacements)
|
76
|
-
|
77
|
-
if src_file_path != dest_file_path
|
78
|
-
FileUtils.mv src_file_path, dest_file_path
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def checkout_git_repo(destination_dir)
|
85
|
-
template_repository_url = Eh::Settings.current.processor_template_repository_url
|
86
|
-
puts "Checking out latest template from #{template_repository_url}"
|
87
|
-
FileUtils.rm_rf(destination_dir)
|
88
|
-
FileUtils.mkdir(destination_dir)
|
89
|
-
shallow_clone_git_repository(template_repository_url, destination_dir)
|
90
|
-
end
|
1
|
+
desc 'Generates a template for a processor'
|
2
|
+
arg_name 'module_name processor_name'
|
3
|
+
|
4
|
+
command :generate_processor do |c|
|
5
|
+
c.action do |global_options, options, args|
|
6
|
+
require 'active_support/core_ext/string/inflections'
|
7
|
+
require 'fileutils'
|
8
|
+
require 'erb'
|
9
|
+
|
10
|
+
if args.size != 2
|
11
|
+
puts "Needs exactly 2 arguments: eh generate_processor ModuleName ProcessorName"
|
12
|
+
exit -1
|
13
|
+
end
|
14
|
+
|
15
|
+
processor_module_name = args[0].camelcase
|
16
|
+
processor_class_name = args[1].camelcase
|
17
|
+
underscored_processor_module_name = processor_module_name.underscore
|
18
|
+
underscored_processor_class_name = processor_class_name.underscore
|
19
|
+
|
20
|
+
destination_dir = Eh::Settings.current.processors_src_dir
|
21
|
+
destination_dir = File.join(destination_dir, "#{underscored_processor_module_name}.#{underscored_processor_class_name}")
|
22
|
+
|
23
|
+
if Dir.exists? destination_dir
|
24
|
+
puts "#{destination_dir} already exists!"
|
25
|
+
exit -1
|
26
|
+
end
|
27
|
+
|
28
|
+
template_tmp_dir = Eh::Settings.current.template_tmp_dir
|
29
|
+
checkout_git_repo(template_tmp_dir)
|
30
|
+
|
31
|
+
FileUtils.cp_r template_tmp_dir, destination_dir
|
32
|
+
FileUtils.rm_rf File.join(destination_dir, ".git")
|
33
|
+
FileUtils.rm File.join(destination_dir, 'README.md')
|
34
|
+
|
35
|
+
puts "Generating processor #{processor_module_name}::#{processor_class_name} in #{destination_dir}"
|
36
|
+
Dir.glob(destination_dir + "/**/*.erb") do |file|
|
37
|
+
template = ERB.new(File.read(file))
|
38
|
+
|
39
|
+
File.open(file, "w") do |writeable_file|
|
40
|
+
writeable_file.puts template.result(binding)
|
41
|
+
end
|
42
|
+
|
43
|
+
FileUtils.mv file, File.join(File.dirname(file), File.basename(file, ".erb"))
|
44
|
+
end
|
45
|
+
|
46
|
+
replacements = [
|
47
|
+
["underscored_processor_module_name", underscored_processor_module_name],
|
48
|
+
["underscored_processor_class_name", underscored_processor_class_name],
|
49
|
+
["processor_module_name", processor_module_name],
|
50
|
+
["processor_class_name", processor_class_name]
|
51
|
+
]
|
52
|
+
|
53
|
+
rename_files_with_replacements(destination_dir, replacements)
|
54
|
+
|
55
|
+
FileUtils.rm_rf template_tmp_dir
|
56
|
+
|
57
|
+
puts "Done."
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def shallow_clone_git_repository(source_url, destination_dir)
|
62
|
+
system("git clone --depth 1 #{source_url} #{destination_dir}")
|
63
|
+
end
|
64
|
+
|
65
|
+
def rename_files_with_replacements(destination_dir, replacements)
|
66
|
+
Dir.glob(destination_dir + "/**/*") do |src_file_path|
|
67
|
+
if File.file? src_file_path
|
68
|
+
dir = File.dirname src_file_path
|
69
|
+
file_with_replacements = File.basename src_file_path
|
70
|
+
|
71
|
+
replacements.each do |find_string, replace_string|
|
72
|
+
file_with_replacements.sub!(find_string, replace_string)
|
73
|
+
end
|
74
|
+
|
75
|
+
dest_file_path = File.join(dir, file_with_replacements)
|
76
|
+
|
77
|
+
if src_file_path != dest_file_path
|
78
|
+
FileUtils.mv src_file_path, dest_file_path
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def checkout_git_repo(destination_dir)
|
85
|
+
template_repository_url = Eh::Settings.current.processor_template_repository_url
|
86
|
+
puts "Checking out latest template from #{template_repository_url}"
|
87
|
+
FileUtils.rm_rf(destination_dir)
|
88
|
+
FileUtils.mkdir(destination_dir)
|
89
|
+
shallow_clone_git_repository(template_repository_url, destination_dir)
|
90
|
+
end
|
@@ -1,104 +1,104 @@
|
|
1
|
-
desc 'Packages processors to zip files'
|
2
|
-
command :package_ruby do |c|
|
3
|
-
c.flag([:x, :exclude], :desc => "Exclude processors by name.", :type => Array, :long_desc => "You can specify multiple processors by providing a comma-separated list.")
|
4
|
-
c.flag([:p, :processors], :desc => "Specify what processors to package", :type => Array, :long_desc => "You can specify multiple processors by providing a comma-separated list.")
|
5
|
-
c.flag([:d, :destination], :desc => "Destination directory to place created zip files.", :default_value => Eh::Settings.current.ruby_release_dir)
|
6
|
-
c.flag([:s, :source], :desc => "Source directory to read processors from.", :default_value => Eh::Settings.current.processors_src_dir)
|
7
|
-
|
8
|
-
c.action do |global_options, options, args|
|
9
|
-
source_dir = options['s']
|
10
|
-
destination_dir = options['d']
|
11
|
-
|
12
|
-
puts "Will package processors from #{source_dir} to #{destination_dir}"
|
13
|
-
# find all processors in the base directory
|
14
|
-
processor_names = Dir["#{source_dir}/*"].map do |dir|
|
15
|
-
File.basename(dir)
|
16
|
-
end
|
17
|
-
|
18
|
-
# Drop files, only use directories
|
19
|
-
processor_names.delete_if do |item|
|
20
|
-
!File.directory?("#{source_dir}/#{item}")
|
21
|
-
end
|
22
|
-
|
23
|
-
included_processor_names = processor_names
|
24
|
-
|
25
|
-
# only include processors specified by -p option, if option is given
|
26
|
-
if options['p']
|
27
|
-
included_processor_names = included_processor_names.select do |processor_name|
|
28
|
-
options['p'].include?(processor_name)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# exclude processors specified by -x option, if option is given
|
33
|
-
if options['x']
|
34
|
-
# check if any processor has been excluded from packaging
|
35
|
-
included_processor_names = included_processor_names.select do |processor_name|
|
36
|
-
!options['x'].include?(processor_name)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# make sure we have at least one processor
|
41
|
-
if included_processor_names.empty?
|
42
|
-
raise "There are no processor names. Either your -s directory is empty or you specified a strange combination of -x and -p"
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
# make sure destination directory exists
|
47
|
-
FileUtils.mkdir_p(destination_dir)
|
48
|
-
|
49
|
-
Eh::Settings.current.deployment_management_files.each do |file|
|
50
|
-
FileUtils.cp(file, destination_dir)
|
51
|
-
end
|
52
|
-
|
53
|
-
# Zip all processors
|
54
|
-
included_processor_names.each do |processor_name|
|
55
|
-
|
56
|
-
directory = File.join(source_dir, processor_name) # last slash could be omitted
|
57
|
-
zipfile_name = File.join(destination_dir, "#{processor_name}.zip")
|
58
|
-
|
59
|
-
# remove zip before we create a new one
|
60
|
-
FileUtils.rm zipfile_name, :force => true
|
61
|
-
|
62
|
-
options = {"directories-recursively" => true}
|
63
|
-
|
64
|
-
Zip::File.open(zipfile_name,Zip::File::CREATE) do |zipfile|
|
65
|
-
|
66
|
-
[directory].each{ |file_to_be_zipped|
|
67
|
-
|
68
|
-
if File.directory?(file_to_be_zipped)
|
69
|
-
# should skip directories
|
70
|
-
next if options["directories-skip"]
|
71
|
-
|
72
|
-
# should recursively add directory
|
73
|
-
if options["directories-recursively"]
|
74
|
-
directory = file_to_be_zipped
|
75
|
-
puts "zipper: archiving directory: #{directory}"
|
76
|
-
directory_chosen_pathname = options["directories-recursively-splat"] ? directory : File.dirname(directory)
|
77
|
-
directory_pathname = Pathname.new(directory_chosen_pathname)
|
78
|
-
files = Dir[File.join(directory, '**', '**')]
|
79
|
-
|
80
|
-
# pattern to exclude unwanted folders
|
81
|
-
re = Regexp.new("^#{directory}/(log|logs|exceptions|pids|tmp)")
|
82
|
-
files.delete_if {|filename| re.match(filename) if File.directory?(filename)}
|
83
|
-
|
84
|
-
files.each do |file|
|
85
|
-
file_pathname = Pathname.new(file)
|
86
|
-
file_relative_pathname = file_pathname.relative_path_from(directory_pathname)
|
87
|
-
zipfile.add(file_relative_pathname,file)
|
88
|
-
end
|
89
|
-
next
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
filename = File.basename(file_to_be_zipped)
|
94
|
-
|
95
|
-
puts "zipper: archiving #{file_to_be_zipped} as #{filename} into #{zipfile}"
|
96
|
-
|
97
|
-
zipfile.add(filename,file_to_be_zipped)
|
98
|
-
}
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
puts "Done packaging #{included_processor_names.size} processors"
|
103
|
-
end
|
104
|
-
end
|
1
|
+
desc 'Packages processors to zip files'
|
2
|
+
command :package_ruby do |c|
|
3
|
+
c.flag([:x, :exclude], :desc => "Exclude processors by name.", :type => Array, :long_desc => "You can specify multiple processors by providing a comma-separated list.")
|
4
|
+
c.flag([:p, :processors], :desc => "Specify what processors to package", :type => Array, :long_desc => "You can specify multiple processors by providing a comma-separated list.")
|
5
|
+
c.flag([:d, :destination], :desc => "Destination directory to place created zip files.", :default_value => Eh::Settings.current.ruby_release_dir)
|
6
|
+
c.flag([:s, :source], :desc => "Source directory to read processors from.", :default_value => Eh::Settings.current.processors_src_dir)
|
7
|
+
|
8
|
+
c.action do |global_options, options, args|
|
9
|
+
source_dir = options['s']
|
10
|
+
destination_dir = options['d']
|
11
|
+
|
12
|
+
puts "Will package processors from #{source_dir} to #{destination_dir}"
|
13
|
+
# find all processors in the base directory
|
14
|
+
processor_names = Dir["#{source_dir}/*"].map do |dir|
|
15
|
+
File.basename(dir)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Drop files, only use directories
|
19
|
+
processor_names.delete_if do |item|
|
20
|
+
!File.directory?("#{source_dir}/#{item}")
|
21
|
+
end
|
22
|
+
|
23
|
+
included_processor_names = processor_names
|
24
|
+
|
25
|
+
# only include processors specified by -p option, if option is given
|
26
|
+
if options['p']
|
27
|
+
included_processor_names = included_processor_names.select do |processor_name|
|
28
|
+
options['p'].include?(processor_name)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# exclude processors specified by -x option, if option is given
|
33
|
+
if options['x']
|
34
|
+
# check if any processor has been excluded from packaging
|
35
|
+
included_processor_names = included_processor_names.select do |processor_name|
|
36
|
+
!options['x'].include?(processor_name)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# make sure we have at least one processor
|
41
|
+
if included_processor_names.empty?
|
42
|
+
raise "There are no processor names. Either your -s directory is empty or you specified a strange combination of -x and -p"
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
# make sure destination directory exists
|
47
|
+
FileUtils.mkdir_p(destination_dir)
|
48
|
+
|
49
|
+
Eh::Settings.current.deployment_management_files.each do |file|
|
50
|
+
FileUtils.cp(file, destination_dir)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Zip all processors
|
54
|
+
included_processor_names.each do |processor_name|
|
55
|
+
|
56
|
+
directory = File.join(source_dir, processor_name) # last slash could be omitted
|
57
|
+
zipfile_name = File.join(destination_dir, "#{processor_name}.zip")
|
58
|
+
|
59
|
+
# remove zip before we create a new one
|
60
|
+
FileUtils.rm zipfile_name, :force => true
|
61
|
+
|
62
|
+
options = {"directories-recursively" => true}
|
63
|
+
|
64
|
+
Zip::File.open(zipfile_name,Zip::File::CREATE) do |zipfile|
|
65
|
+
|
66
|
+
[directory].each{ |file_to_be_zipped|
|
67
|
+
|
68
|
+
if File.directory?(file_to_be_zipped)
|
69
|
+
# should skip directories
|
70
|
+
next if options["directories-skip"]
|
71
|
+
|
72
|
+
# should recursively add directory
|
73
|
+
if options["directories-recursively"]
|
74
|
+
directory = file_to_be_zipped
|
75
|
+
puts "zipper: archiving directory: #{directory}"
|
76
|
+
directory_chosen_pathname = options["directories-recursively-splat"] ? directory : File.dirname(directory)
|
77
|
+
directory_pathname = Pathname.new(directory_chosen_pathname)
|
78
|
+
files = Dir[File.join(directory, '**', '**')]
|
79
|
+
|
80
|
+
# pattern to exclude unwanted folders
|
81
|
+
re = Regexp.new("^#{directory}/(log|logs|exceptions|pids|tmp)")
|
82
|
+
files.delete_if {|filename| re.match(filename) if File.directory?(filename)}
|
83
|
+
|
84
|
+
files.each do |file|
|
85
|
+
file_pathname = Pathname.new(file)
|
86
|
+
file_relative_pathname = file_pathname.relative_path_from(directory_pathname)
|
87
|
+
zipfile.add(file_relative_pathname,file)
|
88
|
+
end
|
89
|
+
next
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
filename = File.basename(file_to_be_zipped)
|
94
|
+
|
95
|
+
puts "zipper: archiving #{file_to_be_zipped} as #{filename} into #{zipfile}"
|
96
|
+
|
97
|
+
zipfile.add(filename,file_to_be_zipped)
|
98
|
+
}
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
puts "Done packaging #{included_processor_names.size} processors"
|
103
|
+
end
|
104
|
+
end
|
@@ -1,71 +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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
command.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Eh::Settings.current.data['repositories'].each_with_index do |repository, index|
|
29
|
-
repository['current'] = (index + 1) == selected
|
30
|
-
end
|
31
|
-
Eh::Settings.current.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
command.
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
Eh::Settings.current.data['repositories']
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
'
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
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
|