diff options
Diffstat (limited to 'lib/sisu/v3/options.rb')
| -rw-r--r-- | lib/sisu/v3/options.rb | 84 | 
1 files changed, 56 insertions, 28 deletions
| diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index c4dbf812..c7789f3a 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -7,7 +7,8 @@   * Author: Ralph Amissah - * Copyright: (C) 1997 - 2012, Ralph Amissah, All Rights Reserved. + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +   2007, 2008, 2009, 2010, 2011, 2012 Ralph Amissah, All Rights Reserved.   * License: GPL 3 or later: @@ -33,9 +34,7 @@     <http://www.fsf.org/licensing/licenses/gpl.html>     <http://www.gnu.org/licenses/gpl.html> -   <http://www.jus.uio.no/sisu/gpl.fsf/toc.html> -   <http://www.jus.uio.no/sisu/gpl.fsf/doc.html> -   <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt> +   <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>   * SiSU uses:     * Standard SiSU markup syntax, @@ -47,7 +46,7 @@     <http://www.sisudoc.org>   * Download: -   <http://www.jus.uio.no/sisu/SiSU/download.html> +   <http://www.sisudoc.org/sisu/en/SiSU/download.html>   * Ralph Amissah     <ralph@amissah.com> @@ -197,6 +196,7 @@ module SiSU_Commandline      def set_files_and_paths_and_general_extract(s)        c,w='',''        m,f,pth,z,lng,lngs=[],[],[],[],[],[] +      lng_is=''        a=s.split(/\s+/)        r_l=Px[:lng_lst].join('|')        a.uniq.each do |x| @@ -209,7 +209,43 @@ module SiSU_Commandline              m << x            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+/ \ +          if x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/ +            if x =~/^(?:https?|file):\/\/\S+/ #\ +            end +            pwd=Dir.pwd +            fn_pod=x.gsub(/.+?([^\/]+)\.txz$/,'\1') +            fullname=@env.processing_path.processing + '/sisupod/' + fn_pod +            pt=Pathname.new(fullname) +            FileUtils::mkdir_p(pt.to_s) +            Dir.chdir(pt.realpath) +            options=s.gsub(/(\s+--?\S+)+.+/,'\1') +            system(" +              chdir #{fullname} +              tar xaf #{x} +              chdir #{pwd} +            ") +            Dir.chdir(pt.realpath.to_s + '/sisupod/doc') +            r=Px[:lng_lst].join('|') +            Dir.entries("#{fullname}/sisupod/doc").each do |d_lng| +              if d_lng =~/^(?:#{r})$/ +                Dir.chdir(pt.realpath.to_s + "/sisupod/doc/#{d_lng}") +                filenames=Dir.glob("*.ss[mt]") +                filenames.each do |fn| +                  f_pths << { +                    pth: "#{fullname}/sisupod/doc/#{d_lng}", +                    f: "#{fn}", +                    pth_stub: 'doc', +                    lng: d_lng, +                    lng_is: d_lng, +                    url_base: '', +                    url: '' +                  } +                  Dir.chdir(pwd) +                  f << fn +                end +              end +            end +          elsif x =~/^(?:https?|file):\/\/\S+/ \            and x =~/\S+?\.ss[mt]$/              r_url=/(http:\/\/\S+?\/\S+?\/src(?:\/(?:#{r_l}))?)\//              url_base = (x[r_url,1]) @@ -253,12 +289,7 @@ module SiSU_Commandline                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) -### FIX              pt=Pathname.new(x)              pth << pt.split[0].realpath.to_s     #remove?              f << pt.split[1].to_s                #remove? @@ -267,14 +298,7 @@ module SiSU_Commandline              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_l})\.ss[tm]/ -              $1 -            else lng_base -            end -            lng_is =if l_p +            lngs << lng_is = if l_p                l_p              elsif x =~/~(#{r_l})\.ss[tm]/                $1 @@ -284,14 +308,11 @@ module SiSU_Commandline                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: lng_is,                lng_is: lng_is,                url_base: nil,                url: nil              } -#           Dir.chdir(pt.split[0].realpath)            else  puts "file not found: #{x}"            end          elsif x =~ /\.termsheet\.rb$/ @@ -302,7 +323,7 @@ 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, lngs: lngs } +      { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng_is, lngs: lngs }      end      def expand_numeric_shortcuts(a)        shortcut=SiSU_Env::InfoProcessingFlag.new @@ -349,7 +370,7 @@ module SiSU_Commandline          m.each do |m|            case m            when /^--(?:color-toggle)$/;                       c=c+'c' -          when /^--(?:configure)$/;                          c=c+'CC' +          when /^--(?:configure|init-site)$/;                c=c+'CC'            when /^--(?:dal?|machine|abstraction|abs)$/;       c=c+'m'            when /^--(?:txt|text|plaintext)$/;                 c=c+'t'            when /^--(?:html)$/;                               c=c+'h' @@ -442,7 +463,7 @@ module SiSU_Commandline        ? { bool: true, set: :on }        : { bool: false, set: :na }        act[:site_init]=(cmd =~/C/ \ -      || mod.inspect =~/"--init-site/) \ +      || mod.inspect =~/"--init-site"|"--configure"/) \        ? { bool: true, set: :on  }        : { bool: false, set: :na }        act[:rc]=if mod.inspect =~/"--rc=/ @@ -508,8 +529,15 @@ module SiSU_Commandline          { bool: false, set: :off, off: off_list}        else { bool: true, set: :na, off: [] }        end -      act[:ocn]= -      if mod.inspect =~/"--inc-ocn"/ +      act[:output_by]=if mod.inspect =~/"--(?:output-)?by-language"/ +        { set: :language } +      elsif mod.inspect =~/"--(?:output-)?by-filename"/ +        { set: :filename } +      elsif mod.inspect =~/"--(?:output-)?by-filetype"/ +        { set: :filetype } +      else { set: :na } +      end +      act[:ocn]=if mod.inspect =~/"--inc-ocn"/          { bool: true, set: :on }        elsif mod.inspect =~/"--(?:exc|no)-ocn"/ \        || act[:switch][:off].inspect =~/"ocn"/ | 
