diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v2/param.rb | 12 | ||||
| -rw-r--r-- | lib/sisu/v2/remote.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/composite.rb | 8 | ||||
| -rw-r--r-- | lib/sisu/v3/html_segments.rb | 3 | ||||
| -rw-r--r-- | lib/sisu/v3/hub.rb | 52 | ||||
| -rw-r--r-- | lib/sisu/v3/manifest.rb | 39 | ||||
| -rw-r--r-- | lib/sisu/v3/options.rb | 64 | ||||
| -rw-r--r-- | lib/sisu/v3/param.rb | 15 | ||||
| -rw-r--r-- | lib/sisu/v3/qrcode.rb | 6 | ||||
| -rw-r--r-- | lib/sisu/v3/remote.rb | 10 | ||||
| -rw-r--r-- | lib/sisu/v3/sisupod_make.rb | 17 | ||||
| -rw-r--r-- | lib/sisu/v3/sysenv.rb | 170 | ||||
| -rw-r--r-- | lib/sisu/v3/texinfo.rb | 27 | ||||
| -rw-r--r-- | lib/sisu/v3/urls.rb | 2 | 
14 files changed, 293 insertions, 134 deletions
| diff --git a/lib/sisu/v2/param.rb b/lib/sisu/v2/param.rb index 656490d9..60663830 100644 --- a/lib/sisu/v2/param.rb +++ b/lib/sisu/v2/param.rb @@ -120,9 +120,9 @@ module SiSU_Param          def all            s=nil            if @author -            s ||=((@date =~/([12][890]\d{2})/ ) \ -            ? ("Copyright (C) #{$1} #{@author}") \ -            : ('Copyright (C)' + @author))                     #matches years 1800 through 20\d\d 2004w19 +            s ||=((@date =~/((?:1[4-9]|2[01])\d{2})/ ) \ +            ? ("Copyright (C) #{$1} #{@author}") +            : ('Copyright (C)' + @author))                     #matches years 1400 through 21\d\d            end            s          end @@ -133,9 +133,9 @@ module SiSU_Param            def all              s=nil              if @author -              s ||=((@date =~/([12][890]\d{2})/ ) \ -              ? ("Copyright (C) #{$1} #{@author}") \ -              : ('Copyright (C)' + @author))                     #matches years 1800 through 20\d\d 2004w19 +              s ||=((@date =~/((?:1[4-9]|2[01])\d{2})/ ) \ +              ? ("Copyright (C) #{$1} #{@author}") +              : ('Copyright (C)' + @author))                     #matches years 1400 through 21\d\d              end              s            end diff --git a/lib/sisu/v2/remote.rb b/lib/sisu/v2/remote.rb index 32bc336d..d737dad6 100644 --- a/lib/sisu/v2/remote.rb +++ b/lib/sisu/v2/remote.rb @@ -149,7 +149,7 @@ module SiSU_Remote                images.sort!                @msg,@msgs='downloading images:', [ images.join(',') ]                @tell.call.warn unless @opt.cmd =~/q/ -              SiSU_Assemble::Remote_image.new.download_images(image_download_url,images) +              SiSU_Assemble::Remote_image.new.download_images(image_download_url[0],images)                @msg,@msgs='downloading done',nil                @tell.call.warn unless @opt.cmd =~/q/              end diff --git a/lib/sisu/v3/composite.rb b/lib/sisu/v3/composite.rb index 33c15cc0..b269cc39 100644 --- a/lib/sisu/v3/composite.rb +++ b/lib/sisu/v3/composite.rb @@ -70,10 +70,11 @@ module SiSU_Assemble        images[0]=dir        images      end -    def download_images(download_from,images_array) +    def download_images(images_info)        path="#{@env.processing_path.processing}/external_document/image"        mkdir_p(path) unless FileTest.directory?(path) -      images_array.each do |i| +      download_from=images_info.shift +      images_info.each do |i|          image="#{path}/#{i}"          imagefile=File.new(image,'w+')          open("#{download_from}/#{i}") do |g| @@ -226,7 +227,8 @@ module SiSU_Assemble          @@imager.each do |d,i|            i.flatten!            i.uniq! -          download_images(d,i) +          image_info=d + i +          download_images(mage_info.flatten)          end        end        tuned_file diff --git a/lib/sisu/v3/html_segments.rb b/lib/sisu/v3/html_segments.rb index 67bfa319..60b4312e 100644 --- a/lib/sisu/v3/html_segments.rb +++ b/lib/sisu/v3/html_segments.rb @@ -435,7 +435,8 @@ module SiSU_HTML_seg              dob=format_seg.no_paranum            end          end -        if (dob.is=='heading' or dob.is=='heading_insert') \ +        if (dob.is=='heading' \ +        || dob.is=='heading_insert') \          and dob.ln==4            @@seg[:main] << %{\n<div class="content">\n}            @@seg[:main] << dob_html diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb index 088fb309..584845ba 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v3/hub.rb @@ -156,11 +156,20 @@ module SiSU              break            else              put=fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') -            @opt.fns=fns -            @opt.pth=@opt.paths[i] -            @opt.f_pth=@opt.f_pths[i] -            @opt.lng=@opt.lngs[i] -            @@pwd=@opt.pth +            if fns !~/\.-sst$/ +              @opt.fns=fns +              @opt.pth=@opt.paths[i] +              @opt.f_pth=@opt.f_pths[i] +              @opt.lng=@opt.lngs[i] +              @@pwd=@opt.pth +            else +              @opt.fns=fns +              @opt.pth=Dir.pwd +              @opt.f_pth=@opt.f_pths[i] #@opt.f_pth= { pth: Dir.pwd } +              @opt.lng='en' +              #@opt.lng=@opt.lngs[i] +              @@pwd=@opt.pth +            end              Dir.chdir(@opt.pth) #watch              env=SiSU_Env::Info_env.new(fns)              if @req !~/(?:urls|remote)$/ @@ -348,7 +357,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/          SiSU_Harvest::Source.new(@opt).read                                    # -h -H  html.rb        elsif @opt.mod.inspect =~/--convert|--to|--from/          require_relative 'sst_convert_markup'                                  # sst_convert_markup.rb -      elsif @opt.cmd =~/([AabCcDdeFfGgHhIiJjkLMmNnOoPpQqRrSsTtUuVvwWXxYyZ_0-9])/ \ +      elsif @opt.cmd =~/([abCcDdeFGgHhIikLMmNnoPpQqRrSsTtUuVvWwXxYyZ_0-9])/ \        and @opt.cmd =~/^-/ \        and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \        or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ @@ -427,12 +436,12 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/              path_image='./_sisu/processing/external_document/image'              path_skin='./_sisu/processing/external_document/skin/doc'              @get_s,@get_p,@get_pl=[],[],[] -            re_s=/((?:https?|file):\/\/\S+?\.sst)$/ +            re_s=/(\S+?\.-sst)$/              re_p3=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/              re_pl3=/^(\/\S+?\.ss[mt]\.txz)/              @opt.files.each do |fns|                if fns =~re_s -                @get_s << re_s.match(fns)[1] if re_s +                @get_s << @opt.f_pths[0][:url]                end                if fns =~re_p3                  @get_p << re_p3.match(fns)[1] if re_p3 @@ -441,21 +450,18 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/                  @get_pl << re_pl3.match(fns)[1] if re_p3                end              end -            re_p2=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.zip|sisupod(?:\.zip)?|\.ssp))/ -            re_pl2=/^(\/\S+?\.ss[mt]\.zip)/ -            @opt.files.each do |fns| -              if fns =~re_s -                @get_s << re_s.match(fns)[1] if re_s -              end -              if fns =~re_p2 -                @get_p << re_p2.match(fns)[1] if re_p2 -              end -              if fns =~re_pl2 -                @get_pl << re_pl2.match(fns)[1] if re_p2 -              end -            end -            if @get_s.length > 0                           #% remote markup file .sst -              require_relative 'remote'                 # remote.rb +           #re_p2=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.zip|sisupod(?:\.zip)?|\.ssp))/ +           #re_pl2=/^(\/\S+?\.ss[mt]\.zip)/ +           #@opt.files.each do |fns| +           #  if fns =~re_p2 +           #    @get_p << re_p2.match(fns)[1] if re_p2 +           #  end +           #  if fns =~re_pl2 +           #    @get_pl << re_pl2.match(fns)[1] if re_p2 +           #  end +           #end +            if @get_s.length > 0                                               #% remote markup file .sst +              require_relative 'remote'                                        # remote.rb                SiSU_Remote::Get.new(@opt,@get_s).fns                Operations.new.counter              end diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index adc048ef..d1e01f58 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -360,6 +360,20 @@ module SiSU_Manifest            id,file='XML DOM',@f.base_filename.xml_dom            summarize(id,file,pth,rel,url)          end +        if FileTest.file?(@f.place_file.info.dir)==true +          pth=@f.output_path.texinfo.dir +          rel=@f.output_path.texinfo.rel_sm +          url=@f.output_path.texinfo.url +          id,file='Info file',@f.base_filename.info +          summarize(id,file,pth,rel,url) +        end +        if FileTest.file?(@f.place_file.manpage.dir)==true +          pth=@f.output_path.manpage.dir +          rel=@f.output_path.manpage.rel_sm +          url=@f.output_path.manpage.url +          id,file='Manpage',@f.base_filename.manpage +          summarize(id,file,pth,rel,url) +        end          if FileTest.file?(@f.place_file.txt.dir)==true          if    @md.opt.cmd =~/a/; id='Plaintext (Unix (UTF-8) with footnotes)'          elsif @md.opt.cmd =~/e/; id='Plaintext (Unix (UTF-8) with endnotes)' @@ -383,20 +397,6 @@ module SiSU_Manifest            pth,rel,url='','',''            summarize(id,file,pth,rel,url)          end -        if FileTest.file?(@f.place_file.manpage.dir)==true -          pth=@f.output_path.manpage.dir -          rel=@f.output_path.manpage.rel_sm -          url=@f.output_path.manpage.url -          id,file='Manpage',@f.base_filename.manpage -          summarize(id,file,pth,rel,url) -        end -        if FileTest.file?(@f.place_file.texinfo.dir)==true -          pth=@f.output_path.texinfo.dir -          rel=@f.output_path.texinfo.rel_sm -          url=@f.output_path.texinfo.url -          id,file='Texinfo',@f.base_filename.texinfo -          summarize(id,file,pth,rel,url) -        end          if FileTest.file?(@f.place_file.hash_digest.dir)==true            pth=@f.output_path.hash_digest.dir            rel=@f.output_path.hash_digest.rel_sm @@ -416,11 +416,10 @@ module SiSU_Manifest          end        end        def qrc_image -        pth="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" -        fn=@f.base_filename.manifest_txt -        img_md="#{@md.file.output_path.html.rel_image}/qrc_md.#{fn}.png" -        img_title="#{@md.file.output_path.html.rel_image}/qrc_title.#{fn}.png" -        if FileTest.file?("#{pth}/qrc_md.#{fn}.png")==true +        fn=@md.fnb +        img_md="qrcode/#{fn}.md.png" +        img_title="qrcode/#{fn}.title.png" +        if FileTest.file?(@f.place_file.qrcode_md.dir)==true            @manifest[:html] <<<<WOK  <tr><td class="left">    <p class="tiny">QR code SiSU document metadata:</p> @@ -430,7 +429,7 @@ module SiSU_Manifest  </td></tr>  WOK          end -        if FileTest.file?("#{pth}/qrc_title.#{fn}.png")==true +        if FileTest.file?(@f.place_file.qrcode_title.dir)==true            @manifest[:html] <<<<WOK  <tr><td class="left">    <p class="tiny">QR code document title info:</p> diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index eeca31ec..ffd0da0f 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -192,6 +192,7 @@ module SiSU_commandline        c,w='',''        m,f,pth,z,lng,lngs=[],[],[],[],[],[]        a=s.split(/\s+/) +      r_l=Px[:lng_lst].join('|')        a.uniq.each do |x|          if x =~/^-[a-z0-5]+/i \          or x =~/^--\S+/ @@ -203,8 +204,51 @@ module SiSU_commandline            end          elsif x =~ /(?:\.(?:(?:-|ssm\.)?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip))$/            if x =~/^(?:https?|file):\/\/\S+/ \ -          or x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/ \ -          && FileTest.file?(x) +          and x =~/\S+?\.ss[mt]$/ +            r_url=/(http:\/\/\S+?\/\S+?\/src(?:\/(?:#{r_l}))?)\// +            url_base = (x[r_url,1]) +            url = x +            y=x.gsub(/http:\/\/\S+?\/\S+?\/src\//,'') +            t=/(#{r_l})\/[^\/]+?\.ss[tm]$/ +            l_p = (y[t,1]) \ +              ? y[t,1] +              : nil +            lng << l_p +            lngs << if l_p +              l_p +            elsif x =~/~(#{r_l})\.ss[tm]/ +              $1 +            else lng_base +            end +            r_f=/(?:#{r_l})\/([^\/]+?\.ss[tm])$/ +            fn = (y[r_f,1]) \ +              ? y[r_f,1] +              : y +            fn.gsub!(/\.((?:ssm\.)?sst)/,'.-\1') +            fullname=Dir.pwd + '/' + fn +            pt=Pathname.new(fullname) +            pth << Dir.pwd +            r_u=/.+?\/([^\/]+)(?:\/(?:#{r_l})$|$)/ +            lng_is =if l_p +              l_p +            elsif x =~/~(#{r_l})\.ss[tm]/ +              $1 +            else lng_base +            end +            f_pths << { +              pth: pt.split[0].realpath.to_s, +              f: pt.split[1].to_s, +              pth_stub: pt.split[0].realpath.to_s[r_u,1], +              lng: (pt.split[0].realpath.to_s[t,1]) \ +                ? pt.split[0].realpath.to_s[t,1] +                : nil, +              lng_is: lng_is, +              url_base: url_base, +              url: url +            } +            f << fn +          elsif x =~/^(?:https?|file):\/\/\S+/ \ +          and x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/              x=x.gsub(/^file:\/\//,'')              f << x            elsif FileTest.file?(x) @@ -212,34 +256,34 @@ module SiSU_commandline              pt=Pathname.new(x)              pth << pt.split[0].realpath.to_s     #remove?              f << pt.split[1].to_s                #remove? -            r=Px[:lng_lst].join('|') -            u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/ -            t=/.+\/(#{r})$/ +            r_u=/.+?\/([^\/]+)(?:\/(?:#{r_l})$|$)/ +            t=/.+\/(#{r_l})$/              l_p = (pt.split[0].realpath.to_s[t,1]) \                ? pt.split[0].realpath.to_s[t,1]                : nil -              #: ''              lng << l_p              lngs << if l_p                l_p -            elsif x =~/~(#{r})\.ss[tm]/ +            elsif x =~/~(#{r_l})\.ss[tm]/                $1              else lng_base              end              lng_is =if l_p                l_p -            elsif x =~/~(#{r})\.ss[tm]/ +            elsif x =~/~(#{r_l})\.ss[tm]/                $1              else lng_base              end              f_pths << {                pth: pt.split[0].realpath.to_s,                f: pt.split[1].to_s, -              pth_stub: pt.split[0].realpath.to_s[u,1], +              pth_stub: pt.split[0].realpath.to_s[r_u,1],                lng: (pt.split[0].realpath.to_s[t,1]) \                  ? pt.split[0].realpath.to_s[t,1]                  : nil, -              lng_is: lng_is +              lng_is: lng_is, +              url_base: nil, +              url: nil              }  #           Dir.chdir(pt.split[0].realpath)            else  puts "file not found: #{x}" diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb index f9d7ecb0..e2cffa9b 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v3/param.rb @@ -87,7 +87,8 @@ module SiSU_Param        @pstorefile="#{@env.processing_path.dal}/#{@fns}.pstore"      end      def get -      if @opt.f_pth[:pth] != Dir.pwd #BUG check +      if @opt.f_pth \ +      and @opt.f_pth[:pth] != Dir.pwd #BUG check          # you may need to change Dir.pwd to @opt.f_pth[:pth] where the latter          # has a path value that is different, however, f_pth is not always set!          p '-- bug alert -- ' @@ -131,9 +132,9 @@ module SiSU_Param          def all            s=nil            if @author -            s ||=((@date =~/([12][890]\d{2})/ ) \ +            s ||=((@date =~/((?:1[4-9]|2[01])\d{2})/ ) \              ? ("Copyright (C) #{$1} #{@author}") -            : ('Copyright (C)' + @author))                     #matches years 1800 through 20\d\d 2004w19 +            : ('Copyright (C)' + @author))                     #matches years 1400 through 21\d\d            end            s          end @@ -144,9 +145,9 @@ module SiSU_Param            def all              s=nil              if @author -              s ||=((@date =~/([12][890]\d{2})/ ) \ +              s ||=((@date =~/((?:1[4-9]|2[01])\d{2})/ ) \                ? ("Copyright (C) #{$1} #{@author}") -              : ('Copyright (C)' + @author))                     #matches years 1800 through 20\d\d 2004w19 +              : ('Copyright (C)' + @author))                     #matches years 1400 through 21\d\d              end              s            end @@ -287,7 +288,9 @@ module SiSU_Param          a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m)          @h=build_hash(a)          def author -          @h['author']=(@h['author'] ? @h['author'] : @h['main']) +          @h['author']=(@h['author'] \ +          ? @h['author'] +          : @h['main'])            names=name_format(@h['author'])            s=names[:name_str]            l,n=Db[:col_name],'creator.author' diff --git a/lib/sisu/v3/qrcode.rb b/lib/sisu/v3/qrcode.rb index e244231e..1b741a48 100644 --- a/lib/sisu/v3/qrcode.rb +++ b/lib/sisu/v3/qrcode.rb @@ -110,7 +110,7 @@ module SiSU_QRcode          @language=l[:n]          @translate=SiSU_Translate::Source.new(@md,@language)          @brace_url=SiSU_Viz::Skin.new.url_decoration -        @dest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" +        @f.make_path(@f.output_path.qrcode.dir)        end        def output_metadata          fn=@f.base_filename.manifest_txt @@ -128,7 +128,7 @@ module SiSU_QRcode          #system(%{          #  cat  #{pt}/#{fn} | qrencode -s 3 -o qrcm.autonomy_markup0.png          #}) -        cmd=SiSU_Env::System_call.new(mn,"#{@dest}/qrc_md.#{fn}.png",@md.opt.cmd) +        cmd=SiSU_Env::System_call.new(mn,@f.place_file.qrcode_md.dir,@md.opt.cmd)          cmd.qrencode          #system(%{          #  echo "#{mn}" | qrencode -s 3 -o #{@dest}/qrc_md.#{fn}.png @@ -140,7 +140,7 @@ module SiSU_QRcode          @manifest[:txt_title].each do |x|            mn += x          end -        cmd=SiSU_Env::System_call.new(mn,"#{@dest}/qrc_title.#{fn}.png",@md.opt.cmd) +        cmd=SiSU_Env::System_call.new(mn,@f.place_file.qrcode_title.dir,@md.opt.cmd)          cmd.qrencode          #system(%{          #  echo "#{mn}" | qrencode -s 3 -o #{@dest}/qrc_title.#{fn}.png diff --git a/lib/sisu/v3/remote.rb b/lib/sisu/v3/remote.rb index 1e974f9c..2e055707 100644 --- a/lib/sisu/v3/remote.rb +++ b/lib/sisu/v3/remote.rb @@ -64,9 +64,9 @@ module SiSU_Remote      def initialize(opt)        @opt=opt        @dir=SiSU_Env::Info_env.new(@opt.fns) -      @put=unless @opt.fns =~/\.ssm\.sst$/; @opt.fns -      else @opt.fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') -      end +      @put=(@opt.fns =~/\.ssm\.sst$/) \ +      ? @opt.fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') +      : @opt.fns        @remote=SiSU_Env::Info_remote.new(@opt)      end      def rsync @@ -149,7 +149,9 @@ module SiSU_Remote                images.sort!                @msg,@msgs='downloading images:', [ images.join(',') ]                @tell.call.warn unless @opt.cmd =~/q/ -              SiSU_Assemble::Remote_image.new.download_images(image_download_url,images) +              image_info=image_download_url + images +              SiSU_Assemble::Remote_image.new.download_images(image_info) +              #SiSU_Assemble::Remote_image.new.download_images(image_download_url,images)                @msg,@msgs='downloading done',nil                @tell.call.warn unless @opt.cmd =~/q/              end diff --git a/lib/sisu/v3/sisupod_make.rb b/lib/sisu/v3/sisupod_make.rb index dd6c89c2..e2ac4f51 100644 --- a/lib/sisu/v3/sisupod_make.rb +++ b/lib/sisu/v3/sisupod_make.rb @@ -303,23 +303,6 @@ module SiSU_Doc          SiSU_Screen::Ansi.new('',"#{@opt.fns}.txz not built").blue_tab        end      end -    def sisupod_zip -      mkdir_p(@file.output_path.sisupod.dir) unless FileTest.directory?(@file.output_path.sisupod.dir) -      if FileTest.directory?(@env.processing_path.processing) -        Dir.chdir(@env.processing_path.processing) -        system(%{ -          echo "SiSU sisupod #{@ver[:version]}" > sisu_zip.txt -          zip -qz #{@zipfile}.zip sisu_zip.txt < sisu_zip.txt -          zip -qr #{@zipfile}.zip sisupod -          mv #{@zipfile}.zip #{@file.place_file.sisupod.dir} & -          rm -r sisupod/* -        }) -        Dir.chdir(@env.path.pwd) -        SiSU_Screen::Ansi.new('',"#{@zipfile}.zip").blue_tab if @opt.cmd =~/[MVv]/ -      else -        SiSU_Screen::Ansi.new('',"#{@zipfile}.zip not built").blue_tab -      end -    end    end  end  __END__ diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index 7463cb4b..ed2d74dc 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -808,7 +808,8 @@ module SiSU_Env          end          msg=''          msg=" && echo 'OK: #{@input} -> #{@output}'" unless @cmd =~/q/ -        puts "rsync -az#{vb} #{action} #{@input} #{@output}" if @cmd =~/[vVM]/ +        rsync_cmd="rsync -az#{vb} #{action} #{@input} #{@output}" +        puts rsync_cmd if @cmd =~/[vVM]/          dir_change,dir_return='',''          if chdir \          && chdir != Dir.pwd @@ -817,7 +818,7 @@ module SiSU_Env          end          dir_change          system(" -          rsync -az#{vb} #{action} #{@input} #{@output} #{msg} +          #{rsync_cmd} #{msg}          ")          dir_return        else puts "\tWARN: #{program} not found" @@ -2952,8 +2953,8 @@ WOK        def document          self.remote_host_base.each do |remote_conn|            local_gen=@source_path -          local_gen_image="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" -          local_gen_image_external="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external" +          #local_gen_image="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" +          #local_gen_image_external="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external"            remote_gen="#{remote_conn[:name]}/#{@env.path.stub_pwd}/."            remote_rel=remote_conn[:name] + '/' + @f.output_path.stub.rcp            src_txt=@opt.fnc @@ -2966,54 +2967,82 @@ WOK  #           System_call.new("#{local_src}/#{src_txt}",remote_src,@opt.cmd).rsync              delete_extra_files='--delete' # '--delete-after'              inp=[] -            if @opt.cmd =~/h/ \ +            if (@opt.cmd =~/h/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.html_scroll.dir)                inp << @f.output_path.html_seg.rel << @f.place_file.html_scroll.rel              end -            if @opt.cmd =~/w/ \ +            if (@opt.cmd =~/w/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.html_concordance.dir)                inp << @f.place_file.html_concordance.rel              end -            if @opt.cmd =~/e/ \ +            if (@opt.cmd =~/e/ \ +            || @opt.cmd =~/^-R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.epub.dir)                inp << @f.place_file.epub.rel              end -            if @opt.cmd =~/o/ \ +            if (@opt.cmd =~/o/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.odt.dir)                inp << @f.place_file.odt.rel              end -            if @opt.cmd =~/b/ \ +            if (@opt.cmd =~/b/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.xhtml.dir)                inp << @f.place_file.xhtml.rel              end -            if @opt.cmd =~/x/ \ +            if (@opt.cmd =~/x/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.xml_sax.dir)                inp << @f.place_file.xml_sax.rel              end -            if @opt.cmd =~/X/ \ +            if (@opt.cmd =~/X/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.xml_dom.dir)                inp << @f.place_file.xml_dom.rel              end -            if @opt.cmd =~/[at]/ \ +            if (@opt.cmd =~/[at]/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.txt.dir)                inp << @f.place_file.txt.rel              end -            if @opt.cmd =~/N/ \ +            if (@opt.cmd =~/i/ \ +            || @opt.cmd =~/^-[mqvVM]*i[mqvVM]*$/) \ +            && FileTest.file?(@f.place_file.manpage.dir) +              inp << @f.place_file.manpage.rel +            end +            if (@opt.cmd =~/I/ \ +            || @opt.cmd =~/^-[mqvVM]*I[mqvVM]*$/) \ +            && FileTest.file?(@f.place_file.info.dir) +              inp << @f.place_file.info.rel +            end +            if (@opt.cmd =~/N/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.hash_digest.dir)                inp << @f.place_file.hash_digest.rel              end -            if @opt.cmd =~/s/ \ +            if (@opt.cmd =~/s/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.src.dir)                inp << @f.place_file.src.rel              end -            if @opt.cmd =~/S/ \ +            if (@opt.cmd =~/S/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.sisupod.dir)                inp << @f.place_file.sisupod.rel              end -            if @opt.cmd =~/p/ +            if (@opt.cmd =~/p/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/)                inp << @f.output_path.pdf.rel + '/' + @opt.fnb + '*'              end -            if @opt.cmd =~/y/ \ +            if (@opt.cmd =~/Q/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +            && FileTest.file?(@f.place_file.qrcode_md.dir) +              inp << @f.place_file.qrcode_md.rel << @f.place_file.qrcode_title.rel +            end +            if (@opt.cmd =~/y/ \ +            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \              && FileTest.file?(@f.place_file.manifest.dir)                inp << @f.place_file.manifest.rel              end @@ -3022,19 +3051,19 @@ WOK              else ''              end              local_css,images,images_external,images_system='','','','' +            images_gen=images=images_skin=images_system=local_css=''              if @opt.cmd =~/[hwbxX]/ \ -            and defined? @md.ec[:image] \ -            and not @md.ec[:image].empty? +            && (defined? @md.ec[:image]) \ +            && (@md.ec[:image].length > 0)                images=@f.place_file.images.rel + '/' + @md.ec[:image].join(" #{@f.output_path.images.rel}/") -              images_external="#{local_gen_image_external}/" + @md.ec[:image].join(" #{local_gen_image_external}/")              end -            images_gen=images=images_skin=images_system=local_css=''              if @opt.cmd =~/[yhwbxX]/ \ -            and defined? @md.ec[:image] \ -            and not @md.ec[:image].empty? +            && (defined? @md.ec[:image]) \ +            && (@md.ec[:image].length > 0)                local_css=@f.output_path.css.rel                images_system='_sisu/image_sys' -              if @f.output_path.images.rel.length > 0 +              if @f.output_path.images.rel.length > 0 \ +              && images_from_skin.length > 0                  images_skin=@f.place_file.images.rel + '/' + images_from_skin.join(" #{@f.output_path.images.rel}/")                end              end @@ -3199,9 +3228,9 @@ WOK        fnb=@fns[m,1]      end      def make_file(path,filename) -      if File.writable?("#{path}/."); File.new("#{path}/#{filename}",'w+') -      else SiSU_Screen::Ansi.new('',"is the file or directory writable?, could not create #{filename}").warn -      end +      (File.writable?("#{path}/.")) \ +      ? File.new("#{path}/#{filename}",'w+') +      : (SiSU_Screen::Ansi.new('',"is the file or directory writable?, could not create #{filename}").warn)      end      def touch_file(path,filename)        if File.writable?("#{path}/."); @@ -3375,12 +3404,24 @@ WOK          fn=base_filename.texinfo          file=make_file(path,fn)        end +      def info +        path=output_path.texinfo.dir +        make_path(path) +        fn=base_filename.info +        file=make_file(path,fn) +      end        def hash_digest          path=output_path.hash_digest.dir          make_path(path)          fn=base_filename.hash_digest          file=make_file(path,fn)        end +      def qrcode +        path=output_path.qrcode.dir +        make_path(path) +        fn=base_filename.qrcode +        make_file(path,fn) +      end        def manifest          path=output_path.manifest.dir          make_path(path) @@ -3594,6 +3635,33 @@ WOK          end          self        end +      def info +        def dir +          output_path.texinfo.dir + '/' + base_filename.info +        end +        def rel +          output_path.texinfo.rel + '/' + base_filename.info +        end +        self +      end +      def qrcode_title +        def dir +          output_path.qrcode.dir + '/' + base_filename.qrcode_title +        end +        def rel +          output_path.qrcode.rel + '/' + base_filename.qrcode_title +        end +        self +      end +      def qrcode_md +        def dir +          output_path.qrcode.dir + '/' + base_filename.qrcode_md +        end +        def rel +          output_path.qrcode.rel + '/' + base_filename.qrcode_md +        end +        self +      end        def manifest          def dir            output_path.manifest.dir + '/' + base_filename.manifest @@ -3758,7 +3826,7 @@ WOK            @md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft          end        end -      def texinfo +      def info          ft='info'          if @env.output_dir_structure.by_language_code?            @md.fnb + '.' + ft @@ -3766,6 +3834,14 @@ WOK            @md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft          end        end +      def texinfo +        ft='texinfo' +        if @env.output_dir_structure.by_language_code? +          @md.fnb + '.' + ft +        else +          @md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft +        end +      end        def hash_digest          ft='.txt'          if @env.output_dir_structure.by_language_code? @@ -3786,6 +3862,26 @@ WOK            'sitemap' + @md.lang_code_insert + ft          end        end +      def qrcode_title +        ft='.title.png' +        if @env.output_dir_structure.by_language_code? +          @md.fnb + ft +        elsif @env.output_dir_structure.by_filetype? +          @md.fnb + @md.lang_code_insert + ft +        else #fix +          'sisu_manifest' + @md.lang_code_insert + ft +        end +      end +      def qrcode_md +        ft='.md.png' +        if @env.output_dir_structure.by_language_code? +          @md.fnb + ft +        elsif @env.output_dir_structure.by_filetype? +          @md.fnb + @md.lang_code_insert + ft +        else #fix +          'sisu_manifest' + @md.lang_code_insert + ft +        end +      end        def manifest_txt          ft='.txt'          if @env.output_dir_structure.by_language_code? @@ -4411,6 +4507,24 @@ WOK          end          self        end +      def qrcode +        def ft +         'manifest/qrcode' +        end +        def dir +          set_path(ft).dir.abc +        end +        def url +          set_path(ft).url.abc +        end +        def rel +          set_path(ft).rel.abc +        end +        def rcp +          set_path(ft).rcp.abc +        end +        self +      end        def harvest          def ft           'site_metadata' diff --git a/lib/sisu/v3/texinfo.rb b/lib/sisu/v3/texinfo.rb index ab1b7c98..f0331513 100644 --- a/lib/sisu/v3/texinfo.rb +++ b/lib/sisu/v3/texinfo.rb @@ -98,7 +98,7 @@ module SiSU_TexInfo      def song        begin          tool=(@opt.cmd =~/[MVv]/) \ -        ?  "#{@env.program.texinfo} #{@md.file.output_path.texinfo.dir}/#{@md.file.base_filename.texinfo}" +        ?  "#{@env.program.texinfo} #{@md.file.output_path.texinfo.dir}/#{@md.file.base_filename.info}"          : "[#{@opt.f_pth[:lng_is]}] #{@opt.fns}"          tell=@opt.cmd=~/[MVvz]/ \          && @opt.cmd !~/q/ \ @@ -133,6 +133,7 @@ module SiSU_TexInfo        @md,@data=md,data        @env=SiSU_Env::Info_env.new(@md.fns)        @vz=SiSU_Env::Get_init.instance.skin +      @f=SiSU_Env::SiSU_file.new(@md)      end      def songsheet        begin @@ -142,6 +143,7 @@ module SiSU_TexInfo          @data=tail          output          makeinfo #KEEP reinstate when fixed #% +        place_info        rescue; STDERR.puts SiSU_Screen::Ansi.new(@md.opt.cmd,$!,$@).rescue        ensure        end @@ -363,19 +365,15 @@ module SiSU_TexInfo      def output        data=@data        data.compact! -      filename=%{#{@env.processing_path.texi}/#{@md.fnb}.texinfo} -      filename_texinfo=File.new(filename,'w+') -      puts filename if @md.opt.cmd =~/M/ -      data.each {|s| (filename_texinfo.puts s,"\n") if s} -      filename_texinfo.close -      file_info_src=%{#{@env.processing_path.texi}/#{@md.fnb}.info} -      file_info="#{@md.file.output_path.texinfo.dir}/#{@md.file.base_filename.texinfo}" -      SiSU_Env::SiSU_file.new(@md).mkdir -      system("cp #{file_info_src} #{file_info}") +      filename_texinfo=%{#{@env.processing_path.texi}/#{@md.fnb}.texinfo} +      file_texinfo=File.new(filename_texinfo,'w+') +      puts filename_texinfo if @md.opt.cmd =~/M/ +      data.each {|s| (file_texinfo.puts s,"\n") if s} +      file_texinfo.close      end      def makeinfo        if @md.fns =~/\.(?:-|ssm\.)?sst$/ -        m=/(.+?)\.([_-]?sst)$/.match(@md.fns) +        m=/(.+?)\.((?:-|ssm\.)?sst)$/.match(@md.fns)          fnb,sfx=m[1],m[2]          pwd=Dir.pwd          case sfx @@ -387,6 +385,13 @@ module SiSU_TexInfo          end          Dir.chdir(pwd)        end +      def place_info +        unless FileTest.directory?(@f.output_path.texinfo.dir) +          mkdir_p(@f.output_path.texinfo.dir) +        end +        info_src=%{#{@env.processing_path.texi}/#{@md.fnb}.info} +        system("cp #{info_src} #{@f.place_file.info.dir}") +      end      end    end  end diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index a6612175..d0193da4 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v3/urls.rb @@ -181,7 +181,7 @@ module SiSU_urls          SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.manpage_viewer} #{@md.file.output_path.manpage.dir}/#{@md.file.base_filename.manpage}").result        end        def pinfo(x,y) -        SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","pinfo -f #{@md.file.output_path.texinfo.dir}/#{@md.file.base_filename.texinfo}").result +        SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","pinfo -f #{@md.file.output_path.texinfo.dir}/#{@md.file.base_filename.info}").result        end        def po4a          def po(x,y) | 
