aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v6/src_shared.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v6/src_shared.rb')
-rw-r--r--lib/sisu/v6/src_shared.rb114
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__