diff options
35 files changed, 421 insertions, 272 deletions
| diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3 index 0dce0ec0..8ad2d4c3 100644 --- a/data/doc/sisu/CHANGELOG_v3 +++ b/data/doc/sisu/CHANGELOG_v3 @@ -13,13 +13,34 @@ Reverse Chronological:  %% Development branch UNSTABLE  v3 branch once stable will supersede & replace current stable v2 branch +%% 3.2.11.orig.tar.xz (2012-06-03:22/7) +http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/sisu_3.2.11 +http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_3.2.11-1 +http://www.jus.uio.no/sisu/pkg/src/sisu_3.2.11.orig.tar.xz +  sisu_3.2.11.orig.tar.xz +  sisu_3.2.11-1.dsc +  sisu_3.2.11-1.debian.tar.gz + +* v3: images, regular & sisupod +  * shared_images, --html, --xhtml, --xml* +  * sisupod images done: --html including skin images; --epub; --odf; --pdf +  * copy (system link removed) + +* v3: manifest, paths, (for command line selection of output type) fix + +* v3: urls, sisupod, fix + +* v3: warn when files to be copied not found, add + +* v3: error & warning messages touched, revisit +  %% 3.2.10.orig.tar.xz (2012-05-28:22/1)  http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/sisu_3.2.10  http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_3.2.10-1  http://www.jus.uio.no/sisu/pkg/src/sisu_3.2.10.orig.tar.xz -  sisu_3.2.10.orig.tar.xz -  sisu_3.2.10-1.dsc -  sisu_3.2.10-1.debian.tar.gz +  d09ce78ca03342efd66b19623ed5275ef6e59caa47027540a7b9da1cf7eda834 1687428 sisu_3.2.10.orig.tar.xz +  1d17dea47e3be8b82edd4f1d92c7c0de51d115c784005fcf3ddc8df7cea047fc 1389 sisu_3.2.10-1.dsc +  696bba112c638be0af185f1b185709c7a57822d75e31b7aa4cd22321bf786be3 296725 sisu_3.2.10-1.debian.tar.gz  * v3: hub    * "requires", fix diff --git a/data/sisu/v3/v/version.yml b/data/sisu/v3/v/version.yml index bfbcd100..e6a783cd 100644 --- a/data/sisu/v3/v/version.yml +++ b/data/sisu/v3/v/version.yml @@ -1,5 +1,5 @@  --- -:version: 3.2.10 -:date_stamp: 2012w22/1 -:date: "2012-05-28" +:version: 3.2.11 +:date_stamp: 2012w22/7 +:date: "2012-06-03"  :project: SiSU diff --git a/lib/sisu/v3/cgi_pgsql.rb b/lib/sisu/v3/cgi_pgsql.rb index bcc854aa..f78f65f5 100644 --- a/lib/sisu/v3/cgi_pgsql.rb +++ b/lib/sisu/v3/cgi_pgsql.rb @@ -79,7 +79,7 @@ module  SiSU_CGI_PgSQL            available_db.flatten.each do |x|              serve << x.gsub(/#{Db[:name_prefix]}(\S+)/,'\1')            end -        else put "WARNING: no postgresql database available, (have you created one?)" +        else STDERR.puts "WARNING: no postgresql database available, (have you created one?)"          end          serve=serve.sort          f1,f2,f3='','','' diff --git a/lib/sisu/v3/composite.rb b/lib/sisu/v3/composite.rb index a104d281..90ec28dc 100644 --- a/lib/sisu/v3/composite.rb +++ b/lib/sisu/v3/composite.rb @@ -217,7 +217,7 @@ module SiSU_Assemble              file[:prepared]            else              cX=SiSU_Screen::Ansi.new(@opt.cmd).cX -            puts "\t  #{cX.fuschia}ERROR#{cX.off} #{cX.brown}#{@opt.fns}#{cX.off} #{cX.fuschia}requires invalid or non-existent file:#{cX.off} #{cX.brown}#{loadfile}#{cX.off}" +            STDERR.puts "\t  #{cX.fuschia}ERROR#{cX.off} #{cX.brown}#{@opt.fns}#{cX.off} #{cX.fuschia}requires invalid or non-existent file:#{cX.off} #{cX.brown}#{loadfile}#{cX.off}"              para            end          else tuned_file << para @@ -268,7 +268,7 @@ module SiSU_Assemble              @ssm << loadfile            else              cX=SiSU_Screen::Ansi.new(@opt.cmd).cX -            puts "\t  #{cX.fuschia}ERROR#{cX.off} #{cX.brown}#{@opt.fns}#{cX.off} #{cX.fuschia}requires invalid or non-existent file:#{cX.off} #{cX.brown}#{loadfile}#{cX.off}" +            STDERR.puts "\t  #{cX.fuschia}ERROR#{cX.off} #{cX.brown}#{@opt.fns}#{cX.off} #{cX.fuschia}requires invalid or non-existent file:#{cX.off} #{cX.brown}#{loadfile}#{cX.off}"              para            end          end diff --git a/lib/sisu/v3/conf.rb b/lib/sisu/v3/conf.rb index 51aeb005..8cd3e2ef 100644 --- a/lib/sisu/v3/conf.rb +++ b/lib/sisu/v3/conf.rb @@ -108,7 +108,6 @@ module SiSU_Initialize      def cp_webserver_images        SiSU_Screen::Ansi.new(@opt.cmd,'invert','Copy webserver/output file images','').colorize unless @opt.cmd =~/q/        SiSU_Env::CreateSite.new(@opt.cmd).cp_webserver_images -      SiSU_Env::CreateSystemLink.new.images      end      def css        SiSU_Screen::Ansi.new(@opt.cmd,'invert','Configuring CSSs','').colorize unless @opt.cmd =~/q/ @@ -172,8 +171,11 @@ module SiSU_Initialize        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file)        schema.relaxng(@opt.cmd)        #rnc -      FileUtils::cp(rnc_src,rnc_file) -      FileUtils::chmod(0644,rnc_file) +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end      end      def trang_rnc_model_output_dom        s=@suffix @@ -191,8 +193,11 @@ module SiSU_Initialize        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file)        schema.relaxng(@opt.cmd)        #rnc -      FileUtils::cp(rnc_src,rnc_file) -      FileUtils::chmod(0644,rnc_file) +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end      end      def trang_rnc_model_output_xhtml        s=@suffix @@ -210,8 +215,11 @@ module SiSU_Initialize        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file)        schema.relaxng(@opt.cmd)        #rnc -      FileUtils::cp(rnc_src,rnc_file) -      FileUtils::chmod(0644,rnc_file) +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end      end      def trang_rnc_model_input_sax        rnc_file=@env.processing_path.dal + '/sax.rnc' diff --git a/lib/sisu/v3/dal.rb b/lib/sisu/v3/dal.rb index dd1ec494..24f29bd3 100644 --- a/lib/sisu/v3/dal.rb +++ b/lib/sisu/v3/dal.rb @@ -105,7 +105,6 @@ module SiSU_DAL        @idx_xhtml=@make_fns.marshal.dal_idx_xhtml        @map_nametags=@make_fns.marshal.dal_map_nametags        @map_ocn_htmlseg=@make_fns.marshal.dal_map_ocn_htmlseg -      SiSU_Env::CreateSystemLink.new.images        @env=SiSU_Env::InfoEnv.new      end      def read                                                                   #creates dal diff --git a/lib/sisu/v3/dal_hash_digest.rb b/lib/sisu/v3/dal_hash_digest.rb index 039dc537..c30048db 100644 --- a/lib/sisu/v3/dal_hash_digest.rb +++ b/lib/sisu/v3/dal_hash_digest.rb @@ -108,7 +108,7 @@ module SiSU_DAL_Hash                Digest::MD5.hexdigest(stripped_en)              end              t_o_txt + en_open + en_txt + Mx[:id_o] + digest_en_strip + Mx[:id_c] + en_close -          else puts "Error Exception - problem encountered with:\n#{en_plus}" #arbitrary exception, tidy up +          else STDERR.puts "Error Exception - problem encountered with:\n#{en_plus}" #arbitrary exception, tidy up            end          else en_plus          end diff --git a/lib/sisu/v3/dal_images.rb b/lib/sisu/v3/dal_images.rb index e112636f..9c6dd872 100644 --- a/lib/sisu/v3/dal_images.rb +++ b/lib/sisu/v3/dal_images.rb @@ -75,7 +75,7 @@ module SiSU_DAL_Images          end        else          if @md.opt.cmd =~/[vVM]/ -          SiSU_Screen::Ansi.new(@md.opt.cmd,'use of RMagick is not enabled in sisurc.yml').warn +          SiSU_Screen::Ansi.new(@md.opt.cmd,'*WARN* use of RMagick is not enabled in sisurc.yml').warn          end        end        data.each do |dob| @@ -101,7 +101,7 @@ module SiSU_DAL_Images                        img_col,img_row=img.columns,img.rows                      else                        if @md.opt.cmd =~/[vVM]/ -                        SiSU_Screen::Ansi.new(@md.opt.cmd,'RMagick not present, will attempt to use imagemagick (identify) directly').warn +                        SiSU_Screen::Ansi.new(@md.opt.cmd,'*WARN* RMagick not present, will attempt to use imagemagick (identify) directly').warn                        end                        imgk=SiSU_Env::SystemCall.new.imagemagick                        gmgk=SiSU_Env::SystemCall.new.graphicksmagick @@ -138,7 +138,7 @@ module SiSU_DAL_Images                  end                else                  images=dob.obj.scan(m) do |image| -                  SiSU_Screen::Ansi.new(@md.opt.cmd,'where image dimensions have not been provided RMagick or imagemagick is required',image).warn #unless @opt.cmd =~/q/ +                  SiSU_Screen::Ansi.new(@md.opt.cmd,'*WARN* where image dimensions have not been provided RMagick or imagemagick is required',image).warn #unless @opt.cmd =~/q/                  end                end              end diff --git a/lib/sisu/v3/db_import.rb b/lib/sisu/v3/db_import.rb index 5cb12cde..03f5d221 100644 --- a/lib/sisu/v3/db_import.rb +++ b/lib/sisu/v3/db_import.rb @@ -164,9 +164,9 @@ module SiSU_DbImport              @conn.do("COMMIT")            end          rescue DBI::DatabaseError => e -          puts "Error code: #{e.err}" -          puts "Error message: #{e.errstr}" -          puts "Error SQLSTATE: #{e.state}" +          STDERR.puts "Error code: #{e.err}" +          STDERR.puts "Error message: #{e.errstr}" +          STDERR.puts "Error SQLSTATE: #{e.state}"            SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do              __LINE__.to_s + ':' + __FILE__            end @@ -554,7 +554,10 @@ module SiSU_DbImport              end            end          end -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end        @tuple_array @@ -686,7 +689,10 @@ module SiSU_DbImport          end          t=SiSU_DbTuple::LoadUrls.new(@conn,f,u,@@id_t,@opt,@file_maint)          tuple=t.tuple -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end        tuple diff --git a/lib/sisu/v3/digests.rb b/lib/sisu/v3/digests.rb index 169f9d2b..5ffabb58 100644 --- a/lib/sisu/v3/digests.rb +++ b/lib/sisu/v3/digests.rb @@ -84,7 +84,10 @@ module SiSU_DigestView          end          SiSU_DigestView::Source::Scroll.new(@particulars).songsheet          SiSU_Env::InfoSkin.new(@md).select -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/embedded.rb b/lib/sisu/v3/embedded.rb index 861bdd08..87b37fc0 100644 --- a/lib/sisu/v3/embedded.rb +++ b/lib/sisu/v3/embedded.rb @@ -77,7 +77,10 @@ module SiSU_Embedded        audio        multimedia        begin -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/epub.rb b/lib/sisu/v3/epub.rb index 70b86f25..06021574 100644 --- a/lib/sisu/v3/epub.rb +++ b/lib/sisu/v3/epub.rb @@ -133,10 +133,7 @@ module SiSU_EPUB          @particulars=particulars          @md,@env=particulars.md,particulars.env          @vz=SiSU_Env::GetInit.instance.skin -        @env,@css,@symlnk=particulars.env,SiSU_Style::CSS.new,SiSU_Env::CreateSystemLink.new #home -      end -      def link_images -        @symlnk.images +        @env,@css=particulars.env,SiSU_Style::CSS.new        end        def directories          title=File.basename(@md.fns,'.rb') @@ -631,13 +628,20 @@ module SiSU_EPUB        end        def images          img_pth=@md.env.path.image_source_include +        img_src_pth=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +          @md.file.output_path.epub.rel_image +        else +          pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] +          pt + '/image' +        end          @md.ec[:image].each do |x|            if FileTest.directory?("#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") \ -          && FileTest.file?("#{@md.file.output_path.epub.rel_image}/#{x}") -            FileUtils::cp("#{@md.file.output_path.epub.rel_image}/#{x}","#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") +          && FileTest.file?("#{img_src_pth}/#{x}") +            FileUtils::cp("#{img_src_pth}/#{x}","#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image")            elsif FileTest.directory?("#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") \            && FileTest.file?("#{img_pth}/#{x}")              FileUtils::cp("#{img_pth}/#{x}","#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") +          else STDERR.puts %{\t*WARN* did not find image - "#{x}" in #{img_src_pth} or #{img_pth} [#{__FILE__}:#{__LINE__}]}            end          end        end diff --git a/lib/sisu/v3/epub_concordance.rb b/lib/sisu/v3/epub_concordance.rb index 8a4d4136..df975a48 100644 --- a/lib/sisu/v3/epub_concordance.rb +++ b/lib/sisu/v3/epub_concordance.rb @@ -78,10 +78,10 @@ module SiSU_EPUB_Concordance            if @md.wc_words < wordmax              SiSU_EPUB_Concordance::Source::Words.new(@particulars).songsheet            else -            SiSU_Screen::Ansi.new(@md.opt.cmd,"concordance skipped, large document has over #{wordmax} words (#{@md.wc_words})").warn unless @md.opt.cmd =~/q/ +            SiSU_Screen::Ansi.new(@md.opt.cmd,"*WARN* concordance skipped, large document has over #{wordmax} words (#{@md.wc_words})").warn unless @md.opt.cmd =~/q/            end          else -          SiSU_Screen::Ansi.new(@md.opt.cmd,"wc (word count) is off, concordance will be processed for all files including those over the max set size of: #{wordmax} words").warn unless @md.opt.cmd =~/q/ +          SiSU_Screen::Ansi.new(@md.opt.cmd,"*WARN* wc (word count) is off, concordance will be processed for all files including those over the max set size of: #{wordmax} words").warn unless @md.opt.cmd =~/q/            SiSU_EPUB_Concordance::Source::Words.new(@particulars).songsheet          end        rescue diff --git a/lib/sisu/v3/html.rb b/lib/sisu/v3/html.rb index 46f051c6..a5c1edb1 100644 --- a/lib/sisu/v3/html.rb +++ b/lib/sisu/v3/html.rb @@ -139,10 +139,7 @@ module SiSU_HTML          @particulars=particulars          @md,@env=particulars.md,particulars.env          @vz=SiSU_Env::GetInit.instance.skin -        @env,@css,@symlnk=particulars.env,SiSU_Style::CSS.new,SiSU_Env::CreateSystemLink.new #home -      end -      def link_images -        @symlnk.images +        @env,@css=particulars.env,SiSU_Style::CSS.new        end        def tuned_file_instructions          @tell=SiSU_Screen::Ansi.new(@md.opt.cmd) diff --git a/lib/sisu/v3/html_promo.rb b/lib/sisu/v3/html_promo.rb index 9e5040c4..a2edea47 100644 --- a/lib/sisu/v3/html_promo.rb +++ b/lib/sisu/v3/html_promo.rb @@ -415,7 +415,7 @@ WOK            end          end        else -        SiSU_Screen::Ansi.new(@md.opt.cmd,"category not found: #{category}").warn unless @md.opt.cmd =~/q/ +        SiSU_Screen::Ansi.new(@md.opt.cmd,"*WARN* category not found: #{category}").warn unless @md.opt.cmd =~/q/        end        adverts.join      end diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index 4d51d76c..b2982aae 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -72,7 +72,7 @@ module SiSU_Manifest      def initialize(opt)        @opt=opt        @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) -      l=SiSU_Env::StandardiseLanguage.new(@opt.lng).language +      l=SiSU_Env::StandardiseLanguage.new(opt.lng).language        @doc_language=l[:n]      end      def read @@ -105,12 +105,11 @@ module SiSU_Manifest        def initialize(md)          @manifest={ txt: [], html: [] }          @md,@fns=md,md.fns -        @env=SiSU_Env::InfoEnv.new(@md.fns) -        @make=SiSU_Env::ProcessingSettings.new(@md) -        @fnb=@md.fnb +        @env=SiSU_Env::InfoEnv.new(md.fns) +        @f=SiSU_Env::FileOp.new(md) +        @fnb=md.fnb          @base_url="#{@env.url.root}/#{@fnb}" -        @f=SiSU_Env::FileOp.new(@md) -        @o_str=SiSU_Env::ProcessingSettings.new(md).output_dir_structure +        @o_str=SiSU_Env::FileOp.new(md).output_dir_structure          @image_path=if @o_str.dump_or_redirect?            %{./image}          else @@ -119,9 +118,9 @@ module SiSU_Manifest          @base_path=@f.output_path.manifest.dir          @@dg ||=SiSU_Env::InfoEnv.new.digest.type          @dg=@@dg -        l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language +        l=SiSU_Env::StandardiseLanguage.new(md.opt.lng).language          @language=l[:n] -        @translate=SiSU_Translate::Source.new(@md,@language) +        @translate=SiSU_Translate::Source.new(md,@language)          @brace_url=SiSU_Viz::Skin.new.url_decoration          @stylesheet=SiSU_Style::CSS_HeadInfo.new(md).stylesheet        end @@ -179,13 +178,13 @@ module SiSU_Manifest              mt="#{mp}/#{mn}"              mr="../../#{lc}/manifest/#{mn}"              mu="#{url}/#{mn}" -          elsif @env.output_dir_structure.by_language_code? +          elsif @f.output_dir_structure.by_language_code?              mp="#{@f.output_path.base.dir}/#{lc}/manifest"              mn="#{@md.fnb}.html"              mt="#{mp}/#{mn}"              mr="../../#{lc}/manifest/#{mn}"              mu="#{url}/#{lc}/manifest/#{mn}" -          elsif @env.output_dir_structure.by_filetype? +          elsif @f.output_dir_structure.by_filetype?              mp="#{@f.output_path.base.dir}/manifest"              mn="#{@md.fnb}.#{lc}.html"              mt="#{mp}/#{mn}" @@ -497,7 +496,7 @@ WOK          end          if FileTest.file?(@f.place_file.sisupod.dir)==true            pth=@f.output_path.sisupod.dir -          rel=@f.output_path.sisupod.rel_sm +          rel=@f.output_path.sisupod.ab_pod            url=@f.output_path.sisupod.url            id,file='SiSU doc (tar.xz)',@f.base_filename.sisupod            summarize_sources(id,file,pth,rel,url) @@ -769,7 +768,7 @@ WOK            minitoc=SiSU_HTML_MiniToc::TocMini.new(@md,data).songsheet.join("\n")            id,file='',''            vz=SiSU_Env::GetInit.instance.skin -          search_form=if @make.build.search_form? +          search_form=if @f.build.search_form?              "<td>#{@env.widget_static.search_form}</td>"            else ''            end @@ -808,10 +807,10 @@ SiSU manifest: #{@md.title.full}  <body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">  #{banner_table}  WOK -          if @make.build.manifest_minitoc? +          if @f.build.manifest_minitoc?              if @o_str.dump_or_redirect? -            elsif @env.output_dir_structure.by_language_code? \ -            or @env.output_dir_structure.by_filetype? +            elsif @f.output_dir_structure.by_language_code? \ +            or @f.output_dir_structure.by_filetype?                minitoc=minitoc.gsub(/<a href="(\S+?)"/m,%{<a href="../html/#{@md.fnb}/\\1"}).                  gsub(/<a href="\.\.\/html\/#{@md.fnb}\/(?:sisu_manifest\.html|#{@f.base_filename.manifest})"/m,                %{<a href="#{@f.base_filename.manifest}"}) diff --git a/lib/sisu/v3/odf.rb b/lib/sisu/v3/odf.rb index c7b60bb5..4985b3dd 100644 --- a/lib/sisu/v3/odf.rb +++ b/lib/sisu/v3/odf.rb @@ -187,6 +187,15 @@ module SiSU_ODF          image_source=if @md.fns =~/\.ss[tm]$/ \          and FileTest.file?("#{@env.path.image_source_include}/#{i}") #review            @env.path.image_source_include +        elsif @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +          pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] +          img_src=pt + '/image' +          if FileTest.file?("#{img_src}/#{i}") +            img_src +          else +            SiSU_Screen::Ansi.new(@md.opt.cmd,"ERROR - image:",%{"#{i}" missing},"search locations: #{@env.path.image_source_include_local},#{@env.path.image_source_include_remote} and #{@env.path.image_source_include}").error2 unless @md.opt.cmd =~/q/ +            nil +          end          elsif @md.fns =~/\.ss[tm]$/ \          and FileTest.file?("#{@env.path.image_source_include_local}/#{i}") #review            @env.path.image_source_include_local @@ -215,7 +224,10 @@ module SiSU_ODF          image_source=image_src(i)          pwd=Dir.pwd          if image_source -          FileUtils::cp("#{image_source}/#{i}","#{@env.processing_path.odt}/Pictures/#{i}") +          if FileTest.file?("#{image_source}/#{i}") +            FileUtils::cp("#{image_source}/#{i}","#{@env.processing_path.odt}/Pictures/#{i}") +          else STDERR.puts %{\t*WARN* did not find image - "#{image_source}/#{i}" [#{__FILE__}:#{__LINE__}]} +          end          end          img=if i.to_s =~/jpg|png|gif/ \          and h.to_s =~/\d/ \ @@ -522,7 +534,10 @@ module SiSU_ODF          fix=[]          bullet=image_src('bullet_09.png')          if bullet -          FileUtils::cp("#{bullet}/bullet_09.png","#{@env.processing_path.odt}/Pictures/.") +          if FileTest.file?("#{bullet}/bullet_09.png") +            FileUtils::cp("#{bullet}/bullet_09.png","#{@env.processing_path.odt}/Pictures/.") +          else STDERR.puts %{\t*WARN* did not find image - "#{bullet}/bullet_09.png" [#{__FILE__}:#{__LINE__}]} +          end          end          odf_metadata          data.each do |dob| diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb index f1c4aa3a..78e42bd4 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v3/param.rb @@ -170,10 +170,10 @@ module SiSU_Param            s          elsif s.class==NilClass; nil          elsif s.class !=String -          puts "#{n} is #{s.class}: programming error, String expected #{__FILE__}:#{__LINE__}" +          STDERR.puts "#{n} is #{s.class}: programming error, String expected #{__FILE__}:#{__LINE__}"            s          else -          SiSU_Screen::Ansi.new('v',"#{n} length #{s.length} exceeds set db field length #{l}, metadata dropped",@opt.fns).warn unless @opt.cmd =~/q/ +          SiSU_Screen::Ansi.new('v',"*WARN* #{n} length #{s.length} exceeds set db field length #{l}, metadata dropped",@opt.fns).warn unless @opt.cmd =~/q/            nil          end        end @@ -197,11 +197,11 @@ module SiSU_Param              end              b.delete_at(0)              b.each do |d| -             k,c=nil -             k,c=/^(\S+)\s+(.*)/.match(d)[1,2] if d -             @name_a_h[i][:hon]=c.strip if k=='hon' -             @name_a_h[i][:affiliation]=c.strip if k=='affiliation' -             @name_a_h[i][:nationality]=c.strip if k=='nationality' +              k,c=nil +              k,c=/^(\S+)\s+(.*)/.match(d)[1,2] if d +              @name_a_h[i][:hon]=c.strip if k=='hon' +              @name_a_h[i][:affiliation]=c.strip if k=='affiliation' +              @name_a_h[i][:nationality]=c.strip if k=='nationality'              end            end            l=@name_a_h.length @@ -1179,7 +1179,7 @@ module SiSU_Param              if ok                tell.txt_green if @opt.cmd =~/[vVM]/              else -              SiSU_Screen::Ansi.new(@opt.cmd,"Warning: markup version determined (#{@markup_version.determined}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})").warn unless @opt.cmd =~/q/ +              SiSU_Screen::Ansi.new(@opt.cmd,"WARNING: markup version determined (#{@markup_version.determined}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})").warn unless @opt.cmd =~/q/              end            else              SiSU_Screen::Ansi.new(@opt.cmd,'No SiSU markup version provided').warn if @opt.cmd =~/[VM]/ @@ -1518,13 +1518,13 @@ module SiSU_Param          if @en[:note] > 0 \          and @en[:sum] > 0            if @en[:sum] > 0 -          else SiSU_Screen::Ansi.new(@opt.cmd,'both endnote styles used',"~{ #{@en[:sum]} }~ and ^~ #{@en[:mark]}").warn if @opt.cmd !~/q/ +          else SiSU_Screen::Ansi.new(@opt.cmd,'*WARN* both endnote styles used',"~{ #{@en[:sum]} }~ and ^~ #{@en[:mark]}").warn if @opt.cmd !~/q/            end          end          if @en[:mark] != @en[:note] \          and @en[:note] > 0            @en[:mismatch]=@en[:note] - @en[:mark] -          SiSU_Screen::Ansi.new(@opt.cmd,'endnote number mismatch',"endnotes: #{@en[:note]} != endnote reference marks: #{@en[:mark]} (difference = #{@en[:mismatch]})").warn if @opt.cmd !~/q/ +          SiSU_Screen::Ansi.new(@opt.cmd,'*WARN* endnote number mismatch',"endnotes: #{@en[:note]} != endnote reference marks: #{@en[:mark]} (difference = #{@en[:mismatch]})").warn if @opt.cmd !~/q/            footnote_conversion_errors=File.new("#{Dir.pwd}/footnote_conversion_errors.txt",'a')            footnote_conversion_errors << "#{@fns}:\n\tendnotes: #{@en[:note]} != endnote reference marks: #{@en[:mark]} (difference = #{@en[:mismatch]})\n"          end @@ -1535,7 +1535,7 @@ module SiSU_Param            and  @opt.inspect =~/P/              #@title=Md.new('Text Insert',@opt,@env).title            else -            SiSU_Screen::Ansi.new(@opt.cmd,'WARNING Document Title missing','please provide @title:').warn unless @opt.cmd =~/q/ +            SiSU_Screen::Ansi.new(@opt.cmd,'WARNING: Document Title missing','please provide @title:').warn unless @opt.cmd =~/q/            end          end          if @author !~/[\S]/ @@ -1543,7 +1543,7 @@ module SiSU_Param            and  @opt.inspect =~/P/              #@creator=SiSU_Param::Md.new('Text Insert',@opt,@env).creator            else -            SiSU_Screen::Ansi.new(@opt.cmd,'Warning Document Author missing','please provide @creator: :author:').warn unless @opt.cmd =~/q/ +            SiSU_Screen::Ansi.new(@opt.cmd,'WARNING: Document Author missing','please provide @creator: :author:').warn unless @opt.cmd =~/q/            end          end          @struct={} diff --git a/lib/sisu/v3/plaintext.rb b/lib/sisu/v3/plaintext.rb index fa87da6d..2fa98883 100644 --- a/lib/sisu/v3/plaintext.rb +++ b/lib/sisu/v3/plaintext.rb @@ -102,7 +102,10 @@ module SiSU_Plaintext          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Plaintext::Source::Scroll.new(dal_array,md,wrap_width).songsheet          SiSU_Env::InfoSkin.new(md).select #watch -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/rexml.rb b/lib/sisu/v3/rexml.rb index 34a2acd9..886d7eab 100644 --- a/lib/sisu/v3/rexml.rb +++ b/lib/sisu/v3/rexml.rb @@ -101,7 +101,10 @@ module SiSU_Rexml            SiSU_Screen::Ansi.new(@md.opt.cmd,'fuschia',"File Not Found #{xmlfile}",'requested XML processing skipped').colorize unless @md.opt.cmd =~/q/            exit          end -      rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/screen_text_color.rb b/lib/sisu/v3/screen_text_color.rb index 073fbf37..67022087 100644 --- a/lib/sisu/v3/screen_text_color.rb +++ b/lib/sisu/v3/screen_text_color.rb @@ -208,13 +208,13 @@ module SiSU_Screen        STDERR.puts %{\t   #{@cX.orange}Rescued#{@cX.off} #{@cX.grey}#{yield if block_given?}\n\t   An#{@cX.off} #{@cX.fuschia}ERROR#{@cX.off} #{@cX.grey}occurred, message:#{@cX.off} #{@cX.fuschia}#{@txt[0]}#{@cX.off} #{@cX.grey}#{@txt[1]}#{@cX.off} #{@cX.brown}#{@txt[2]}#{@cX.off}}      end      def warn -      puts "\t  #{@cX.brown}#{@txt[0]}#{@cX.off} #{@cX.grey}#{@txt[1]}#{@cX.off}" +      STDERR.puts "\t  #{@cX.brown}#{@txt[0]}#{@cX.off} #{@cX.grey}#{@txt[1]}#{@cX.off}"      end      def error -      puts "\t  #{@cX.fuschia}#{@txt[0]}#{@cX.off} #{@cX.brown}#{@txt[1]}#{@cX.off}" +      STDERR.puts "\t  #{@cX.fuschia}#{@txt[0]}#{@cX.off} #{@cX.brown}#{@txt[1]}#{@cX.off}"      end      def error2 -      puts "\t  #{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.fuschia}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}" +      STDERR.puts "\t  #{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.fuschia}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}"      end      def version        puts "#{@cX.blue_hi}#{@txt[0]} #{@txt[1]}#{@cX.off} #{@cX.grey} (#{@txt[3]} [#{@txt[2]}]) &#{@cX.off} #{@cX.ruby}Ruby#{@cX.off} #{@cX.grey}(#{@txt[4]})#{@cX.off}\n" diff --git a/lib/sisu/v3/share_src.rb b/lib/sisu/v3/share_src.rb index bb4d2a56..c4900f5f 100644 --- a/lib/sisu/v3/share_src.rb +++ b/lib/sisu/v3/share_src.rb @@ -76,16 +76,21 @@ module SiSU_Markup        end        FileUtils::mkdir_p(@file.output_path.src.dir) unless FileTest.directory?(@file.output_path.src.dir)        if FileTest.directory?(@file.output_path.src.dir) -        unless @opt.fns =~/\.ssm$/; FileUtils::cp(@opt.fns,@file.output_path.src.dir) +        unless @opt.fns =~/\.ssm$/ +          if FileTest.file?(@opt.fns) +            FileUtils::cp(@opt.fns,@file.output_path.src.dir) +          else STDERR.puts %{\t*WARN* did not find - "#{@opt.fns}"} +          end          else            req=@opt.fns.gsub(/(.+?\.ssm)$/,'\1.sst')            file="#{@env.processing_path.composite_file}/#{@opt.fnb}.ssm.sst" -          if FileTest.file?(file); FileUtils::cp(file,"#{@file.output_path.src.dir}/#{req}") -          else print "did not find #{file} to copy" +          if FileTest.file?(file) +            FileUtils::cp(file,"#{@file.output_path.src.dir}/#{req}") +          else STDERR.puts "*WARN* did not find #{file} to copy"            end          end        else -        SiSU_Screen::Ansi.new(@opt.cmd,"Output directory does not exist","#{@opt.fns} -> #{@file.output_path.src.dir}").warn if @opt.cmd =~/[MVv]/ +        SiSU_Screen::Ansi.new(@opt.cmd,"*WARN* Output directory does not exist","#{@opt.fns} -> #{@file.output_path.src.dir}").warn if @opt.cmd =~/[MVv]/          exit        end      end diff --git a/lib/sisu/v3/shared_images.rb b/lib/sisu/v3/shared_images.rb index 8f971a04..03093c6a 100644 --- a/lib/sisu/v3/shared_images.rb +++ b/lib/sisu/v3/shared_images.rb @@ -73,44 +73,91 @@ module SiSU_Images        def songsheet          images_set.select_sisu_base          images_set.select_with_document +        if @md.opt.cmd =~/h/ +          images_set.select_with_document_skin +        end        end        def images_set          @pwd=ENV['PWD']          def copy(src_path,dest_path,images=nil) -        if FileTest.directory?(src_path) -          FileUtils::cd(src_path) -          unless images -            images=Dir.glob("*.{png,jpg,gif,ico}") -          end -          FileUtils::mkdir_p(dest_path) unless FileTest.directory?(dest_path) -          FileUtils::chmod(0755,dest_path) -          if images.length > 0 -            images.each do |i| -              FileUtils::cp_r(i,"#{dest_path}/#{i}") -              FileUtils::chmod(0644,"#{dest_path}/#{i}") +          if FileTest.directory?(src_path) +            FileUtils::cd(src_path) +            unless images +              images=Dir.glob("*.{png,jpg,gif,ico}") +            end +            unless FileTest.directory?(dest_path) \ +            or FileTest.symlink?(dest_path) +              FileUtils::mkdir_p(dest_path) +              FileUtils::chmod(0755,dest_path)              end +            if images.length > 0 +              images.each do |i| +                if FileTest.file?(i) +                  FileUtils::cp_r(i,"#{dest_path}/#{i}") +                  FileUtils::chmod(0644,"#{dest_path}/#{i}") +                else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]} +                end +              end +            end +            FileUtils::cd(@pwd) +          else STDERR.puts %{\t*WARN* did not find - "#{src_path}" [#{__FILE__}:#{__LINE__}]}            end -          FileUtils::cd(@pwd) -        else puts "\tWARN, did not find - #{src_path}" -        end          end          def dest_path(image_type)            pth=if image_type==:image_sys              pth=(@o_str.dump_or_redirect?) \              ? "#{@md.file.output_path.html.dir}/image" -            : "#{@env.path.webserv}/_sisu/image_sys" +            : "#{@md.file.output_path.base.dir}/_sisu/image_sys"            elsif image_type==:image              pth=(@o_str.dump_or_redirect?) \              ? "#{@md.file.output_path.html.dir}/image" -            : "#{@env.path.webserv}/_sisu/image" +            : "#{@md.file.output_path.base.dir}/_sisu/image"            end +          pth          end          def select_with_document            images=@md.ec[:image] -          src_path="#{@pwd}/_sisu/image" +          src_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +            "#{@pwd}/_sisu/image" +          else #sisupod +            pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] +            pt + '/image' +          end            dest=dest_path(:image)            copy(src_path,dest,images)          end +        def select_with_document_skin +          rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/ +          skin_source=SiSU_Env::InfoSkin.new(@md).apply +          docskin=nil +          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 +          images=[] +          if skin_source \ +          and skin_source[:name_path] #imperfect, revisit +            unless (skin_source[:name_path].nil? \ +            or skin_source[:name_path].empty?) +              skinfile_array=IO.readlines(skin_source[:name_path],'') +              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 +            end +          end +          src_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +            "#{@pwd}/_sisu/image" +          else #sisupod +            pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] +            pt + '/image' +          end +          dest=dest_path(:image) +          copy(src_path,dest,images.flatten) +        end          def select_sisu_base            images=%w[arrow_next_red.png arrow_prev_red.png arrow_up_red.png dot_clear.png dot_white.png b_doc.png b_epub.png b_odf.png b_pdf.png b_toc.png]            src_path="#{@env.path.share}/image" diff --git a/lib/sisu/v3/shared_sem.rb b/lib/sisu/v3/shared_sem.rb index 98c8483b..bd906efc 100644 --- a/lib/sisu/v3/shared_sem.rb +++ b/lib/sisu/v3/shared_sem.rb @@ -136,7 +136,8 @@ module SiSU_Sem        def sem_marker_added_extra_parts          unless @para =~ rgx.exclude            @para.gsub!(rgx.whole_csc_ae,'') -          if @para =~rgx.each_csc_ae; puts "WARNING semantic taggin error: #{@para}" +          if @para =~rgx.each_csc_ae +            STDERR.puts "WARNING semantic tagging error: #{@para}"            end          end          @para 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 diff --git a/lib/sisu/v3/sitemaps.rb b/lib/sisu/v3/sitemaps.rb index fa06a688..86a8e2fb 100644 --- a/lib/sisu/v3/sitemaps.rb +++ b/lib/sisu/v3/sitemaps.rb @@ -89,7 +89,10 @@ module SiSU_Sitemaps            output_idx(sitemap_index)            SiSU_Screen::Ansi.new(@opt.cmd,"sitemap index:","#{@env.path.output}/#{@sitemap_idx_fn}").result unless @opt.cmd =~/q/          end -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/sst_do_inline_footnotes.rb b/lib/sisu/v3/sst_do_inline_footnotes.rb index 389871fc..4ceb54fa 100644 --- a/lib/sisu/v3/sst_do_inline_footnotes.rb +++ b/lib/sisu/v3/sst_do_inline_footnotes.rb @@ -85,7 +85,6 @@ module SiSU_ConvertFootnotes        @@fns||@opt.fns        @my_make=SiSU_Env::CreateFile.new(@opt.fns)        @fnm=SiSU_Env::InfoFile.new(@opt.fns).marshal.dal_content -      SiSU_Env::CreateSystemLink.new.images      end      def read                                                                     #creates dal        begin @@ -93,7 +92,10 @@ module SiSU_ConvertFootnotes          @@dal_array=[]          @@fns=@opt.fns          create_dal -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure          Instantiate.new        end @@ -108,7 +110,10 @@ module SiSU_ConvertFootnotes          dal=if @@dal_array.empty?; read_fnm          else @@dal_array.dup #check          end -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure          Instantiate.new        end @@ -134,7 +139,7 @@ module SiSU_ConvertFootnotes          dal.each {|s| dal_array << "#{s.strip}\n\n" unless s.strip.empty?}          dal_array        else -        SiSU_Screen::Ansi.new(@md.opt.cmd,'no footnote conversion done, problem with source file','to override use --convert=footnote-force (this is not advised)').warn if @cmd !~/q/ +        SiSU_Screen::Ansi.new(@md.opt.cmd,'*WARN* no footnote conversion done, problem with source file','to override use --convert=footnote-force (this is not advised)').warn if @cmd !~/q/          ''        end      end diff --git a/lib/sisu/v3/sst_to_s_xml_sax.rb b/lib/sisu/v3/sst_to_s_xml_sax.rb index ff9493b4..20f68aca 100644 --- a/lib/sisu/v3/sst_to_s_xml_sax.rb +++ b/lib/sisu/v3/sst_to_s_xml_sax.rb @@ -100,7 +100,10 @@ module SiSU_SimpleXML_ModelSax          else @@fns_array.dup #check          end          SiSU_SimpleXML_ModelSax::Convert::Songsheet.new(@fns_array,@particulars).songsheet -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure #file closed in songsheet        end      end @@ -108,7 +111,7 @@ module SiSU_SimpleXML_ModelSax        dal=[]        if FileTest.file?("#{Dir.pwd}/#{@opt.fns}")          dal=IO.readlines("#{Dir.pwd}/#{@opt.fns}","\n\n") -      else  puts 'Error' +      else STDERR.puts 'Error'        end      end      private @@ -121,7 +124,10 @@ module SiSU_SimpleXML_ModelSax            SiSU_SimpleXML_ModelSax::Convert::Scroll.new(@data,@particulars).songsheet            SiSU_SimpleXML_ModelSax::Convert::Tidy.new(@md,@env).xml if @md.opt.cmd =~/[vVM]/ # test wellformedness, comment out when not in use            SiSU_Rexml::Rexml.new(@md,@md.fn[:sxs]).xml if @md.opt.cmd =~/M/ # test rexml parsing, comment out when not in use #debug -        rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error +        rescue +          SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +            __LINE__.to_s + ':' + __FILE__ +          end          ensure          end        end diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index acc38507..b8dd37b0 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -264,8 +264,8 @@ module SiSU_Env          require @prog        else          @mandatory \ -        ? (SiSU_Screen::Ansi.new(@cmd,"module required: #{@prog}").warn) -        : (SiSU_Screen::Ansi.new(@cmd,"#{@prog} load requested").warn) +        ? (SiSU_Screen::Ansi.new(@cmd,"*WARN* module required: #{@prog}").warn) +        : (SiSU_Screen::Ansi.new(@cmd,"*WARN* #{@prog} load requested").warn)        end        load_prog      end @@ -300,7 +300,7 @@ module SiSU_Env            @yamlrc_path.each do |v|              if @@noyaml \              or FileTest.exist?("#{v}/noyaml") -              puts "WARNING - YAML loading switched off, to enable delete the file:\n\t#{v}/noyaml\n\n" unless @@noyaml +              STDERR.puts "WARNING - YAML loading switched off, to enable delete the file:\n\t#{v}/noyaml\n\n" unless @@noyaml                @@noyaml=true                break              else @@ -657,7 +657,7 @@ module SiSU_Env        program='rcs'        program_ref="\n\t\tdocument version information requested"        if program_found?(program); true -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -665,7 +665,7 @@ module SiSU_Env        program='cvs'        program_ref="\n\t\tdocument version information requested"        if program_found?(program); true -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -673,7 +673,7 @@ module SiSU_Env        program='openssl'        program_ref="\n\t\tused to generate requested source document identification digest"        if program_found?(program); true -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -686,7 +686,7 @@ module SiSU_Env          dgst=%x{openssl dgst -md5 #{File.basename(filename)}}.strip #use file name without file path          Dir.chdir(pwd)          dgst.scan(/\S+/) -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -699,7 +699,7 @@ module SiSU_Env          dgst=%x{openssl dgst -sha256 #{File.basename(filename)}}.strip #use file name without file path          Dir.chdir(pwd)          dgst.scan(/\S+/) -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -707,7 +707,7 @@ module SiSU_Env        program='psql'        program_ref="\n\t\tpsql requested"        if program_found?(program); true -      else puts "\tWARN: #{program} is not installed #{program_ref}"               #if @cmd =~/v/ +      else STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}"               #if @cmd =~/v/          false        end      end @@ -722,14 +722,14 @@ module SiSU_Env        program_ref="\n\t\tcreatedb dbname #{db_name} #for postgresql database creation"        (program_found?(program)) \        ? system("#{program} #{dbname_name}") -      : (puts "\tWARN: #{program} is not available #{program_ref}") +      : (STDERR.puts "\t*WARN* #{program} is not available #{program_ref}")      end      def relaxng(cmd='')                                                        #trang - convert between different schema languages for XML        program='trang'        program_ref="\n\t\tsee <http://www.thaiopensource.com/relaxng/trang.html>"        (program_found?(program)) \        ? system("#{program} #{@input} #{@output}") -      : (puts "\tWARN: #{program} is not installed #{program_ref}" if cmd =~/V/) +      : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" if cmd =~/V/)      end      def qrencode                                                               #qrcode - for generating QR code        program='qrencode' @@ -739,21 +739,21 @@ module SiSU_Env        ? (system(%{            echo "#{@input}" | #{program} -s 3 -o #{@output}          })) -      : (puts "\tWARN: #{program} is not installed #{program_ref}" if cmd =~/V/) +      : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" if cmd =~/V/)        #found      end      def imagemagick                                                            #imagemagick is a image manipulation program        program='identify'        program_ref="\n\t\tsee <http://www.imagemagick.org/>"        found=(program_found?(program)) ? true : false -      puts "\tWARN: #{program} is not installed #{program_ref}" unless found +      STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found        found      end      def graphicksmagick                                                        #graphicsmagick is a image manipulation program        program='gm'        program_ref="\n\t\tsee <http://www.graphicsmagick.org/>"        found=(program_found?(program)) ? true : false -      puts "\tWARN: #{program} is not installed #{program_ref}" unless found +      STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found        found      end      def well_formed?                                                           #tidy - check for well formed xml xhtml etc. @@ -761,7 +761,7 @@ module SiSU_Env        program_ref="\n\t\tsee <http://tidy.sourceforge.net/>"        (program_found?(program)) \        ? system("#{@prog.tidy} -xml #{@input} > #{@output}") -      : (puts "\tWARN: #{program} is not installed #{program_ref}") +      : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}")      end      def tex2pdf_engine        prog=['xetex','xelatex','pdflatex','pdfetex','pdftex'] @@ -799,7 +799,7 @@ module SiSU_Env          when /pdflatex/; "#{texpdf} -interaction=#{mode} #{@input} #{tell}\n"          end          system(texpdf_cmd) -      else puts "\tWARN: none of the following programs are installed: #{program[0]}, #{program[1]}, #{program[2]} is installed. #{program_ref}" +      else STDERR.puts "\t*WARN* none of the following programs are installed: #{program[0]}, #{program[1]}, #{program[2]} is installed. #{program_ref}"        end      end      def makeinfo                                                               #texinfo @@ -808,7 +808,7 @@ module SiSU_Env        program_ref="\n\t\tsee http://www.gnu.org/software/texinfo/"        (program_found?(program)) \        ? system("#{program} #{options} #{@input}\n") -      : (puts "\tWARN: #{program} is not installed #{program_ref}") +      : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}")      end      def scp        program='scp' @@ -816,7 +816,7 @@ module SiSU_Env        puts "scp disabled"        #(program_found?(program)) \        #? system("scp -Cr #{@input} #{@output}") \ -      #: (puts "\tWARN: #{program} not found" ) +      #: (STDERR.puts "\t*WARN* #{program} not found" )      end      def rsync(action='',chdir=nil)        program='rsync' @@ -840,7 +840,7 @@ module SiSU_Env            #{rsync_cmd} #{msg}          ")          dir_return -      else puts "\tWARN: #{program} not found" +      else STDERR.puts "\t*WARN* #{program} not found"        end      end      def rm @@ -848,7 +848,7 @@ module SiSU_Env        elsif @cmd =~/V/;              FileUtils::rm(@input)        elsif @cmd !~/q/;              FileUtils::rm(@input)        elsif @cmd =~/q/;              FileUtils::rm(@input) -      else                           puts "\tWARN: operation ignored" +      else                           STDERR.puts "\t*WARN* operation ignored"        end      end    end @@ -2141,7 +2141,10 @@ WOK          src="#{path.share}/image"          images=%W[bullet_09.png arrow_next_red.png arrow_prev_red.png arrow_up_red.png]          images.each do |i| #move to avoid repeated tests -          FileUtils::cp("#{src}/#{i}","#{pth}/#{i}") unless FileTest.file?("#{pth}/#{i}") +          if FileTest.file?("#{src}/#{i}") +            FileUtils::cp("#{src}/#{i}","#{pth}/#{i}") unless FileTest.file?("#{pth}/#{i}") +          else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]} +          end          end          pth        end @@ -2694,7 +2697,7 @@ WOK          end          #system(tree)                                                          #enable if (/[vVM]/)        else -        SiSU_Screen::Ansi.new('',"file not found: #{fns_pod}").warn unless @cmd=~/q/ +        SiSU_Screen::Ansi.new('',"*WARN* file not found: #{fns_pod}").warn unless @cmd=~/q/        end        sisupod_processing_path      end @@ -2710,7 +2713,7 @@ WOK        end        (FileTest.file?(fns_pod)) \        ? system("unzip -q #{fns_pod} -d #{processing_path.processing}") -      : (SiSU_Screen::Ansi.new('',"file not found: #{fns_pod}").warn unless @cmd=~/q/) +      : (SiSU_Screen::Ansi.new('',"*WARN* file not found: #{fns_pod}").warn unless @cmd=~/q/)        sisupod_processing_path      end    end @@ -3401,28 +3404,6 @@ WOK        %x{ruby -v}.strip      end    end -  class CreateSystemLink                                                      #revisit problems created 2004w41 -    require 'fileutils' -      include FileUtils::Verbose -    def initialize -      @env=SiSU_Env::InfoEnv.new -    end -    def images -      unless FileTest.directory?("#{@env.path.output}/_sisu") -        FileUtils::mkdir_p("#{@env.path.output}/_sisu") -      end -      unless File.exist?("#{@env.path.output}/_sisu/image_sys") \ -      or File.symlink?("#{@env.path.output}/_sisu/image_sys") -        File.symlink("../../_sisu/image_sys", "#{@env.path.output}/_sisu/image_sys") -      end -    end -    def man_forms -      #File.symlink("../../man/form", "#{@env.path.output}/man/form") unless File.symlink?("#{@env.path.output}/man/form")==true -    end -    def man_pdf -      #File.symlink("../../man/form", "#{@env.path.output}/man/pdf") unless File.symlink?("#{@env.path.output}/man/pdf")==true -    end -  end    class InfoFile <InfoEnv                                                  #todo unify with FileOp      def initialize(fns)        begin @@ -3445,12 +3426,12 @@ WOK      def make_file(path,filename)        (File.writable?("#{path}/.")) \        ? File.new("#{path}/#{filename}",'w+') -      : (SiSU_Screen::Ansi.new('',"is the file or directory writable?, could not create #{filename}").warn) +      : (SiSU_Screen::Ansi.new('',"*WARN* is the file or directory writable?, could not create #{filename}").warn)      end      def touch_file(path,filename)        if File.writable?("#{path}/.");          FileUtils::touch("#{path}/#{filename}") -      else SiSU_Screen::Ansi.new('',"is the file or directory writable?, could not create #{filename}").warn +      else SiSU_Screen::Ansi.new('',"*WARN* is the file or directory writable?, could not create #{filename}").warn        end      end      def make_path(path) @@ -4276,10 +4257,10 @@ WOK          self        end        def pdf_p -        puts 'ERROR not available due to multiple page format sizes' +        STDERR.puts 'ERROR not available due to multiple page format sizes'        end        def pdf_l -        puts 'ERROR not available due to multiple page format sizes' +        STDERR.puts 'ERROR not available due to multiple page format sizes'        end        def xhtml          def dir @@ -5665,6 +5646,38 @@ WOK        @pwd_stub=@pwd[m,1]        @env=SiSU_Env::InfoEnv.new      end +    def apply +      if @md.make.skin +        skin_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +          [ +            "#{@env.path.pwd}/_sisu/skin", +            "#{@env.path.home}/.sisu/skin", +            '/etc/sisu/skin', +            "#{@env.processing_path.processing_sisupod(@md.opt)}/external_document/skin" +          ] +        else #sisupod +          pt=/(\/\S+?\/sisupod\/\S+?\/sisupod\/doc)/.match(@md.opt.f_pth[:pth])[1] +          [ "#{pt}/_sisu/skin" ] +        end +        sk_doc,sk_dir="doc/#{@md.make.skin}.rb","dir/skin_#{@env.stub_pwd}.rb" +        skin_path.each do |v|                                                    #document skin priority 1 +          if FileTest.file?("#{v}/#{sk_doc}") +            @skin_apply={ name: @md.make.skin, name_path: "#{v}/#{sk_doc}", type: :doc } +            break +          end +        end +        unless @skin_apply.length > 0 +          skin_path.each do |v|                                                  #directory skin priority 2 +            if FileTest.file?("#{v}/#{sk_dir}") +              @skin_apply={ name: "skin_#{@env.stub_pwd}.rb", name_path: "#{v}/#{sk_dir}", type: :dir } +              break +            end +          end +        end +      else nil +      end +      @skin_apply +    end      def select                                                                 # skin loading logic here        load "#{SiSU_lib}/defaults.rb"        skin_path=[] @@ -5882,57 +5895,73 @@ WOK          FileUtils::mkdir_p(dest_path) unless FileTest.directory?(dest_path)          FileUtils::chmod(0755,dest_path)          source.each do |i| -          FileUtils::cp_r(i,"#{dest_path}/#{i}") -          FileUtils::chmod(0644,"#{dest_path}/#{i}") +          if FileTest.file?(i) +            FileUtils::cp(i,"#{dest_path}/#{i}") +            FileUtils::chmod(0644,"#{dest_path}/#{i}") +          else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]} +          end          end          FileUtils::cd(@pwd) -      else puts "\tWARN, did not find - #{src_path}" +      else STDERR.puts %{\t*WARN* did not find - #{src_path} [#{__FILE__}:#{__LINE__}]}        end      end      def cp_local_images        src="#{@pwd}/_sisu/image"        dest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" -      cp_images(src,dest) +      cp_images(src,dest) if FileTest.directory?(src)      end      def cp_external_images        src="#{@env.processing_path.processing}/external_document/image"        dest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external"        if FileTest.directory?(src) -        cp_images(src,dest) +        cp_images(src,dest) if FileTest.directory?(src)        end      end      def cp_webserver_images        src=@env.path.image_source -      dest="#{@env.path.webserv}/_sisu/image" -      cp_images(src,dest) +      dest_arr=[ +        "#{@env.path.webserv}/_sisu/image", +        "#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" +      ] +      dest_arr.each do |dest| +        cp_images(src,dest) if FileTest.directory?(src) +      end      end      def cp_webserver_images_local #this should not have been necessary        src=@env.path.image_source        dest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" -      cp_images(src,dest) +      cp_images(src,dest) if FileTest.directory?(src)      end      def cp_base_images #fix images        src="#{@env.path.share}/image" -      dest="#{@env.path.webserv}/_sisu/image_sys" -      cp_images(src,dest) +      dest_arr=[ +        "#{@env.path.webserv}/_sisu/image_sys", +        "#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_sys" +      ] +      dest_arr.each do |dest| +        cp_images(src,dest) if FileTest.directory?(src) +      end      end      def cp_css        FileUtils::mkdir_p("#{@env.path.output}/#{@env.path.style}") unless FileTest.directory?("#{@env.path.output}/#{@env.path.style}")        css_path=['/etc/sisu/css',"#{@home}/.sisu/css","#{@pwd}/_sisu/css"] #BROKEN        if defined? @rc['permission_set']['css_modify'] \        and @rc['permission_set']['css_modify'] -        SiSU_Screen::Ansi.new(@cmd,"modify is css set to: #{@rc['permission_set']['css_modify']}").warn if @cmd=~/[MV]/ +        SiSU_Screen::Ansi.new(@cmd,"*WARN* modify is css set to: #{@rc['permission_set']['css_modify']}").warn if @cmd=~/[MV]/          css_path.each do |x|            if FileTest.directory?(x)              FileUtils::cd(x)              source=Dir.glob("*.{css}")              source.each do |i| -              FileUtils::cp(i,"#{@env.path.output}/#{@env.path.style}") +              if FileTest.file?(i) +                FileUtils::cp(i,"#{@env.path.output}/#{@env.path.style}") +              else STDERR.puts %{\t*WARN* did not find css - "#{i}" [#{__FILE__}:#{__LINE__}]} +              end              end              FileUtils::cd(@pwd)            end          end -      else SiSU_Screen::Ansi.new(@cmd,"modify css is not set or is set to: false").warn if @cmd=~/[MV]/ +      else SiSU_Screen::Ansi.new(@cmd,"*WARN* modify css is not set or is set to: false").warn if @cmd=~/[MV]/        end        fn_css=SiSU_Env::CSS_Default.new        css=SiSU_Style::CSS.new diff --git a/lib/sisu/v3/texpdf.rb b/lib/sisu/v3/texpdf.rb index 14755300..4c224b22 100644 --- a/lib/sisu/v3/texpdf.rb +++ b/lib/sisu/v3/texpdf.rb @@ -262,7 +262,7 @@ module SiSU_TeX                Dir.chdir(pwd_set)              end            else -            SiSU_Screen::Ansi.new(@md.opt.cmd,"FILE NOT FOUND: << #{@md.fns} >> - requested latex system processing skipped").warn +            SiSU_Screen::Ansi.new(@md.opt.cmd,"*WARN* FILE NOT FOUND: << #{@md.fns} >> - requested latex system processing skipped").warn            end            lst=Dir["*.{aux,log,out}"]            lst.each {|file| File.unlink(file)} if lst diff --git a/lib/sisu/v3/texpdf_format.rb b/lib/sisu/v3/texpdf_format.rb index 626020c3..75eadedc 100644 --- a/lib/sisu/v3/texpdf_format.rb +++ b/lib/sisu/v3/texpdf_format.rb @@ -478,67 +478,6 @@ module SiSU_TeX_Pdf          @txt.gsub!(/#{Mx[:lnk_o]}\S+\.(png|jpg|gif).+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'') # fragile match operator\\ fragile !        end      end -    def image -      dir=SiSU_Env::InfoEnv.new(@md.fns) -      image,m=/#{Mx[:lnk_o]}\s*(\S+)\s+.+?width=``(\d+)''.+?#{Mx[:lnk_c]}/m.match(@txt).captures -      width=m[1] || '100' -      width=width.to_i*0.4 -      image_source=if @md.fns =~/\.(?:ssm\.)?sst$/ \ -      and FileTest.file?("#{dir.path.image_source_include_local}/#{image}") -        dir.path.image_source_include_local -      elsif @md.fns =~/\.-ss[tm]$/ \ -      and FileTest.file?("#{dir.path.image_source_include_remote}/#{image}") -        dir.path.image_source_include_remote -      elsif FileTest.file?("#{dir.path.image_source_include}/#{image}") -        dir.path.image_source_include -      else -        SiSU_Screen::Ansi.new(@md.opt.cmd,"ERROR - image:",%{"#{image}" missing},"search locations: #{dir.path.image_source_include_local},#{dir.path.image_source_include_remote} and #{dir.path.image_source_include}").error2 unless @md.opt.cmd =~/q/ -        nil -      end -      if image_source #CHECK -        @txt.gsub!(/#{Mx[:lnk_o]}\s*(\S+)\s+.+?#{Mx[:lnk_c]}/, -          @center_begin + "\\includegraphics*[width=#{width}pt]{#{image_source}/\\1}" + @center_end ) -      else @txt.gsub!(/#{Mx[:lnk_o]}\s*(\S+)\s+.+?#{Mx[:lnk_c]}/,'\1}') -      end -    end -    def png(ps='') #fc missing image check -      dir=SiSU_Env::InfoEnv.new(@md.fns) -      # messy clean up -      z=@txt[/#{Mx[:lnk_o]}(\S.+?)#{Mx[:lnk_c]}(?:image|png)/,1].strip if @txt =~ /#{Mx[:lnk_o]}\S.+?#{Mx[:lnk_c]}(?:image|png)/ # match operator for z \\ fragile ! -      if z #debug 2004w14 -        image=z[/(\S+?\.(?:png|jpg|gif)\b)/m] -        image.gsub!(/\\/,'') -        width=if z =~ /\d+x\d*/ -          w=(z[/\s(\d+)x\d*/,1]).to_i -          w*0.8 -        else '100' #revisit, is bug for small images/icons -        end -        width='380' if width.to_i > 380 -        c=z[/``(.+?)''/m] -      end -      hsp="\n{\\color{mywhite} .}&~\n" # ~ character for hardspace -      caption="{\\\\\\\ \n\\begin{scriptsize}#{hsp*3}#{c}\\end{scriptsize}&}" if c -      image_source=if @md.fns =~/\.(?:ssm\.)?sst$/ \ -      and FileTest.file?("#{dir.path.image_source_include_local}/#{image}") -        dir.path.image_source_include_local -      elsif @md.fns =~/\.-ss[tm]$/ \ -      and FileTest.file?("#{dir.path.image_source_include_remote}/#{image}") -        dir.path.image_source_include_remote -      elsif FileTest.file?("#{dir.path.image_source_include}/#{image}") -        dir.path.image_source_include -      else -        unless image.nil? \ -        or image.length < 2 -          SiSU_Screen::Ansi.new(@md.opt.cmd,"ERROR - image:",%{"#{image}" missing},"search locations: #{dir.path.image_source_include_local},#{dir.path.image_source_include_remote} and #{dir.path.image_source_include}").error2 unless @md.opt.cmd =~/q/ -        end -        nil -      end -      if image_source -        @txt.gsub!(/#{Mx[:lnk_o]}\S+\.(png|jpg|gif).+?#{Mx[:lnk_c]}(image|png)/, # fragile match operator\\ fragile ! -          "#{@center_begin}\n\\includegraphics*[width=#{width}pt]{#{image_source}/#{image}}#{caption}#{@center_end}") -      else @txt.gsub!(/#{Mx[:lnk_o]}\S+\.(png|jpg|gif).+?#{Mx[:lnk_c]}(image|png)/,'') -      end -    end      def url_str_internal(str,idx=nil)        map_nametags=SiSU_Particulars::CombinedSingleton.instance.get_map_nametags(@md).nametags_map #p map_nametags        rgx_url_generic=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/m @@ -684,36 +623,53 @@ module SiSU_TeX_Pdf                images_hash[ps].gsub!(/#{Mx[:lnk_o]}\s*(\S+\.?\.(?:png|jpg|gif))/,'[image]')              end              if image #most images fc etc. #% clean up ! -              if @md.fns =~/\.(?:ssm\.)?sst$/ \ -              and FileTest.file?("#{dir.path.image_source_include_local}/#{image}") +              if FileTest.file?("#{dir.path.image_source_include}/#{image}")                  case images_hash[ps]                  when url_image_rgx                    images_hash[ps].sub!(url_image_rgx, -                    "#{@center_begin}\\\n\\href{#{url}}{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_local}/#{image}}}#{caption} #{@center_end}") +                    "#{@center_begin}\\\n\\href{#{url}}\n{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include}/#{image}}}#{caption}#{@center_end}")                  when image_rgx                    images_hash[ps].sub!(image_rgx, -                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_local}/#{image}}#{caption} #{@center_end}") +                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include}/#{image}}#{caption}#{@center_end}")                  end                  images_hash[ps] -              elsif @md.fns =~/\.-ss[tm]$/ \ -              and FileTest.file?("#{dir.path.image_source_include_remote}/#{image}") +              elsif @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ +                pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] +                img_src=pt + '/image' +                if FileTest.file?("#{img_src}/#{image}") +                  img_src + +                  case images_hash[ps] +                  when url_image_rgx +                    images_hash[ps].sub!(url_image_rgx, +                      "#{@center_begin}\\\n\\href{#{url}}{\\includegraphics*[width=#{width[ps]}pt]{#{img_src}/#{image}}}#{caption} #{@center_end}") +                  when image_rgx +                    images_hash[ps].sub!(image_rgx, +                      "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{img_src}/#{image}}#{caption} #{@center_end}") +                  end +                  images_hash[ps] +                end + +              elsif @md.fns =~/\.(?:ssm\.)?sst$/ \ +              and FileTest.file?("#{dir.path.image_source_include_local}/#{image}")                  case images_hash[ps]                  when url_image_rgx                    images_hash[ps].sub!(url_image_rgx, -                    "#{@center_begin}\\\n\\href{#{url}}{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_remote}/#{image}}}#{caption}#{@center_end}") +                    "#{@center_begin}\\\n\\href{#{url}}{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_local}/#{image}}}#{caption} #{@center_end}")                  when image_rgx                    images_hash[ps].sub!(image_rgx, -                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_remote}/#{image}}#{caption}#{@center_end}") +                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_local}/#{image}}#{caption} #{@center_end}")                  end                  images_hash[ps] -              elsif FileTest.file?("#{dir.path.image_source_include}/#{image}") +              elsif @md.fns =~/\.-ss[tm]$/ \ +              and FileTest.file?("#{dir.path.image_source_include_remote}/#{image}")                  case images_hash[ps]                  when url_image_rgx                    images_hash[ps].sub!(url_image_rgx, -                    "#{@center_begin}\\\n\\href{#{url}}\n{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include}/#{image}}}#{caption}#{@center_end}") +                    "#{@center_begin}\\\n\\href{#{url}}{\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_remote}/#{image}}}#{caption}#{@center_end}")                  when image_rgx                    images_hash[ps].sub!(image_rgx, -                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include}/#{image}}#{caption}#{@center_end}") +                    "#{@center_begin}\\\n\\includegraphics*[width=#{width[ps]}pt]{#{dir.path.image_source_include_remote}/#{image}}#{caption}#{@center_end}")                  end                  images_hash[ps]                else diff --git a/lib/sisu/v3/update.rb b/lib/sisu/v3/update.rb index 9ba67e75..4630d640 100644 --- a/lib/sisu/v3/update.rb +++ b/lib/sisu/v3/update.rb @@ -71,7 +71,10 @@ module SiSU_UpdateControlFlag          base_path="#{out}/#{@md.fnb}"          SiSU_Screen::Ansi.new(@md.opt.cmd,'Checking previous output',base_path).green_hi_blue unless @md.opt.cmd =~/q/          SetCF.new(@md).set_flags -      rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index 116fce98..a75cfc1a 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v3/urls.rb @@ -138,7 +138,7 @@ module SiSU_Urls            SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.text_editor} #{@md.file.output_path.src.dir}/#{y}").result          end          def pod(x,y) -          SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.web_browser} #{@env.url.output_tell}/src/pod/#{y}").result +          SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.web_browser} file://#{@md.file.output_path.sisupod.dir}/#{y}").result          end          self        end diff --git a/lib/sisu/v3/webrick.rb b/lib/sisu/v3/webrick.rb index ea0a494f..f8189bba 100644 --- a/lib/sisu/v3/webrick.rb +++ b/lib/sisu/v3/webrick.rb @@ -74,7 +74,10 @@ def brick(port,get='')      s.mount('/cgi-bin', HTTPServlet::FileHandler, cgi_dir, { FancyIndexing: true })      trap("INT"){ s.shutdown }      s.start -  rescue; SiSU_Errors::InfoError.new($!,$@,'-W',nil).error #fix +  rescue +    SiSU_Errors::InfoError.new($!,$@,'-W',nil).error do #fix +      __LINE__.to_s + ':' + __FILE__ +    end    ensure    end  end @@ -167,7 +170,9 @@ WOK    brick(@port,get)  rescue;    require_relative 'sysenv'                             # sysenv.rb -  SiSU_Errors::InfoError.new($!,$@,'-W',nil).error #fix +  SiSU_Errors::InfoError.new($!,$@,'-W',nil).error do #fix +    __LINE__.to_s + ':' + __FILE__ +  end  ensure  end  __END__ diff --git a/lib/sisu/v3/wikispeak.rb b/lib/sisu/v3/wikispeak.rb index bde2527e..725be0a5 100644 --- a/lib/sisu/v3/wikispeak.rb +++ b/lib/sisu/v3/wikispeak.rb @@ -85,7 +85,10 @@ module SiSU_Wikispeak          @dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here          SiSU_Wikispeak::Source::Scroll.new(@dal_array,@md).songsheet          SiSU_Env::InfoSkin.new(@md).select #watch -      rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error +      rescue +        SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do +          __LINE__.to_s + ':' + __FILE__ +        end        ensure        end      end | 
