diff options
Diffstat (limited to 'lib/sisu/v6/options.rb')
-rw-r--r-- | lib/sisu/v6/options.rb | 157 |
1 files changed, 135 insertions, 22 deletions
diff --git a/lib/sisu/v6/options.rb b/lib/sisu/v6/options.rb index ae641be4..232481c8 100644 --- a/lib/sisu/v6/options.rb +++ b/lib/sisu/v6/options.rb @@ -537,6 +537,7 @@ module SiSU_Commandline mod << s when /^--(?:epub)$/ then c=c+'e' when /^--(?:od[ft])$/ then c=c+'o' + when /^--docbook$/ then c=c+'d' when /^--(?:pdf)$/ then c=c+'p' when /^--pdf-(?:a4|a5|b5|legal|letter)$/ then c=c+'p' when /^--pdf-(?:p|l|portrait|landscape)$/ then c=c+'L' @@ -554,8 +555,6 @@ module SiSU_Commandline when /^--(?:termsheet)$/ then c=c+'T' when /^--(?:manifest)$/ then c=c+'y' when /^--(?:qrcode)$/ then c=c+'Q' - when /^--(?:sqlite)$/ then c=c+'d' - when /^--(?:pg|pg?sql|postgresql)$/ then c=c+'D' when /^--(?:remote|rsync)$/ then c=c+'R' when /^--(?:scp)$/ then c=c+'r' when /^--(?:source)$/ then c=c+'s' @@ -587,8 +586,7 @@ module SiSU_Commandline extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \ and cmd !~/[mn]/ 'm' #% add ao - elsif ((cmd =~/[Dd]/ \ - or (mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/)) \ + elsif ((mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ and cmd !~/[mn]/ 'm' #% add ao @@ -596,18 +594,17 @@ module SiSU_Commandline end end if cmd !~/j/ - extra+=if cmd =~/[bHhwXxyz]/ \ + extra+=if cmd =~/[bdHhwXxyz]/ \ and cmd !~/[j]/ 'j' #% copy images else '' end end if cmd !~/y/ - extra+=if cmd =~/[abeHhIiNopQSstwXxz]/ \ + extra+=if cmd =~/[abdeHhIiNopQSstwXxz]/ \ and cmd !~/y/ 'ym' #% add manifest - elsif (cmd =~/[Dd]/ \ - or mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ + elsif mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ \ and files[0] !~/^remove$/ \ and cmd !~/y/ 'ym' #% add manifest @@ -916,7 +913,8 @@ module SiSU_Commandline || mod.inspect =~/"--xml-dom"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_docbook_book]=mod.inspect =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/ \ + act[:xml_docbook_book]=(cmd =~/d/ \ + || mod.inspect =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } act[:xml_fictionbook]=(cmd =~/f/ \ @@ -967,19 +965,134 @@ module SiSU_Commandline || mod.inspect =~/"--texinfo"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:psql]=(cmd =~/D/ \ - || mod.inspect =~/"--pg"|"--pgsql"/) \ - ? { bool: true, set: :on } - : { bool: false, set: :na } - act[:sqlite]=(cmd =~/d/ \ - || mod.inspect =~/"--sqlite"/) \ - && (mod.inspect =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ - ? { bool: true, set: :on } - : { bool: false, set: :na } - act[:sqlite_discrete]=(cmd =~/d/ \ - || mod.inspect =~/"--sql"|"--sqlite"/) \ - && (mod.inspect =~/"--both"/ \ - || mod.inspect !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ + act[:psql]=if mod.inspect =~/"--pg-\S+"/ \ + or ((mod.inspect =~/"--pg"/) \ + && (mod.inspect \ + =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/)) + act[:psql_createdb]=if mod.inspect \ + =~/"--pg-createdb"|"--createdb"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + if mod.inspect \ + =~/"--pg-recreate(?:all)?"|"--recreate(?:all)?"/ + act[:psql_drop]={ bool: true, set: :on } + act[:psql_create]={ bool: true, set: :on } + else + act[:psql_drop]=if mod.inspect \ + =~/"--pg-dropall"|"--dropall"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + act[:psql_create]=if mod.inspect \ + =~/"--pg-create(?:all)?"|"--create(?:all)?"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + end + act[:psql_import]=if mod.inspect \ + =~/"--pg-import"|"--import"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + act[:psql_update]=if mod.inspect \ + =~/"--pg-update"|"--update"/ + act[:psql_remove]={ bool: true, set: :on } + { bool: true, set: :on } + else + act[:psql_remove]=if mod.inspect \ + =~/"--pg-remove"|"--remove"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + { bool: false, set: :na } + end + { bool: true, set: :on } + else + act[:psql_createdb]= + { bool: false, set: :na } + act[:psql_drop]= + { bool: false, set: :na } + act[:psql_create]= + { bool: false, set: :na } + act[:psql_import]= + { bool: false, set: :na } + act[:psql_update]= + { bool: false, set: :na } + act[:psql_remove]= + { bool: false, set: :na } + { bool: false, set: :na } + end + act[:sqlite]=if (mod.inspect =~/"--sqlite-\S+"/) \ + or ((mod.inspect =~/"--sqlite"/) \ + && (mod.inspect \ + =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/)) + act[:sqlite_createdb]=if mod.inspect \ + =~/"--sqlite-createdb"|"--createdb"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + if mod.inspect \ + =~/"--sqlite-recreate(?:all)?"|"--recreate(?:all)?"/ + act[:sqlite_drop]={ bool: true, set: :on } + act[:sqlite_create]={ bool: true, set: :on } + else + act[:sqlite_create]=if mod.inspect \ + =~/"--sqlite-create(?:all)?"|"--create(?:all)?"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + act[:sqlite_drop]=if mod.inspect \ + =~/"--sqlite-dropall"|"--dropall"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + end + act[:sqlite_import]=if mod.inspect \ + =~/"--sqlite-import"|"--import"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + act[:sqlite_update]=if mod.inspect \ + =~/"--sqlite-update"|"--update"/ + act[:sqlite_remove]={ bool: true, set: :on } + { bool: true, set: :on } + else + act[:sqlite_remove]=if mod.inspect \ + =~/"--sqlite-remove"|"--sqlite-remove"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + { bool: false, set: :na } + end + { bool: true, set: :on } + else + act[:sqlite_createdb]= + { bool: false, set: :na } + act[:sqlite_drop]= + { bool: false, set: :na } + act[:sqlite_create]= + { bool: false, set: :na } + act[:sqlite_import]= + { bool: false, set: :na } + act[:sqlite_update]= + { bool: false, set: :na } + act[:sqlite_remove]= + { bool: false, set: :na } + { bool: false, set: :na } + end + act[:sqlite_discrete]=mod.inspect =~/"--sql"|"--sqlite"/ \ + && (mod.inspect !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } act[:harvest]=(mod.inspect =~/"--harvest"/) \ |