aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3/hub.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v3/hub.rb')
-rw-r--r--lib/sisu/v3/hub.rb50
1 files changed, 40 insertions, 10 deletions
diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb
index a2902075..d5ab7bdd 100644
--- a/lib/sisu/v3/hub.rb
+++ b/lib/sisu/v3/hub.rb
@@ -64,31 +64,59 @@ module SiSU
class OptionLoopFiles
def initialize(opt)
@opt=opt
+ @r=Px[:lng_lst].join('|')
end
def loop_files_on_given_option
- @opt.files.each_with_index do |fns,i|
- @opt.fns=fns
+ @opt.files.each_with_index do |fno,i|
+ @opt.fns=fno
+ @opt.fno=fno
@opt.f_pth=@opt.f_pths[i]
- if fns !~/\.-sst$/
+ if fno !~/\.-sst$/
@opt.pth=@opt.paths[i]
@opt.lng=@opt.lngs[i]
- else
- @opt.pth=Dir.pwd
- @opt.lng='en'
end
@@pwd=@opt.pth
@opt.pth=@opt.f_pths[i][:pth]
@opt.lng=@opt.f_pths[i][:lng]
Dir.chdir(@opt.f_pth[:pth]) #watch
- @env=SiSU_Env::InfoEnv.new(fns)
+ @env=SiSU_Env::InfoEnv.new(fno)
yield
end
end
+ def loop_files_on_given_option_bundle
+ @files_bundle={}
+ @opt.files.each_with_index do |fno,i|
+ fn_base_bundle=fno.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'')
+ unless @files_bundle[fn_base_bundle]
+ @files_bundle[fn_base_bundle]={ status: :todo }
+ end
+ end
+ @opt.files.each_with_index do |fno,i|
+ fn_base_bundle=fno.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'')
+ unless @files_bundle[fn_base_bundle][:status] == :done
+ @files_bundle[fn_base_bundle][:status] = :done
+ @opt.fns=fno
+ @opt.fno=fno
+ @opt.f_pth=@opt.f_pths[i]
+ if fno !~/\.-sst$/
+ @opt.pth=@opt.paths[i]
+ @opt.lng=@opt.lngs[i]
+ end
+ @@pwd=@opt.pth
+ @opt.pth=@opt.f_pths[i][:pth]
+ @opt.lng=@opt.f_pths[i][:lng]
+ Dir.chdir(@opt.f_pth[:pth]) #watch
+ @env=SiSU_Env::InfoEnv.new(fno)
+ yield
+ else next
+ end
+ end
+ end
def manifest_on_files_translated
r=Px[:lng_lst].join('|')
number_of_files={}
@opt.files.each_with_index do |fns,i|
- fn=fns.gsub(/(?:\.#{r})?\.ss[tm]$/,'')
+ fn=fns.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'')
if number_of_files[fn].class == Array
number_of_files[fn] << i
else
@@ -102,7 +130,7 @@ module SiSU
end
end
if files_translated_idx.flatten.length > 1
- SiSU_Screen::Ansi.new(@opt.cmd,'Manifest re-run on (currently generated) tranlated files',"").grey_title_hi unless @opt.act[:quiet][:set] ==:on
+ SiSU_Screen::Ansi.new(@opt.cmd,'Manifest re-run on (currently generated) translated files',"").grey_title_hi unless @opt.act[:quiet][:set] ==:on
files_translated_idx.flatten.each do |i|
@opt.fns=@opt.files[i]
@opt.f_pth=@opt.f_pths[i]
@@ -447,7 +475,9 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on
SiSU_Doc::Source.new(@opt).read
end
ensure
- SiSU_Doc::Source.new(@opt).sisupod_tar_xz
+ OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do
+ SiSU_Doc::Source.new(@opt).sisupod_tar_xz
+ end
end
end
if @opt.act[:images][:set]==:on #% --images, -j