diff options
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v3 | 13 | ||||
| -rw-r--r-- | lib/sisu/v3/hub.rb | 156 | ||||
| -rw-r--r-- | lib/sisu/v3/options.rb | 356 | 
3 files changed, 380 insertions, 145 deletions
| diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3 index 6af9b0d2..b584eee7 100644 --- a/data/doc/sisu/CHANGELOG_v3 +++ b/data/doc/sisu/CHANGELOG_v3 @@ -20,15 +20,22 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.0.7.orig.tar.gz    sisu_3.0.7-1.dsc    sisu_3.0.7-1.debian.tar.gz -  * options, maintenance -M (--maintenance, new alias --keep-processing-files) -    * new alias --keep-processing-files (see Bug#622902) -    * minor rearrangement of regex +  * options +    * new alias (for -M / --maintenance) --keep-processing-files (see Bug#622902) +    * introduce opt.act booleans made up of opt.cmd and opt.mod, more flexible +      than overused cmd characters +    * where possible move option setting from hub to options +    * separate out a few methods    * odf:odt      * maintenance, processing in separate subdirectories, that can be        kept      * odt.zip (bin) directory renamed odt from odf +  * hub +    * some option setting moved to options +    * favor use of opt.act over opt.cmd where appropriate +    * sysenv, odf:odt paths adjusted for changes in maintenance and odt.zip    * cgi, sample-search-form diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb index 7794c08c..e20b4293 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v3/hub.rb @@ -287,58 +287,28 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/        if @opt.cmd =~/E/ # re-assign character          require 'profile'        end -      if @opt.mod.inspect =~/--harvest/ +      if @opt.act[:harvest]          require_relative 'harvest'                      # harvest.rb -      end -      if @opt.mod.inspect =~/--convert|--to|--from/ +      elsif @opt.mod.inspect =~/--convert|--to|--from/          require_relative 'sst_convert_markup'           # sst_convert_markup.rb -      end -      if @opt.cmd =~/([AabCcDdeFfGgHhIiJjkLMmNnOoPpQqRrSsTtUuVvwWXxYyZ_0-9])/ \ +      elsif @opt.cmd =~/([AabCcDdeFfGgHhIiJjkLMmNnOoPpQqRrSsTtUuVvwWXxYyZ_0-9])/ \        and @opt.cmd =~/^-/ \        and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \        or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/          @@tell=SiSU_Screen::Ansi.new(@opt.cmd)          @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX          flag=SiSU_Env::Info_processing_flag.new -        extra='' -        if @opt.cmd !~/[mn]/ -          extra+=if @opt.cmd =~/[abegHhIiNOoPpTtwXxyz]/ \ -          and @opt.cmd !~/[mn]/ -            'm'                        #% add dal -          elsif ((@opt.cmd =~/[Dd]/ \ -          or (@opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/)) \ -          and @opt.mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ -          and @opt.cmd !~/[mn]/ -            'm'                                                                          #% add dal -          else '' -          end -        end -        if @opt.cmd !~/y/ -          extra+=if @opt.cmd =~/[abeHhIiNopsSstwXxz]/ \ -          and @opt.cmd !~/y/ -            'ym'            #% add manifest -          elsif (@opt.cmd =~/[Dd]/ \ -          or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ -          and @opt.files[0] !~/^remove$/ \ -          and @opt.cmd !~/y/ -            'ym' #% add manifest -          else '' -          end -        end -        @opt.cmd=@opt.cmd + extra -        opt=@opt.cmd.scan(/CC|\S/) -        @opt.cmd=opt.uniq.join -        if @opt.cmd =~/[vVM]/          #% version information +        if @opt.cmd =~/[vVM]/                              #% version information            if @opt.cmd =~/V/ \ -          and @opt.files.empty?        #% environment +          and @opt.files.empty?                            #% environment              SiSU_Help::Help.new('env',@opt).environment            else SiSU_Help::Help.new('env',@opt).sisu_version            end          end -        if @opt.cmd =~/^-L$/           #% version information +        if @opt.act[:license]                              #% license information            SiSU_Help::Help.new('license',@opt).help_request          end -        if @opt.cmd =~/m/i             #% -m for -C +        if @opt.act[:dal] or @opt.act[:maintenance]        #% --maintenance, -m for -C            path={}            path[:css]=@@env.path.output + '/_sisu/css'            path[:xml]=@@env.path.output + '/_sisu/xml' @@ -356,7 +326,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/              end            end          end -        if @opt.cmd =~/C/              #% -C initialize/configure +        if @opt.act[:site_init]                            #% --init-site, -C initialize/configure            op('conf','configure site')            if @opt.cmd =~/R/              if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ @@ -372,19 +342,19 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/              end            end          end -        if @opt.cmd =~/F/              #% -F cgi sample search form +        if @opt.act[:sample_search_form]                   #% --sample-search-form, -F cgi sample search form            Operations.new(@opt).cgi          end -        if @opt.cmd =~/W/              #% -W webrick #@argv==port +        if @opt.act[:webrick]                              #% --webrick, -W webrick            Operations.new(@opt).webrick          end -        if @opt.cmd =~/Z/              #% -Z wipe previous output clean +        if @opt.cmd =~/Z/                                  #% -Z wipe previous output clean            op('zap','Zap, deletions')          end -        if @opt.cmd =~/s/              #% -s sisu source +        if @opt.act[:share_source]            op('share_src','SiSU markup source')          end -        if @opt.cmd =~/m/              #% -m is remote url requested? (download if) +        if @opt.act[:dal]            @retry_count= -1            begin              path_image='./_sisu/processing/external_document/image' @@ -400,12 +370,12 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/                  @get_p << re_p.match(fns)[1] if re_p                end              end -            if @get_s.length > 0       #% remote markup file .sst +            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 -            if @get_p.length > 0       #% remote sisupod +            if @get_p.length > 0                           #% remote sisupod                require_relative 'remote'                 # remote.rb                SiSU_Remote::Get.new(@opt,@get_p).sisupod              end @@ -417,48 +387,57 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/            end            @opt.files=@opt.files.collect {|x| x=x.gsub(/(?:https?|file):\/\/\S+\/(\S+)\.sst$/,'\1.-sst') }          end -        if @opt.cmd=~/m/               #% -m dal +        if @opt.act[:dal]                                  #%--dal, -m            op('dal','dal')          end          @opt.files=@opt.files.collect {|x| x=x.gsub(/\.ssm$/,'.ssm.sst') } -        if @opt.cmd =~/S/ -          op('sisupod_make','sisupod (zip)') #% -S make sisupod +        if @opt.act[:sisupod]                              #% --sisupod, -S make sisupod +          op('sisupod_make','sisupod (zip)')            if @opt.fns=~/\.kdi._sst/ -            op('share_src_kdissert','kdissert (kdi)') #% -S share kdissert source +            op('share_src_kdissert','kdissert (kdi)')      #% -S share kdissert source            end          end -        if @opt.cmd =~/N/; op('digests','digests')             #% -N digest tree +        if @opt.act[:hash_digests]                         #% --hash-digests, -N digest tree +          op('digests','digests')          end -        if @opt.cmd =~/[hHz]/; op('html','html')               #% -h -H -z html css +        if @opt.act[:html]                                 #% --html, -h +          op('html','html')          end -        if @opt.cmd =~/[at]/; op('plaintext','plaintext')         #% -t -a #-A -f -e -E plaintext -a creates ms-dos type; -A creates unix type, plaintext file +        if @opt.act[:txt]                                  #% --txt, -t -a +          #-A -f -e -E plaintext -a creates ms-dos type; -A creates unix type, plaintext file +          op('plaintext','plaintext')          end -        #if @opt.cmd =~/g/; op('git','git')         #% -g git -        #end -        #if @opt.cmd =~/g/; op('wikispeak','wikispeak')         #% -g wiki -        #end -        if @opt.cmd =~/e/; op('epub','ePub')                   #% -e epub +        if @opt.act[:epub]                                 #% --epub, -e +          op('epub','ePub')          end -        if @opt.cmd =~/o/; op('odf','OpenDocument')            #% -o opendocument +        if @opt.act[:odt]                                  #% --odt, -o opendocument +          op('odf','OpenDocument')          end -        if @opt.cmd =~/x/; op('xml','xml sax')                 #% -x xml sax type +        if @opt.act[:xml_sax]                              #% --xml-sax, -x xml sax type +          op('xml','xml sax')          end -        if @opt.cmd =~/X/; op('xml_dom','xml dom')             #% -X xml dom type +        if @opt.act[:xml_dom]                              #% --xml-dom, -x xml dom type +          op('xml_dom','xml dom')          end -        if @opt.cmd =~/f/; op('xml_fictionbook','xml fictionbook') #% -f xml fictionbook +        if @opt.act[:fictionbook]                          #% --fictionbook, -f fictionbook xml +          op('xml_fictionbook','xml fictionbook')          end -        if @opt.cmd =~/b/; op('xhtml','xhtml sax')             #% -b xhtml sax type +        if @opt.act[:xhtml]                                #% --xhtml, -b xhtml +          op('xhtml','xhtml sax')          end -        if @opt.cmd =~/w/; op('concordance','Concordance')     #% -w concordance +        if @opt.act[:concordance]                          #% --concordance, -w +          op('concordance','Concordance')          end -        if @opt.cmd =~/O/; op('xml_md_oai_pmh_dc','OAI PMH')   #% -O open archive initiative, metadata harvesting +        if @opt.cmd =~/O/                                  #% -O open archive initiative, metadata harvesting +          op('xml_md_oai_pmh_dc','OAI PMH')          end -        if @opt.cmd =~/P/; op('po4a','po4a')                   #% -P +        if @opt.act[:po4a]                                 #% --po4a, -P +          op('po4a','po4a')          end -        if @opt.cmd =~/g/              #% -g sisu git +        if @opt.act[:git]                                  #% --git, -g sisu git            op('git','SiSU Git')          end -        if @opt.cmd =~/T/                                      #% -T termsheet/standard form +        if @opt.cmd =~/T/                                  #% -T termsheet/standard form            SiSU_Help::Help.new('termsheet').help_request            @opt.files.each do |fns|              if FileTest.file?(fns) @@ -472,32 +451,39 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/            end            Operations.new.counter          end -        if @opt.cmd =~/k/; op('xml_scaffold','XML scaffold')                   #% -T temporary tests +        if @opt.cmd =~/k/                                  #% -T temporary tests +          op('xml_scaffold','XML scaffold')          end -        if @opt.cmd =~/p/; op('texpdf','LaTeX pdf')                            #% -p latex/ texpdf +        if @opt.act[:pdf]                                  #% --pdf, -p latex/ texpdf +          op('texpdf','LaTeX pdf')          end -        if @opt.cmd =~/i/; op('manpage','manpage')                             #% -i manpage +        if @opt.act[:manpage]                              #% --manpage, -i +          op('manpage','manpage')          end -        if @opt.cmd =~/I/; op('texinfo','TeX Info')                            #% -I texinfo (i taken by db import) +        if @opt.act[:texinfo]                              #% --texinfo, -I +          op('texinfo','TeX Info')          end -        if @opt.cmd =~/D/ \ -        or @opt.mod.inspect =~/--pgsql/; op('dbi','postgresql')                #% -D DB postgresql +        if @opt.act[:psql]                                 #% --pg, -D DB postgresql +          op('dbi','postgresql')          end -        if @opt.cmd =~/d/ \ -        or @opt.mod.inspect =~/--sqlite/; op('dbi','sqlite')                   #% -d DB sqlite +        if @opt.act[:sqlite]                               #% --sqlite, -d DB sqlite +          op('dbi','sqlite')          end -        #if @opt.cmd =~/G/; Operations.new(@opt).cgi                            #% -G cgi - used to make dbi intecface -        #end -        if @opt.cmd=~/m/; op('embedded','Embedded Content')                    #% -m embedded content +        if @opt.act[:dal]                                  #% --dal, -m embedded content +          op('embedded','Embedded Content')          end -        if @opt.cmd =~/y/; op('manifest','Manifest')                           #% -y manifest +        if @opt.act[:manifest]                             #% --manifest, -y +          op('manifest','Manifest')          end -        if @opt.cmd =~/Y/; op('sitemaps','Sitemap')                            #% -Y sitemap +        if @opt.act[:sitemap]                              #% --sitemap, -Y +          op('sitemaps','Sitemap')          end          if @opt.mod.inspect !~/--harvest/ -          if @opt.cmd =~/r/; op('remote','scp')                                #% -r copy to remote server +          if @opt.act[:scp]                                #% -r copy to remote server +            op('remote','scp')            end -          if @opt.cmd =~/R/; op('remote','rsync')                              #% -R copy to remote server +          if @opt.act[:rsync]                              #% -R copy to remote server +            op('remote','rsync')            end          else          end @@ -517,20 +503,20 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/        elsif @opt.mod.inspect =~/--identify/          require_relative 'sst_identify_markup'          # sst_identify_markup.rb          markup_version=SiSU_Markup::Markup_identify.new(@opt).markup_version? -      elsif  @opt.mod.inspect =~/--about/                            #% help instructions +      elsif  @opt.mod.inspect =~/--about/                  #% help instructions          if @opt.mod.inspect =~/--about/ \          and not @opt.what.empty?            SiSU_Help::Help.new(@opt.what,'color_off').help_request          else SiSU_Help::Help.new('list','color_off').help_request          end -      elsif  @opt.mod.inspect =~/--sitemaps/                                   #% sitemaps +      elsif  @opt.mod.inspect =~/--sitemaps/               #% sitemaps          require_relative 'sitemaps'                     # sitemaps.rb          SiSU_Sitemaps::Source.new(@opt).read          if @opt.cmd =~/R/            require_relative 'remote'                     # remote.rb            SiSU_Remote::Put.new(@opt).rsync_sitemaps          end -      else                                                                     #% help instructions +      else                                                 #% help instructions          unless @opt.mod.inspect =~/--convert|--to|--from|--harvest/            if @opt.mod.inspect =~/--help/ \            and not @opt.what.empty? diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index 89efb0a6..a1a448e6 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -61,11 +61,11 @@ module SiSU_commandline    require "pathname"    require_relative 'sysenv'                             # sysenv.rb    class Options -    attr_accessor :cmd,:mod,:f_pths,:files,:paths,:f_pth,:pth,:fns,:fnb,:fnc,:fncb,:what +    attr_accessor :cmd,:mod,:act,:f_pths,:files,:paths,:f_pth,:pth,:fns,:fnb,:fnc,:fncb,:lng,:what      def initialize(a)        @a=a        @cmd,@f_pth,@pth,@fns,@fnb,@fnc,@fncb,@what='','','','','','','','','' -      @f_pths,@files,@paths,@mod=[],[],[],[] +      @f_pths,@files,@paths,@mod,@act=Array.new(5){[]}        @env=SiSU_Env::Info_env.new        r=Px[:lng_lst].join('|')        #r.gsub!(/\|en\|/,'|') @@ -102,44 +102,27 @@ module SiSU_commandline      end      def init        a=@a -      c,w,s='','','' -      m,f,pth,z,ca=[],[],[],[],[] -      shortcut=SiSU_Env::Info_processing_flag.new -      a.each do |x| -        y=case x -        when /0/ -          (x=~/^-1\S+/) \ -          ? x.gsub(/^-0(\S+)/,shortcut.cf_0 + ' -\1') \ -          : x.gsub(/^-0/,shortcut.cf_0 + ' ') -        when /1/ -          (x=~/^-1\S+/) \ -          ? x.gsub(/^-1(\S+)/,shortcut.cf_1 + ' -\1') \ -          : x.gsub(/^-1/,shortcut.cf_1 + ' ') -        when /2/ -          (x=~/^-2\S+/) \ -          ? x.gsub(/^-2(\S+)/,shortcut.cf_2 + ' -\1') \ -          : x.gsub(/^-2/,shortcut.cf_2 + ' ') -        when /3/ -          (x=~/^-3\S+/) \ -          ? x.gsub(/^-3(\S+)/,shortcut.cf_3 + ' -\1') \ -          : x.gsub(/^-3/,shortcut.cf_3 + ' ') -        when /4/ -          (x=~/^-4\S+/) \ -          ? x.gsub(/^-4(\S+)/,shortcut.cf_4 + ' -\1') \ -          : x.gsub(/^-4/,shortcut.cf_4 + ' ') -        when /5/ -          (x=~/^-5\S+/) \ -          ? x.gsub(/^-5(\S+)/,shortcut.cf_5 + ' -\1') \ -          : x.gsub(/^-5/,shortcut.cf_5 + ' ') -        when /6/ -          (x=~/^-6\S+/) \ -          ? x.gsub(/^-6(\S+)/,shortcut.cf_5 + ' -\1') \ -          : x.gsub(/^-6/,shortcut.cf_5 + ' ') -        else x -        end -        s << " #{y}" unless y.empty? +      s=expand_numeric_shortcuts(a) +      q=set_files_and_paths_and_general_extract(s) +      @cmd,@mod=opt_cmd_and_mod_adjust(q[:cmd],q[:mod]) +      @what=q[:what] unless q[:what].empty? +      @paths = q[:paths] +      @files = q[:files] +      @f_pths = q[:f_pths] +      if @files.length > 0 \ +      and @cmd.empty? \ +      and @mod.length==0 #% if no other action called on filename given, default is sisu -0 [filename(s)] configured as flag default +        @cmd=shortcut.cf_0        end -      s.strip! +      SiSU_Screen::Ansi.new(@cmd,"\tsisu " + @cmd +  ' ' + @mod.join(' ') + ' ' + @files.join(' ') + "\n").print_brown if @cmd =~/[vVM]/ +#     @files.uniq! +      @act=opt_act +      @files +      self +    end +    def set_files_and_paths_and_general_extract(s) +      c,w='','' +      m,f,pth,z,lng=[],[],[],[],[]        a=s.split(/\s+/)        a.each do |x|          if x =~/^-[a-z0-5]+/i \ @@ -157,6 +140,10 @@ module SiSU_commandline              f << pt.split[1].to_s                #remove?              u=/.+?\/([^\/]+)(?:(?:\/(?:en|fr|es)$)|$)/              t=/.+\/(en|fr|es)/ +            lng << (pt.split[0].realpath.to_s[t,1]) \ +              ? pt.split[0].realpath.to_s[t,1] \ +              : nil +              #: ''              f_pths << {                pth: pt.split[0].realpath.to_s,                f: pt.split[1].to_s, @@ -176,6 +163,49 @@ module SiSU_commandline            puts "#{x} in #{a.join(' ')}?"          end        end +      { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng } +    end +    def expand_numeric_shortcuts(a) +      shortcut=SiSU_Env::Info_processing_flag.new +      s='' +      a.each do |x| +        y=case x +        when /0/ +          (x=~/^-1\S+/) \ +          ? x.gsub(/^-0(\S+)/,shortcut.cf_0 + ' -\1') \ +          : x.gsub(/^-0/,shortcut.cf_0 + ' ') +        when /1/ +          (x=~/^-1\S+/) \ +          ? x.gsub(/^-1(\S+)/,shortcut.cf_1 + ' -\1') \ +          : x.gsub(/^-1/,shortcut.cf_1 + ' ') +        when /2/ +          (x=~/^-2\S+/) \ +          ? x.gsub(/^-2(\S+)/,shortcut.cf_2 + ' -\1') \ +          : x.gsub(/^-2/,shortcut.cf_2 + ' ') +        when /3/ +          (x=~/^-3\S+/) \ +          ? x.gsub(/^-3(\S+)/,shortcut.cf_3 + ' -\1') \ +          : x.gsub(/^-3/,shortcut.cf_3 + ' ') +        when /4/ +          (x=~/^-4\S+/) \ +          ? x.gsub(/^-4(\S+)/,shortcut.cf_4 + ' -\1') \ +          : x.gsub(/^-4/,shortcut.cf_4 + ' ') +        when /5/ +          (x=~/^-5\S+/) \ +          ? x.gsub(/^-5(\S+)/,shortcut.cf_5 + ' -\1') \ +          : x.gsub(/^-5/,shortcut.cf_5 + ' ') +        when /6/ +          (x=~/^-6\S+/) \ +          ? x.gsub(/^-6(\S+)/,shortcut.cf_5 + ' -\1') \ +          : x.gsub(/^-6/,shortcut.cf_5 + ' ') +        else x +        end +        s << " #{y}" unless y.empty? +      end +      s.strip! +    end +    def opt_cmd_and_mod_adjust(c,m) +      cmd,mod,files=@cmd,@mod,@files        unless m.empty?          m.each do |m|            case m @@ -217,31 +247,237 @@ module SiSU_commandline            end          end        end +      ca=[]        unless c.empty?          c.gsub!(/-/,'')          c.scan(/CC|\S/) {|x| ca << x} -        @cmd= '-' + ca.uniq.join +        cmd= '-' + ca.uniq.join        end -      unless w.empty? ;  @what=w -      end -      @paths = pth -      @files = f -      @f_pths = f_pths -      if @files.length > 0 \ -      and @cmd.empty? \ -      and @mod.length==0 #% if no other action called on filename given, default is sisu -0 [filename(s)] configured as flag default -        @cmd=shortcut.cf_0 +      extra='' +      if cmd !~/[mn]/ +        extra+=if cmd =~/[abegHhIiNOoPpTtwXxyz]/ \ +        and cmd !~/[mn]/ +          'm'                        #% add dal +        elsif ((cmd =~/[Dd]/ \ +        or (mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/)) \ +        and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ +        and cmd !~/[mn]/ +          'm'                                                                          #% add dal +        else '' +        end        end -      SiSU_Screen::Ansi.new(@cmd,"\tsisu " + @cmd +  ' ' + @mod.join(' ') + ' ' + @files.join(' ') + "\n").print_brown if @cmd =~/[vVM]/ -#     @files.uniq! -      @fa=[] -      @files.each do |f| -        if f =~/\.sst$/ -        elsif f =~/\.ssm$/ +      if cmd !~/y/ +        extra+=if cmd =~/[abeHhIiNopsSstwXxz]/ \ +        and cmd !~/y/ +          'ym'            #% add manifest +        elsif (cmd =~/[Dd]/ \ +        or mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ +        and files[0] !~/^remove$/ \ +        and cmd !~/y/ +          'ym' #% add manifest +        else ''          end        end -      @files -      self +      cmd=cmd + extra +      cmds=cmd.scan(/CC|\S/) +      [cmds.uniq.join,mod] +    end +    def opt_act #note mod line commands have already been converted to command characters, cmd +      cmd,mod=@cmd,@mod +      act={} +      act[:license]=if cmd =~/L/ \ +      or mod.inspect =~/"--license/ +        true +      else false +      end +      act[:site_init]=if cmd =~/C/ \ +      or mod.inspect =~/"--init-site/ +        true +      else false +      end +      act[:verbose]=if cmd =~/v/ \ +      or mod.inspect =~/"--verbose"/ +        true +      else false +      end +      act[:quiet]=if cmd =~/q/ \ +      or mod.inspect =~/"--quiet"/ +        true +      else false +      end +      act[:color_state]=if mod.inspect =~/"--color-on"|"--color"/ +        true +      elsif mod.inspect =~/"--color-off"/ +        true +      else true #fix default color +      end +#     act[:color_toggle]=if cmd =~/c/ \ +#     or mod.inspect =~/"--color-toggle"/ +#       true +#     else false +#     end +      act[:maintenance]=if cmd =~/M/ \ +      or mod.inspect =~/"--maintenance|--keep-processing-files"/ +        true +      else false +      end +      act[:ocn]=if mod.inspect =~/"--no-ocn"/ +        false +      else true +      end +      act[:dal]=if cmd =~/m/ \ +      or mod.inspect =~/"--dal"/ +        true +      else false +      end +      act[:html]=if cmd =~/h/ \ +      or mod.inspect =~/"--html"/ +        true +      else false +      end +      act[:concordance]=if cmd =~/w/ \ +      or mod.inspect =~/"--concordance"/ +        true +      else false +      end +      act[:pdf]=if cmd =~/p/ \ +      or mod.inspect =~/"--pdf"/ +        true +      else false +      end +      act[:epub]=if cmd =~/e/ \ +      or mod.inspect =~/"--epub"/ +        true +      else false +      end +      act[:odt]=if cmd =~/o/ \ +      or mod.inspect =~/"--odf"/ +        true +      else false +      end +      act[:xml_sax]=if cmd =~/x/ \ +      or mod.inspect =~/"--xml-sax"/ +        true +      else false +      end +      act[:xml_dom]=if cmd =~/X/ \ +      or mod.inspect =~/"--xml-dom"/ +        true +      else false +      end +      act[:xhtml]=if cmd =~/b/ \ +      or mod.inspect =~/"--xhtml"/ +        true +      else false +      end +      act[:txt]=if cmd =~/[at]/ \ +      or mod.inspect =~/"--txt"/ +        true +      else false +      end +      act[:manpage]=if cmd =~/i/ \ +      or mod.inspect =~/"--manpage"/ +        true +      else false +      end +      act[:texinfo]=if cmd =~/I/ \ +      or mod.inspect =~/"--texinfo"/ +        true +      else false +      end +      act[:fictionbook]=if cmd =~/f/ \ +      or mod.inspect =~/"--fictionbook"/ +        true +      else false +      end +      act[:psql]=if cmd =~/D/ \ +      or mod.inspect =~/"--pg"|"--pgsql"/ +        true +      else false +      end +      act[:sqlite]=if cmd =~/d/ \ +      or mod.inspect =~/"--sqlite"/ +        true +      else false +      end +      act[:harvest]=if mod.inspect =~/"--harvest"/ +        true +      else false +      end +      act[:po4a]=if mod.inspect =~/"--po4a"|"--po"/ +        true +      else false +      end +      act[:git]=if cmd =~/g/ \ +      or mod.inspect =~/"--git"/ +        true +      else false +      end +      act[:hash_digests]=if cmd =~/N/ \ +      or mod.inspect =~/"--hash-digests"/ +        true +      else false +      end +      act[:sample_search_form]=if cmd =~/F/ \ +      or mod.inspect =~/"--sample-search-form"/ +        true +      else false +      end +      act[:webrick]=if cmd =~/W/ \ +      or mod.inspect =~/"--webrick"/ +        true +      else false +      end +      act[:share_source]=if cmd =~/s/ \ +      or mod.inspect =~/"--source"/ +        true +      else false +      end +      act[:sisupod]=if cmd =~/S/ \ +      or mod.inspect =~/"--sisupod"/ +        true +      else false +      end +      act[:scp]=if cmd =~/r/ \ +      or mod.inspect =~/"--scp"/ +        true +      else false +      end +      act[:rsync]=if cmd =~/R/ \ +      or mod.inspect =~/"--rsync"/ +        true +      else false +      end +      act[:delete_output]=if cmd =~/z/ \ +      or mod.inspect =~/"--delete"|"--zap"/ +        true +      else false +      end +      act[:urls_all]=if cmd =~/U/ \ +      or mod.inspect =~/"--urls-all"/ +        true +      else false +      end +      act[:urls_seleted]=if cmd =~/u/ \ +      or mod.inspect =~/"--urls"/ +        true +      else false +      end +      act[:sitemap]=if cmd =~/Y/ \ +      or mod.inspect =~/"--sitemap"/ +        true +      else false +      end +      act[:manifest]=if cmd =~/y/ \ +      or mod.inspect =~/"--manifest"/ +        true +      else false +      end +      act[:help]=if mod.inspect =~/"--help/ +        true +      else false +      end +      @act=act      end      def cmd        @cmd @@ -249,12 +485,18 @@ module SiSU_commandline      def mod        @mod      end +    def act +      @act +    end      def f_pth        @f_pth      end      def pth        @pth      end +    def lng +      @lng +    end      def fns        @fns      end | 
