diff options
Diffstat (limited to 'lib/sisu/v3/sisupod_make.rb')
| -rw-r--r-- | lib/sisu/v3/sisupod_make.rb | 79 | 
1 files changed, 52 insertions, 27 deletions
| diff --git a/lib/sisu/v3/sisupod_make.rb b/lib/sisu/v3/sisupod_make.rb index 33ae8db2..984d807d 100644 --- a/lib/sisu/v3/sisupod_make.rb +++ b/lib/sisu/v3/sisupod_make.rb @@ -143,14 +143,14 @@ module SiSU_Doc        sk_doc,sk_dir="doc/#{skin}.rb","dir/skin_#{@env.stub_pwd}.rb"        skin_path.each do |v|                                                    #document skin priority 1          if FileTest.file?("#{v}/#{sk_doc}") -          @skin[:name],@skin[:type]="#{v}/#{sk_doc}",'doc' +          @skin={ name_path: "#{v}/#{sk_doc}", type: :doc }            break          end        end        unless @skin.length > 0          skin_path.each do |v|                                                  #directory skin priority 2            if FileTest.file?("#{v}/#{sk_dir}") -            @skin[:name],@skin[:type]="#{v}/#{sk_dir}",'dir' +            @skin={ name_path: "#{v}/#{sk_dir}", type: :dir }              break            end          end @@ -167,7 +167,7 @@ module SiSU_Doc      end      def sisupod_build                                                          #see also sisupod in sysenv        @pwd=Dir.pwd -      @rgx_rb_image=/["'](\S+?\.(?:png|jpg|gif))["']/ +      @rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/        @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/        @rgx_skin=/^\s+:skin:\s+(\S+)/        @rgx_doc_import=/^<<\s*(\S+?\.ss[ti])/ @@ -207,25 +207,28 @@ module SiSU_Doc        else          skin_source=select_skin        end -      docskin_place="#{@env.processing_path.processing_sisupod(@opt)}/doc/_sisu/skin/#{skin_source[:type]}" +      docskin_place="#{@env.processing_path.processing_sisupod(@opt)}/doc/_sisu/skin/#{skin_source[:type].to_s}"        FileUtils::mkdir_p(docskin_place) -      if skin_source[:type] =~/dir/ +      if skin_source[:type] == :dir          docskin_with_path="#{docskin_place}/skin_#{@env.stub_pwd}.rb"          docskin=[docskin_with_path.gsub(/.+?\/(skin_\S+?)\.rb/,'\1')]          docskin='skin_sisupod'        end        if skin_source \ -      and docskin #imperfect, revisit -        unless skin_source[:name].nil? \ -        or skin_source[:name].empty? -          FileUtils::cp_r(skin_source[:name],"#{docskin_place}/#{docskin}.rb") -          skinfile_array=IO.readlines(skin_source[:name],'') -          para_images=[] -          skinfile_array.each do |f|                                           #% work area -            unless f =~/^%+ / #hmmm -              images << f.scan(@rgx_rb_image).uniq if f =~@rgx_rb_image -              #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool +      and skin_source[:name_path] +        unless skin_source[:name_path].nil? \ +        or skin_source[:name_path].empty? +          if FileTest.file?(skin_source[:name_path]) +            FileUtils::cp(skin_source[:name_path],"#{docskin_place}/#{docskin}.rb") +            skinfile_array=IO.readlines(skin_source[:name_path],'') +            para_images=[] +            skinfile_array.each do |f|                                           #% work area +              unless f =~/^%+ / #hmmm +                images << f.scan(@rgx_rb_image).uniq if f =~@rgx_rb_image +                #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool +              end              end +          else STDERR.puts %{\t*WARN* did not find - "#{skin_source[:name_path]}" [#{__FILE__}:#{__LINE__}]}            end          end        end @@ -255,15 +258,21 @@ module SiSU_Doc          if FileTest.directory?(images_pwd)            images=images.uniq            images.each do |i| -            FileUtils::cp_r("#{images_pwd}/#{i}","#{images_path_pod}/#{i}") if FileTest.file?("#{images_pwd}/#{i}") +            if FileTest.file?("#{images_pwd}/#{i}") +              FileUtils::cp("#{images_pwd}/#{i}","#{images_path_pod}/#{i}") if FileTest.file?("#{images_pwd}/#{i}") +            else STDERR.puts %{\t*WARN* did not find image - "#{images_pwd}/#{i}" [#{__FILE__}:#{__LINE__}]} +            end            end -        else puts "\tWARN, did not find - #{images_pwd} #{images_path_pod}" +        else STDERR.puts %{\t*WARN* did not find - #{images_pwd} #{images_path_pod} [#{__FILE__}:#{__LINE__}]}          end        end        if doc_import.length > 0 \        and @opt.fno =~/\.ssm$/          doc_import.each do |f| -          FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f}","#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f}") +          if FileTest.file?("#{@env.path.pwd}#{doc_import_dir}/#{f}") +            FileUtils::cp("#{@env.path.pwd}#{doc_import_dir}/#{f}","#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f}") +          else STDERR.puts %{\t*WARN* did not find image - "#{@env.path.pwd}#{doc_import_dir}/#{f}" [#{__FILE__}:#{__LINE__}]} +          end          end        end        x=@env.document_language_versions_found                                  #check multiple document language versions (param not used) @@ -275,18 +284,34 @@ module SiSU_Doc            if f[:f] =~/\~(\S{2,3})\.ss[tm]$/              lng_f=$1              if @opt.lng == lng_f -              (@opt.fno =~/\.ssm$/) \ -              ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", +              if @opt.fno =~/\.ssm$/ +                if FileTest.file?("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}") +                  FileUtils::cp("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", +                    "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") +                else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} +                end +              else +                if FileTest.file?("#{@env.path.pwd}/#{f[:f]}") +                  FileUtils::cp("#{@env.path.pwd}/#{f[:f]}", +                    "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") +                else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} +                end +              end +            end +          else +            if @opt.fno =~/\.ssm$/ +              if FileTest.file?("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}") +                FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}",                    "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") -              : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}", +              else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} +              end +            else +              if FileTest.file?("#{@env.path.pwd}/#{f[:f]}") +                FileUtils::cp("#{@env.path.pwd}/#{f[:f]}",                    "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") +              else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} +              end              end -          else -            (@opt.fno =~/\.ssm$/) \ -            ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", -                "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") -            : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}", -                "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")            end          end        end #NB not all possibilies met, revisit, also in case of composite file may wish to add README | 
