aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v4/options.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v4/options.rb')
-rw-r--r--lib/sisu/v4/options.rb199
1 files changed, 142 insertions, 57 deletions
diff --git a/lib/sisu/v4/options.rb b/lib/sisu/v4/options.rb
index fbdfc8f3..3dca5253 100644
--- a/lib/sisu/v4/options.rb
+++ b/lib/sisu/v4/options.rb
@@ -462,50 +462,85 @@ module SiSU_Commandline
end
def opt_cmd_and_mod_adjust(c,m)
cmd,mod,files=@cmd,@mod,@files
+ if not m.empty? \
+ and m.inspect =~/"--pdf-/
+ ps,psa='',[]
+ mod << '--pdf'
+ m.each do |m|
+ if m =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/
+ mod << '--landscape'
+ end
+ if m =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/
+ mod << '--portrait'
+ end
+ if m =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/
+ if m =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/
+ mod << '--papersize-a4'
+ end
+ if m =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/
+ mod << '--papersize-a5'
+ end
+ if m =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/
+ mod << '--papersize-b5'
+ end
+ if m =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/
+ mod << '--papersize-letter'
+ end
+ if m =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/
+ mod << '--papersize-legal'
+ end
+ end
+ end
+ mod=mod.uniq
+ end
unless m.empty?
m.each do |m|
case m
- when /^--(?:color-toggle)$/; c=c+'c'
- when /^--(?:color-off)$/; c=c+'k'
- 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'
- when /^--(?:html-scroll|html-seg)$/; c=c+'H'
+ when /^--(?:color-toggle)$/; c=c+'c'
+ when /^--(?:color-off)$/; c=c+'k'
+ 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'
+ when /^--(?:html-scroll|html-seg)$/; c=c+'H'
mod << m
- when /^--(?:epub)$/; c=c+'e'
- when /^--(?:od[ft])$/; c=c+'o'
- when /^--(?:pdf)$/; c=c+'p'
- when /^--(?:concordance|wordmap)$/; c=c+'w'
- when /^--(?:manpage|man)$/; c=c+'i'
- when /^--(?:texinfo)$/; c=c+'I'
- when /^--(?:xhtml)$/; c=c+'b'
- when /^--(?:xml-sax)$/; c=c+'x'
- when /^--(?:xml-dom)$/; c=c+'X'
- when /^--(?:images)$/; c=c+'j'
- when /^--(?:hash-digests)$/; c=c+'N'
- when /^--(?:po4a|pot?)$/; c=c+'P'
- when /^--(?:termsheet)$/; c=c+'T'
- when /^--(?:manifest)$/; c=c+'y'
- when /^--(?:qrcode)$/; c=c+'Q'
- when /^--(?:sqlite)$/; c=c+'d'
- when /^--(?:pg|pg?sql|postgresql)$/; c=c+'D'
- when /^--(?:remote|rsync)$/; c=c+'R'
- when /^--(?:scp)$/; c=c+'r'
- when /^--(?:source)$/; c=c+'s'
- when /^--(?:sisupod|pod)$/; c=c+'S'
- when /^--(?:git)$/; c=c+'g'
- when /^--(?:urls)$/; c=c+'U'
- when /^--(?:zap|delete)$/; c=c+'Z'
- when /^--(?:sample-search-form)$/; c=c+'F'
- when /^--(?:webserv|webrick)$/; c=c+'W'
- when /^--(?:profile)$/; c=c+'E'
- when /^--(?:maintenance|keep-processing-files)$/; c=c+'M'
- when /^--(?:verbose[=-]3)$/; c=c+'VM'
- when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/; c=c+'V'
- when /^--(?:verbose(?:[=-]1)?)$/; c=c+'v'
- when /^--(?:version)$/; c=c+'v'
- when /^--(?:verbose[=-]0|quiet|silent)$/; c=c+'q'
+ when /^--(?:epub)$/; c=c+'e'
+ when /^--(?:od[ft])$/; c=c+'o'
+ when /^--(?:pdf)$/; c=c+'p'
+ when /^--pdf-(?:a4|a5|b5|legal|letter)$/; c=c+'p'
+ when /^--pdf-(?:p|l|portrait|landscape)$/; c=c+'L'
+ when /^--pdf-(?:p(?:ortrait)?|l(?:andscape)?)-(?:a4|letter|a5|b5|legal)$/; c=c+'L'
+ when /^--pdf-(?:a4|letter|a5|b5|legal)-(?:p(?:ortrait)?|l(?:andscape)?)$/; c=c+'L'
+ when /^--(?:concordance|wordmap)$/; c=c+'w'
+ when /^--(?:manpage|man)$/; c=c+'i'
+ when /^--(?:texinfo)$/; c=c+'I'
+ when /^--(?:xhtml)$/; c=c+'b'
+ when /^--(?:xml-sax)$/; c=c+'x'
+ when /^--(?:xml-dom)$/; c=c+'X'
+ when /^--(?:images)$/; c=c+'j'
+ when /^--(?:hash-digests)$/; c=c+'N'
+ when /^--(?:po4a|pot?)$/; c=c+'P'
+ when /^--(?:termsheet)$/; c=c+'T'
+ when /^--(?:manifest)$/; c=c+'y'
+ when /^--(?:qrcode)$/; c=c+'Q'
+ when /^--(?:sqlite)$/; c=c+'d'
+ when /^--(?:pg|pg?sql|postgresql)$/; c=c+'D'
+ when /^--(?:remote|rsync)$/; c=c+'R'
+ when /^--(?:scp)$/; c=c+'r'
+ when /^--(?:source)$/; c=c+'s'
+ when /^--(?:sisupod|pod)$/; c=c+'S'
+ when /^--(?:git)$/; c=c+'g'
+ when /^--(?:urls)$/; c=c+'U'
+ when /^--(?:zap|delete)$/; c=c+'Z'
+ when /^--(?:sample-search-form)$/; c=c+'F'
+ when /^--(?:webserv|webrick)$/; c=c+'W'
+ when /^--(?:profile)$/; c=c+'E'
+ when /^--(?:maintenance|keep-processing-files)$/; c=c+'M'
+ when /^--(?:verbose[=-]3)$/; c=c+'VM'
+ when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/; c=c+'V'
+ when /^--(?:verbose(?:[=-]1)?)$/; c=c+'v'
+ when /^--(?:version)$/; c=c+'v'
+ when /^--(?:verbose[=-]0|quiet|silent)$/; c=c+'q'
else mod << m #mod only contains command modifiers; commands converted to character
end
end
@@ -518,7 +553,7 @@ module SiSU_Commandline
end
extra=''
if cmd !~/[mn]/
- extra+=if cmd =~/[abegHhIiNOoPpQTtwXxyz]/ \
+ extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \
and cmd !~/[mn]/
'm' #% add dal
elsif ((cmd =~/[Dd]/ \
@@ -561,8 +596,7 @@ module SiSU_Commandline
@act=@@act
else
act={}
- act[:license]=(cmd =~/L/ \
- || mod.inspect =~/"--license/) \
+ act[:license]=(mod.inspect =~/"--license/) \
? { bool: true, set: :on }
: { bool: false, set: :na }
act[:site_init]=(cmd =~/C/ \
@@ -765,16 +799,12 @@ module SiSU_Commandline
act[:html_seg]={ bool: true, set: :on }
{ bool: true, set: :on }
else
- act[:html_scroll]=if mod.inspect =~/"--html-scroll"/
- { bool: true, set: :on }
- else
- { bool: false, set: :na }
- end
- act[:html_seg]=if mod.inspect =~/"--html-seg"/
- { bool: true, set: :on }
- else
- { bool: false, set: :na }
- end
+ act[:html_scroll]=(mod.inspect =~/"--html-scroll"/) \
+ ? { bool: true, set: :on }
+ : { bool: false, set: :na }
+ act[:html_seg]=(mod.inspect =~/"--html-seg"/) \
+ ? { bool: true, set: :on }
+ : { bool: false, set: :na }
{ bool: false, set: :na }
end
act[:concordance]=(cmd =~/w/ \
@@ -785,10 +815,65 @@ module SiSU_Commandline
|| mod.inspect =~/"--images"/) \
? { bool: true, set: :on }
: { bool: false, set: :na }
- act[:pdf]=(cmd =~/p/ \
- || mod.inspect =~/"--pdf"/) \
- ? { bool: true, set: :on }
- : { bool: false, set: :na }
+ if (cmd =~/p/ \
+ || mod.inspect =~/"--pdf"/)
+ if mod.inspect =~/"--portrait"/
+ act[:pdf]= { bool: false, set: :na }
+ act[:pdf_l]={ bool: false, set: :na }
+ act[:pdf_p]={ bool: true, set: :on }
+ elsif mod.inspect =~/"--landscape"/
+ act[:pdf]= { bool: false, set: :na }
+ act[:pdf_l]={ bool: true, set: :on }
+ act[:pdf_p]={ bool: false, set: :na }
+ else
+ act[:pdf]= { bool: true, set: :on }
+ act[:pdf_l]={ bool: true, set: :on }
+ act[:pdf_p]={ bool: true, set: :on }
+ end
+ else
+ act[:pdf]= { bool: false, set: :na }
+ act[:pdf_p]= { bool: false, set: :na }
+ act[:pdf_l]= { bool: false, set: :na }
+ act[:pdf_a4]= { bool: false, set: :na }
+ act[:pdf_a5]= { bool: false, set: :na }
+ act[:pdf_b5]= { bool: false, set: :na }
+ act[:pdf_letter]={ bool: false, set: :na }
+ act[:pdf_legal]= { bool: false, set: :na }
+ end
+ if act[:pdf][:set]==:on \
+ or act[:pdf_p][:set]==:on \
+ or act[:pdf_l][:set]==:on
+ act[:pdf_a4]=if mod.inspect =~/"--a4"|--papersize-a4"/ \
+ or mod.inspect =~/"--papersize=\S*a4\b\S*"/ #--papersize=a4,a5
+ { bool: true, set: :on }
+ else
+ { bool: false, set: :na }
+ end
+ act[:pdf_a5]=if mod.inspect =~/"--a5"|"--papersize-a5"/ \
+ or mod.inspect =~/"--papersize=\S*a5\b\S*"/ #--papersize=a4,a5
+ { bool: true, set: :on }
+ else
+ { bool: false, set: :na }
+ end
+ act[:pdf_b5]=if mod.inspect =~/"--b5"|"--papersize-b5"/ \
+ or mod.inspect =~/"--papersize=\S*b5\b\S*"/
+ { bool: true, set: :on }
+ else
+ { bool: false, set: :na }
+ end
+ act[:pdf_letter]=if mod.inspect =~/"--letter"|"--papersize-letter"/ \
+ or mod.inspect =~/"--papersize=\S*letter\b\S*"/
+ { bool: true, set: :on }
+ else
+ { bool: false, set: :na }
+ end
+ act[:pdf_legal]=if mod.inspect =~/"--legal"|"--papersize-legal"/ \
+ or mod.inspect =~/"--papersize=\S*legal\b\S*"/
+ { bool: true, set: :on }
+ else
+ { bool: false, set: :na }
+ end
+ end
act[:epub]=(cmd =~/e/ \
|| mod.inspect =~/"--epub"/) \
? { bool: true, set: :on }