advance 0.1.9 → 0.1.12
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/Gemfile.lock +1 -1
- data/lib/advance.rb +99 -75
- data/lib/advance/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42dc426c725cb4bda0ce5c03bade294c5f17fba2
|
4
|
+
data.tar.gz: 2d68640161cc0d5d453a206524b5d5790ca7451b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a7b77e2d9f746a388fb794229132512cbf1333d69c8c6203fd1e1e83b3a7b9755fb2b9ce6f79b326a1a5a91c1083e95e679e58585db65b1e014843016620921
|
7
|
+
data.tar.gz: 39d2498042455ddec9a3a3cf056b2d092c146d565744343cbb670c8aec821ccbff4c93013f1ba4581fa52364f07691f53cfadf01984f7c3eff806df774262923
|
data/Gemfile.lock
CHANGED
data/lib/advance.rb
CHANGED
@@ -18,112 +18,116 @@ module Advance
|
|
18
18
|
WHITE="\e[1;37m"
|
19
19
|
YELLOW="\e[33m"
|
20
20
|
|
21
|
-
def
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
raise "step #{$step} failed with #{status}\n#{stderr}"
|
37
|
-
end
|
21
|
+
def advance(processing_mode, label, command)
|
22
|
+
$redo_mode ||= :checking
|
23
|
+
$step ||= 0
|
24
|
+
previous_dir_path = get_previous_dir_path
|
25
|
+
|
26
|
+
$step += 1
|
27
|
+
dir_prefix = step_dir_prefix($step)
|
28
|
+
dir_name = "#{dir_prefix}_#{label}"
|
29
|
+
|
30
|
+
puts "#{CYAN}advance #{$step} #{label}#{WHITE}... #{RESET}"
|
31
|
+
return if $redo_mode == :checking && Dir.exist?(dir_name)
|
32
|
+
|
33
|
+
clean_previous_step_dirs(dir_prefix)
|
34
|
+
|
35
|
+
send(processing_mode, label, command, previous_dir_path, dir_prefix, dir_name)
|
38
36
|
end
|
39
37
|
|
40
|
-
def
|
38
|
+
def static(processing_mode, label, command)
|
39
|
+
$redo_mode ||= :checking
|
40
|
+
$step ||= 0
|
41
|
+
previous_dir_path = get_previous_dir_path
|
42
|
+
dir_prefix = static_dir_prefix($step)
|
43
|
+
dir_name = "#{dir_prefix}_#{label}"
|
44
|
+
puts "#{CYAN}static #{$step} #{label}#{WHITE}... #{RESET}"
|
45
|
+
return if $redo_mode == :checking && Dir.exist?(dir_name)
|
46
|
+
|
47
|
+
FileUtils.rm_rf dir_name
|
48
|
+
|
49
|
+
send(processing_mode, label, command, previous_dir_path, dir_prefix, dir_name)
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_previous_dir_path
|
41
53
|
relative_path = case $step
|
42
|
-
when
|
43
|
-
"
|
54
|
+
when 0
|
55
|
+
"."
|
44
56
|
else
|
45
|
-
File.join("
|
57
|
+
File.join(".", Dir.entries(".").find { |d| d =~ /^#{step_dir_prefix($step)}/ })
|
46
58
|
end
|
47
59
|
File.expand_path(relative_path)
|
48
60
|
end
|
49
61
|
|
50
|
-
def
|
51
|
-
|
62
|
+
def step_dir_prefix(step_no)
|
63
|
+
"step_%03d" % [step_no]
|
52
64
|
end
|
53
65
|
|
54
|
-
def
|
55
|
-
|
66
|
+
def static_dir_prefix(step_no)
|
67
|
+
"static_%03d" % [step_no]
|
68
|
+
end
|
69
|
+
|
70
|
+
def clean_previous_step_dirs(dir_prefix)
|
71
|
+
while (step_dir = find_step_dir(dir_prefix))
|
72
|
+
puts "## removing #{step_dir}"
|
73
|
+
FileUtils.rm_rf step_dir
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def find_step_dir(dir_prefix)
|
78
|
+
dirs = Dir.entries(".")
|
79
|
+
dirs.find { |d| d =~ /^#{dir_prefix}/ }
|
80
|
+
end
|
81
|
+
|
82
|
+
def single(label, command, previous_dir_path, dir_prefix, dir_name)
|
83
|
+
work_in_sub_dir(dir_name) do
|
56
84
|
if command =~ /\{previous_file\}/
|
57
|
-
command.gsub!("{previous_file}", previous_file_path)
|
85
|
+
command.gsub!("{previous_file}", previous_file_path(previous_dir_path))
|
58
86
|
end
|
59
87
|
if command =~ /\{previous_dir\}/
|
60
88
|
command.gsub!("{previous_dir}", previous_dir_path)
|
61
89
|
end
|
62
90
|
if command =~ /\{file\}/
|
63
|
-
command.gsub!("{file}", File.basename(previous_file_path))
|
91
|
+
command.gsub!("{file}", File.basename(previous_file_path(previous_dir_path)))
|
64
92
|
end
|
65
93
|
do_command command
|
66
94
|
end
|
67
95
|
end
|
68
96
|
|
69
|
-
def multi(label, command)
|
97
|
+
def multi(label, command, previous_dir_path, dir_prefix, dir_name)
|
70
98
|
no_feedback = false
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
file_path_template = file_path_template(previous_dir_path, files)
|
99
|
+
work_in_sub_dir(dir_name) do
|
100
|
+
file_paths = Find.find(previous_dir_path).reject { |path| FileTest.directory?(path) || path =~ %r{^(log)$} }
|
101
|
+
|
75
102
|
last_progress = ""
|
76
103
|
progress_proc = ->(index, max_index) do
|
77
104
|
latest_progress = sprintf("%3i%", index.to_f / max_index * 100)
|
78
105
|
puts latest_progress if last_progress != latest_progress
|
79
106
|
last_progress = latest_progress
|
80
107
|
end
|
81
|
-
TeamEffort.work(
|
108
|
+
TeamEffort.work(file_paths, $cores, progress_proc: progress_proc) do |file_path|
|
82
109
|
begin
|
83
|
-
|
84
|
-
command.gsub!("{file_path}",
|
110
|
+
file = File.basename(file_path)
|
111
|
+
command.gsub!("{file_path}", file_path) unless $step == 1
|
85
112
|
command.gsub!("{file}", file) unless $step == 1
|
86
113
|
puts "#{YELLOW}#{command}#{RESET}"
|
87
|
-
|
88
|
-
work_in_sub_dir(dir_name) do
|
114
|
+
work_in_sub_dir(file) do
|
89
115
|
do_command command, no_feedback
|
90
116
|
end
|
91
117
|
rescue
|
92
|
-
puts "%%%% error while processing >>#{
|
118
|
+
puts "%%%% error while processing >>#{file_path}<<"
|
93
119
|
raise
|
94
120
|
end
|
95
121
|
end
|
96
122
|
end
|
97
123
|
end
|
98
124
|
|
99
|
-
def
|
100
|
-
file = files.first
|
101
|
-
file_path = File.join(dir_path, file)
|
102
|
-
if File.directory?(file_path)
|
103
|
-
File.join(dir_path, "{file}", "{file}")
|
104
|
-
else
|
105
|
-
File.join(dir_path, "{file}")
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def find_step_dir
|
110
|
-
dirs = Dir.entries(".")
|
111
|
-
dirs.find { |d| d =~ /^#{step_dir_prefix($step)}/ }
|
112
|
-
end
|
113
|
-
|
114
|
-
def clean_previous_step_dirs
|
115
|
-
while (step_dir = find_step_dir)
|
116
|
-
puts "## removing #{step_dir}"
|
117
|
-
FileUtils.rm_rf step_dir
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def work_in_sub_dir(dir_name, existing_message = nil)
|
125
|
+
def work_in_sub_dir(dir_name)
|
122
126
|
if $redo_mode == :checking && Dir.exist?(dir_name)
|
123
|
-
return
|
127
|
+
return
|
124
128
|
end
|
125
129
|
|
126
|
-
|
130
|
+
$redo_mode = :replacing
|
127
131
|
|
128
132
|
tmp_dir_name = "tmp_#{dir_name}"
|
129
133
|
FileUtils.rm_rf tmp_dir_name
|
@@ -134,26 +138,46 @@ module Advance
|
|
134
138
|
|
135
139
|
FileUtils.cd ".."
|
136
140
|
FileUtils.mv tmp_dir_name, dir_name
|
137
|
-
:replacing
|
138
141
|
end
|
139
142
|
|
140
|
-
def
|
141
|
-
"
|
143
|
+
def previous_file_path(previous_dir_path)
|
144
|
+
Find.find(previous_dir_path).reject { |p| FileTest.directory?(p) || File.basename(p) == "log" }.first
|
142
145
|
end
|
143
146
|
|
144
|
-
def
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
147
|
+
def file_path_template(dir_path, files)
|
148
|
+
file = files.first
|
149
|
+
file_path = File.join(dir_path, file)
|
150
|
+
if File.directory?(file_path)
|
151
|
+
File.join(dir_path, "{file}", "{file}")
|
152
|
+
else
|
153
|
+
File.join(dir_path, "{file}")
|
154
|
+
end
|
155
|
+
end
|
151
156
|
|
152
|
-
|
153
|
-
|
157
|
+
def do_command(command, feedback = true)
|
158
|
+
puts "#{YELLOW}#{command}#{RESET} " if feedback
|
159
|
+
start_time = Time.now
|
160
|
+
stdout, stderr, status = Open3.capture3(command)
|
161
|
+
elapsed_time = Time.now - start_time
|
162
|
+
File.open("log", "w") do |f|
|
163
|
+
f.puts "%%% command: >#{command}<"
|
164
|
+
f.puts "%%% returned status: >#{status}<"
|
165
|
+
f.puts "%%% elapsed time: #{elapsed_time} seconds"
|
166
|
+
f.puts "%%% stdout:"
|
167
|
+
f.puts stdout
|
168
|
+
f.puts "%%% stderr:"
|
169
|
+
f.puts stderr
|
170
|
+
end
|
171
|
+
if !status.success?
|
172
|
+
raise "step #{$step} failed with #{status}\n#{stderr}"
|
154
173
|
end
|
155
174
|
end
|
156
175
|
|
176
|
+
# def find_step_dir
|
177
|
+
# dirs = Dir.entries(".")
|
178
|
+
# dirs.find { |d| d =~ /^#{step_dir_prefix($step)}/ }
|
179
|
+
# end
|
180
|
+
#
|
157
181
|
def ensure_bin_on_path
|
158
182
|
advance_path = File.dirname(__FILE__)
|
159
183
|
add_dir_to_path(advance_path)
|
data/lib/advance/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: advance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- janemacfarlane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: team_effort
|