diff options
Diffstat (limited to 'lib/sisu/v6/src_shared.rb')
-rw-r--r-- | lib/sisu/v6/src_shared.rb | 114 |
1 files changed, 77 insertions, 37 deletions
diff --git a/lib/sisu/v6/src_shared.rb b/lib/sisu/v6/src_shared.rb index 4ce34473..cee7e1c5 100644 --- a/lib/sisu/v6/src_shared.rb +++ b/lib/sisu/v6/src_shared.rb @@ -80,12 +80,13 @@ module SiSU_Source processing_sisupod.make path_pod=processing_sisupod.paths[:sisupod] path_pod_fnb=processing_sisupod.paths[:fnb] + @doc_import_list=[] FileUtils::mkdir_p(path_pod) unless FileTest.directory?(path_pod) @path_pod={ fnb: path_pod_fnb, pod: path_pod, doc: path_pod + '/' + Gt[:doc] + '/' + opt.lng, - po: path_pod + '/' + Gt[:po] + '/' + opt.lng, + po: path_pod + '/' + Gt[:po] + '/' + opt.lng, pot: path_pod + '/' + Gt[:pot], conf: path_pod + '/' + Gt[:conf], image: path_pod + '/' + Gt[:image], @@ -98,17 +99,22 @@ module SiSU_Source (@opt.act[:verbose][:set]==:on \ || @opt.act[:verbose_plus][:set]==:on \ || @opt.act[:maintenance][:set]==:on) \ - ? SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'Assemble SiSU source',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_hi_blue + ? SiSU_Screen::Ansi.new( + @opt.act[:color_state][:set], + 'Assemble SiSU source', + "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"). + green_hi_blue : '' end unless @opt.fns.empty? directories - pod_source_build #this needs to be built in case of multi-lingual for all of them, before single pass tar + file_array=IO.readlines(@opt.fno,'') + doc_import_list=pod_source_build(file_array) #this needs to be built in case of multi-lingual for all of them, before single pass tar + doc_import_list=[@opt.fno, doc_import_list].flatten + image_extraction(doc_import_list) + language_versions end end - def directories - SiSU_Env::InfoEnv.new.sisupod_v4(@opt) - end def images_extract(f,images) # consider using param info rgx_image=/(?:^|[^_\\])\{(?:\s*|\~\^\s+)(\S+?\.(?:png|jpg|gif)\b)/m if f !~/^%+\s/ \ @@ -117,31 +123,17 @@ module SiSU_Source end images.flatten end - def pod_source_build - @pwd=Dir.pwd + def image_extraction(doc_import_list) @rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/ @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ - @rgx_doc_import=/^<<\s*(\S+?\.ss[ti])/ - file_array=IO.readlines(@opt.fno,'') - images,doc_import=[],[] doc_import_dir=@opt.sub_location - file_array.each do |f| #% work area - if f !~/^%+\s/ - f=f.gsub(/<:=(\S+?)>/,'{ c_\1.png 14x14 }image') # embedded symbol (image) - if f !~/^%+\s/ \ - and f =~@rgx_image - images=images_extract(f,images) - end - if @opt.fno =~/\.ssm$/ - doc_import << f.scan(@rgx_doc_import) if f =~@rgx_doc_import - end - end - end - if doc_import.length > 0 - doc_import=doc_import.uniq.flatten - doc_import.each do |fn| + images=[] + if doc_import_list.length > 0 + doc_import_list=doc_import_list.uniq.flatten + doc_import_list.each do |fn| file_array=IO.readlines(fn,'') - file_array.each do |f| #% work area + file_array.each do |f| #% work area + f=f.gsub(/<:=(\S+?)>/,'{ c_\1.png 14x14 }image') # embedded symbol (image) if f !~/^%+\s/ \ and f =~@rgx_image images=images_extract(f,images) @@ -153,7 +145,8 @@ module SiSU_Source unless FileTest.file?("#{@path_pod[:conf]}/#{gi.makefile_name}") if gi.makefile \ && FileTest.file?(gi.makefile) - FileUtils::mkdir_p(@path_pod[:conf]) unless FileTest.directory?(@path_pod[:conf]) + FileUtils::mkdir_p(@path_pod[:conf]) \ + unless FileTest.directory?(@path_pod[:conf]) FileUtils::cp(gi.makefile,"#{@path_pod[:conf]}/#{gi.makefile_name}") end #get images from makefile, consider placing in param @@ -181,22 +174,31 @@ module SiSU_Source images.each do |i| if FileTest.file?("#{images_pwd}/#{i}") FileUtils::cp("#{images_pwd}/#{i}","#{@path_pod[:image]}/#{i}") - else STDERR.puts %{\t*WARN* did not find image - "#{images_pwd}/#{i}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find image - "#{images_pwd}/#{i}" [#{__FILE__}:#{__LINE__}]} end end - else STDERR.puts %{\t*WARN* did not find - #{images_pwd} #{@path_pod[:image]} [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find - #{images_pwd} #{@path_pod[:image]} [#{__FILE__}:#{__LINE__}]} end end - if doc_import.length > 0 \ + if doc_import_list.length > 0 \ and @opt.fno =~/\.ssm$/ - doc_import.each do |f| + doc_import_list.each do |f| if FileTest.file?("#{@opt.base_path}#{doc_import_dir}/#{f}") FileUtils::cp("#{@opt.base_path}#{doc_import_dir}/#{f}","#{@path_pod[:doc]}/#{f}") - else STDERR.puts %{\t*WARN* did not find image - "#{@opt.base_path}#{doc_import_dir}/#{f}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find image - "#{@opt.base_path}#{doc_import_dir}/#{f}" [#{__FILE__}:#{__LINE__}]} end end end + end + def language_versions x=@env.document_language_versions_found #check multiple document language versions (param not used) + doc_import_dir=@opt.sub_location if x[:f] \ and x[:f].length > 0 #store multiple document language versions, sisupod x[:f].each do |f| @@ -208,7 +210,9 @@ module SiSU_Source if FileTest.file?("#{@opt.base_path}#{doc_import_dir}/#{f[:f]}") FileUtils::cp("#{@opt.base_path}#{doc_import_dir}/#{f[:f]}", "#{@path_pod[:doc]}/#{f[:n]}") - else STDERR.puts %{\t*WARN* did not find - "#{@opt.base_path}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find - "#{@opt.base_path}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} end else if FileTest.file?("#{@opt.base_path}/#{f[:f]}") @@ -225,7 +229,9 @@ module SiSU_Source FileUtils::cp("#{@opt.base_path}/#{f[:f]}", "#{@path_pod[:doc]}/#{f[:n]}") end - else STDERR.puts %{\t*WARN* did not find - "#{@opt.base_path}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find - "#{@opt.base_path}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} end end end @@ -234,7 +240,9 @@ module SiSU_Source if FileTest.file?("#{@opt.base_path}#{doc_import_dir}/#{f[:f]}") FileUtils::cp_r("#{@opt.base_path}#{doc_import_dir}/#{f[:f]}", "#{@path_pod[:doc]}/#{f[:n]}") - else STDERR.puts %{\t*WARN* did not find - "#{@opt.base_path}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find - "#{@opt.base_path}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} end else if FileTest.file?("#{@opt.base_path}/#{f[:f]}") @@ -251,13 +259,45 @@ module SiSU_Source FileUtils::cp("#{@opt.base_path}/#{f[:f]}", "#{@path_pod[:doc]}/#{f[:n]}") end - else STDERR.puts %{\t*WARN* did not find - "#{@opt.base_path}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + else + STDERR.puts \ + %{\t*WARN* did not find - "#{@opt.base_path}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} end end end end end #NB not all possibilies met, revisit, also in case of composite file may wish to add README end + def directories + SiSU_Env::InfoEnv.new.sisupod_v4(@opt) + end + def ssm_doc_import_list(f) + if @opt.fno =~/\.ssm$/ + doc_import_list=[] + doc_import_list << f.scan(@rgx_doc_import) if f =~@rgx_doc_import + doc_import_list.flatten.each do |i| + if i =~/.ssi/ + file_array=IO.readlines(i,'') + pod_source_build(file_array) + end + end + end + doc_import_list.uniq.flatten + end + def pod_source_build(file_array) + @pwd=Dir.pwd + @rgx_doc_import_list=/^<<\s*(\S+?\.ss[ti])/ + doc_import_list=[] + file_array.each do |f| #% work area + if f !~/^%+\s/ + if @opt.fno =~/\.ssm$/ + @doc_import_list << ssm_doc_import_list(f) + doc_import_list=@doc_import_list.flatten.uniq + end + end + end + doc_import_list + end end end __END__ |