From 809034240a1be22cc00cb3b4c1df1dd2facdc8f8 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 8 Aug 2014 00:32:27 -0400 Subject: v5: merged v6 libraries * commandline, --act0 to --act9, rc-config with flag:act[0-9] * configurable command line options increased to 0 - 9 (instead of 0 - 5) * use --act0 to --act9 (previous flags -1 to -5; -0 to -9 now available) * default --act0 * rc config with flag:act0 to flag:act9 (previously roman numerals) * legacy roman numeral configuration works (for now) * use opt.act, code internals (simplify, cleaner; remove opt.cmd & opt.mod) * hub, further changes related to use of opt.act; hub file split --- lib/sisu/v5/ao.rb | 16 +- lib/sisu/v5/ao_composite.rb | 6 +- lib/sisu/v5/ao_endnotes.rb | 4 +- lib/sisu/v5/ao_expand_insertions.rb | 20 +- lib/sisu/v5/cgi.rb | 6 +- lib/sisu/v5/cgi_pgsql.rb | 2 +- lib/sisu/v5/cgi_sql_common.rb | 1 - lib/sisu/v5/cgi_sqlite.rb | 2 +- lib/sisu/v5/conf.rb | 18 +- lib/sisu/v5/db_import.rb | 8 +- lib/sisu/v5/db_remove.rb | 2 +- lib/sisu/v5/dbi.rb | 5 +- lib/sisu/v5/dbi_discrete.rb | 2 +- lib/sisu/v5/digests.rb | 2 +- lib/sisu/v5/dp.rb | 16 +- lib/sisu/v5/dp_identify_markup.rb | 2 +- lib/sisu/v5/dp_make.rb | 2 +- lib/sisu/v5/embedded.rb | 4 +- lib/sisu/v5/harvest.rb | 4 +- lib/sisu/v5/harvest_authors.rb | 113 ++- lib/sisu/v5/harvest_topics.rb | 120 ++- lib/sisu/v5/html.rb | 10 +- lib/sisu/v5/html_concordance.rb | 11 +- lib/sisu/v5/html_scroll.rb | 2 +- lib/sisu/v5/html_segments.rb | 2 +- lib/sisu/v5/html_tune.rb | 2 +- lib/sisu/v5/hub.rb | 637 ++-------------- lib/sisu/v5/hub_actions.rb | 585 ++++++++++++++ lib/sisu/v5/hub_options.rb | 966 +++++++++++++++--------- lib/sisu/v5/manifest.rb | 4 +- lib/sisu/v5/manpage.rb | 4 +- lib/sisu/v5/po4a.rb | 2 +- lib/sisu/v5/qrcode.rb | 23 +- lib/sisu/v5/rexml.rb | 2 +- lib/sisu/v5/se_createsite.rb | 37 +- lib/sisu/v5/se_db.rb | 4 +- lib/sisu/v5/se_file_op.rb | 2 +- lib/sisu/v5/se_filemap.rb | 4 +- lib/sisu/v5/se_hub_particulars.rb | 22 +- lib/sisu/v5/se_info_env.rb | 34 +- lib/sisu/v5/se_processing.rb | 186 ++++- lib/sisu/v5/se_programs.rb | 10 +- lib/sisu/v5/texinfo.rb | 4 +- lib/sisu/v5/texpdf.rb | 30 +- lib/sisu/v5/txt_asciidoc.rb | 2 +- lib/sisu/v5/txt_markdown.rb | 2 +- lib/sisu/v5/txt_plain.rb | 4 +- lib/sisu/v5/txt_rst.rb | 2 +- lib/sisu/v5/txt_textile.rb | 2 +- lib/sisu/v5/update.rb | 2 +- lib/sisu/v5/urls.rb | 910 +++++++++++----------- lib/sisu/v5/utils_screen_text_color.rb | 4 +- lib/sisu/v5/wikispeak.rb | 2 +- lib/sisu/v5/xhtml.rb | 4 +- lib/sisu/v5/xhtml_epub2.rb | 14 +- lib/sisu/v5/xhtml_epub2_concordance.rb | 6 +- lib/sisu/v5/xhtml_epub2_segments.rb | 2 +- lib/sisu/v5/xhtml_epub2_tune.rb | 2 +- lib/sisu/v5/xml_docbook5.rb | 6 +- lib/sisu/v5/xml_dom.rb | 4 +- lib/sisu/v5/xml_fictionbook2.rb | 2 +- lib/sisu/v5/xml_odf_odt.rb | 6 +- lib/sisu/v5/xml_sax.rb | 4 +- lib/sisu/v5/xml_scaffold_structure_collapsed.rb | 2 +- lib/sisu/v5/xml_scaffold_structure_sisu.rb | 2 +- lib/sisu/v5/zap.rb | 2 +- 66 files changed, 2271 insertions(+), 1653 deletions(-) create mode 100644 lib/sisu/v5/hub_actions.rb (limited to 'lib/sisu/v5') diff --git a/lib/sisu/v5/ao.rb b/lib/sisu/v5/ao.rb index d7b418f5..0a494184 100644 --- a/lib/sisu/v5/ao.rb +++ b/lib/sisu/v5/ao.rb @@ -124,7 +124,7 @@ module SiSU_AO : @opt.fns create_ao rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@@fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@@fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -145,7 +145,7 @@ module SiSU_AO ? read_fnc : @@ao_array.dup rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -166,7 +166,7 @@ module SiSU_AO ? read_idx_sst : @@idx_arr[:sst].dup #check rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -187,7 +187,7 @@ module SiSU_AO ? read_idx_raw : @@idx_arr[:tex].dup #check rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -208,7 +208,7 @@ module SiSU_AO ? read_idx_html : @@idx_arr[:html].dup rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -229,7 +229,7 @@ module SiSU_AO ? read_idx_xhtml : @@idx_arr[:xhtml].dup rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -250,7 +250,7 @@ module SiSU_AO ? read_map_nametags : @@map_arr[:nametags].dup rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -271,7 +271,7 @@ module SiSU_AO ? read_map_ocn_htmlseg : @@map_arr[:ocn_htmlseg].dup rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/ao_composite.rb b/lib/sisu/v5/ao_composite.rb index af194db7..5a183d65 100644 --- a/lib/sisu/v5/ao_composite.rb +++ b/lib/sisu/v5/ao_composite.rb @@ -114,7 +114,7 @@ module SiSU_Assemble end Dir.chdir(pwd) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -157,7 +157,7 @@ module SiSU_Assemble end tuned_file=tuned_file.flatten.compact rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -253,7 +253,7 @@ module SiSU_Assemble fns_array=IO.readlines(@opt.fns,'') insertions?(fns_array) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/ao_endnotes.rb b/lib/sisu/v5/ao_endnotes.rb index 5517cd87..e83cdfc3 100644 --- a/lib/sisu/v5/ao_endnotes.rb +++ b/lib/sisu/v5/ao_endnotes.rb @@ -76,11 +76,11 @@ module SiSU_AO_Endnotes endnote_ref=1 data.each do |dob| # manually numbered endnotes --> - if @md.opt.mod.inspect =~/--no-asterisk|--no-annotate/ + if @md.opt.selections.str =~/--no-asterisk|--no-annotate/ dob.obj=dob.obj. gsub(/#{Mx[:en_b_o]}\s.+?#{Mx[:en_b_c]}/,'') end - if @md.opt.mod.inspect =~/--no-dagger|--no-annotate/ + if @md.opt.selections.str =~/--no-dagger|--no-annotate/ dob.obj=dob.obj. gsub(/#{Mx[:en_b_o]}[+]\s.+?#{Mx[:en_b_c]}/,'') end diff --git a/lib/sisu/v5/ao_expand_insertions.rb b/lib/sisu/v5/ao_expand_insertions.rb index dce14ee4..47ac9887 100644 --- a/lib/sisu/v5/ao_expand_insertions.rb +++ b/lib/sisu/v5/ao_expand_insertions.rb @@ -66,14 +66,18 @@ module SiSU_AO_Insertions @md,@data=md,data end def output_filetypes_in_cmd(cmd_shortcut,lnk=nil) #make list of file types in shortcut command (as configured), e.g. when sisu -3 is used - cf_defaults=SiSU_Env::InfoProcessingFlag.new - cmd_list=case cmd_shortcut.inspect - when /0/ then cf_defaults.cf_0 - when /1/ then cf_defaults.cf_1 - when /2/ then cf_defaults.cf_2 - when /3/ then cf_defaults.cf_3 - when /4/ then cf_defaults.cf_4 - when /5/ then cf_defaults.cf_5 + act_defaults=SiSU_Env::InfoProcessingFlag.new + cmd_list=case cmd_shortcut.inspect #check on expectation, string v array + when /0/ then act_defaults.act_0.str + when /1/ then act_defaults.act_1.str + when /2/ then act_defaults.act_2.str + when /3/ then act_defaults.act_3.str + when /4/ then act_defaults.act_4.str + when /5/ then act_defaults.act_5.str + when /6/ then act_defaults.act_6.str + when /7/ then act_defaults.act_7.str + when /8/ then act_defaults.act_8.str + when /9/ then act_defaults.act_9.str end file_type_names={} file_type_names[:gen],file_type_names[:src]=[],[] diff --git a/lib/sisu/v5/cgi.rb b/lib/sisu/v5/cgi.rb index efea863c..201f028b 100644 --- a/lib/sisu/v5/cgi.rb +++ b/lib/sisu/v5/cgi.rb @@ -61,7 +61,7 @@ (pgsql sqlite) =end -module SiSU_CGI #% database building documents +module SiSU_CGI #% database building documents require_relative 'se' # se.rb require_relative 'cgi_pgsql' # cgi_pgsql.rb require_relative 'cgi_sqlite' # cgi_sqlite.rb @@ -71,9 +71,9 @@ module SiSU_CGI @webserv=@opt.files[0].to_s.strip end def read - if @opt.mod.inspect =~/--db[=-]["']?(?:pg|pg?sql|postgres(?:ql)?)["']+/ + if @opt.act[:psql][:set]==:on SiSU_CGI_PgSQL::SearchPgSQL.new(@opt,@webserv).pgsql - elsif @opt.mod.inspect =~/--db[=-](?:sqlite)/ + elsif @opt.act[:sqlite][:set]==:on SiSU_CGI_SQLite::SearchSQLite.new(@opt,@webserv).sqlite else puts <<-WOK diff --git a/lib/sisu/v5/cgi_pgsql.rb b/lib/sisu/v5/cgi_pgsql.rb index 633e20fc..e5b61cc1 100644 --- a/lib/sisu/v5/cgi_pgsql.rb +++ b/lib/sisu/v5/cgi_pgsql.rb @@ -60,7 +60,7 @@ ** Description: generates naive cgi search form for search of sisu database (pgsql) =end -module SiSU_CGI_PgSQL #% database building documents +module SiSU_CGI_PgSQL #% database building documents require_relative 'se' # se.rb require_relative 'cgi_sql_common' # cgi_sql_common.rb include SiSU_CGI_SQL diff --git a/lib/sisu/v5/cgi_sql_common.rb b/lib/sisu/v5/cgi_sql_common.rb index c760a9db..7fadb68e 100644 --- a/lib/sisu/v5/cgi_sql_common.rb +++ b/lib/sisu/v5/cgi_sql_common.rb @@ -64,7 +64,6 @@ module SiSU_CGI_SQL class CGI_Common def initialize(webserv,opt,image_src,dir) @webserv,@opt,@image_src,@env=webserv,opt,image_src,dir - @cmd=opt.cmd end def about <<-'WOK_SQL' diff --git a/lib/sisu/v5/cgi_sqlite.rb b/lib/sisu/v5/cgi_sqlite.rb index 531071c4..4644dbc0 100644 --- a/lib/sisu/v5/cgi_sqlite.rb +++ b/lib/sisu/v5/cgi_sqlite.rb @@ -60,7 +60,7 @@ ** Description: generates naive cgi search form for search of sisu database (sqlite) =end -module SiSU_CGI_SQLite #% database building documents +module SiSU_CGI_SQLite #% database building documents require_relative 'se' # se.rb require_relative 'cgi_sql_common' # cgi_sql_common.rb include SiSU_CGI_SQL diff --git a/lib/sisu/v5/conf.rb b/lib/sisu/v5/conf.rb index 820d0941..b126d320 100644 --- a/lib/sisu/v5/conf.rb +++ b/lib/sisu/v5/conf.rb @@ -206,10 +206,10 @@ module SiSU_Initialize rnc.close #xsd schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rng schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rnc if FileTest.file?(rnc_src) FileUtils::cp(rnc_src,rnc_file) @@ -228,10 +228,10 @@ module SiSU_Initialize rnc.close #xsd schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rng schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rnc if FileTest.file?(rnc_src) FileUtils::cp(rnc_src,rnc_file) @@ -250,10 +250,10 @@ module SiSU_Initialize rnc.close #xsd schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rng schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) #rnc if FileTest.file?(rnc_src) FileUtils::cp(rnc_src,rnc_file) @@ -268,7 +268,7 @@ module SiSU_Initialize rnc << @rxng.rnc_model_output_sax rnc.close schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) end def trang_rnc_model_input_dom rnc_file=@env.processing_path.ao + '/dom.rnc' @@ -277,7 +277,7 @@ module SiSU_Initialize rnc << @rxng.rnc_model_output_dom rnc.close schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) end def trang_rnc_model_input_node rnc_file=@env.processing_path.ao + '/node.rnc' @@ -286,7 +286,7 @@ module SiSU_Initialize rnc << @rxng.rnc_model_input_node rnc.close schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) - schema.relaxng(@opt.cmd) + schema.relaxng(@opt.selections.str) end end end diff --git a/lib/sisu/v5/db_import.rb b/lib/sisu/v5/db_import.rb index 791eef43..1f4dca51 100644 --- a/lib/sisu/v5/db_import.rb +++ b/lib/sisu/v5/db_import.rb @@ -79,7 +79,7 @@ module SiSU_DbImport @env=SiSU_Env::InfoEnv.new(@opt.fns) @dal="#{@env.processing_path.ao}" @fnb=if @opt.fns.empty? \ - or @opt.cmd.empty? + or @opt.selections.str.empty? '' else @md=SiSU_Param::Parameters.new(@opt).get @@ -233,7 +233,7 @@ module SiSU_DbImport @conn.exec("COMMIT") end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end sqlfn="#{@env.processing_path.sql}/#{@md.fnb}.sql" @@ -700,7 +700,7 @@ module SiSU_DbImport end end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -833,7 +833,7 @@ module SiSU_DbImport t=SiSU_DbTuple::LoadUrls.new(@conn,f,u,@@id_t,@opt,@file_maint) tuple=t.tuple rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/db_remove.rb b/lib/sisu/v5/db_remove.rb index cff42409..324dbee4 100644 --- a/lib/sisu/v5/db_remove.rb +++ b/lib/sisu/v5/db_remove.rb @@ -178,7 +178,7 @@ module SiSU_DbRemove || @opt.act[:verbose_plus][:set]==:on \ || @opt.act[:maintenance][:set]==:on) SiSU_Screen::Ansi.new( - @opt.cmd, + @opt.selections.str, "no such file in database #{@db.psql.db}::#{@opt.fns}" ).puts_grey end diff --git a/lib/sisu/v5/dbi.rb b/lib/sisu/v5/dbi.rb index 75b07372..a7bbd822 100644 --- a/lib/sisu/v5/dbi.rb +++ b/lib/sisu/v5/dbi.rb @@ -97,8 +97,7 @@ module SiSU_DBI end end def maintenance_check(opt,file,line) - p opt.mod - p opt.cmd + p opt.selections.str p "at #{file} #{line}" end def read_psql @@ -134,7 +133,7 @@ manually create the database: "#{cX.green}#{@db.db}#{cX.off}" if it does not yet end SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], - "DBI (#{@sql_type}) #{@opt.mod}", + "SQL DB #{@sql_type.upcase}", @opt.fno ).dbi_title unless @opt.act[:quiet][:set]==:on begin diff --git a/lib/sisu/v5/dbi_discrete.rb b/lib/sisu/v5/dbi_discrete.rb index 73976756..79d3f70a 100644 --- a/lib/sisu/v5/dbi_discrete.rb +++ b/lib/sisu/v5/dbi_discrete.rb @@ -127,7 +127,7 @@ module SiSU_DBI_Discrete #% database building begin SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], - 'SQLite', + 'SQLite (discrete)', "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}" ).green_title_hi unless @opt.act[:quiet][:set]==:on sdb.create_db diff --git a/lib/sisu/v5/digests.rb b/lib/sisu/v5/digests.rb index 83f26714..e1d51b1d 100644 --- a/lib/sisu/v5/digests.rb +++ b/lib/sisu/v5/digests.rb @@ -111,7 +111,7 @@ module SiSU_DigestView SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('*EXITED* hash digests will not run without openssl') end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/dp.rb b/lib/sisu/v5/dp.rb index 0dde14b8..ef61f6b4 100644 --- a/lib/sisu/v5/dp.rb +++ b/lib/sisu/v5/dp.rb @@ -103,8 +103,7 @@ module SiSU_Param def initialize(opt) @opt=opt @cX||=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]) - @cmd,@mod=opt.cmd,opt.mod - @fns=if @opt.cmd =~/P/ #revisit CHECK + @fns=if @opt.act[:psql][:set] == [:on] #revisit CHECK opt.fns else opt.fns.gsub(/\.ssm$/,'.ssm.sst') end @@ -886,7 +885,7 @@ module SiSU_Param Dir.chdir(@opt.f_pth[:pth]) begin rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -951,10 +950,10 @@ module SiSU_Param end @concord_make=(@wc_words > @env.concord_max) ? false : true @locale=@sys.locale - @file_encoding=@sys.file_encoding(fns,@opt.cmd) + @file_encoding=@sys.file_encoding(fns,@opt.act) # programs set here for things that affect output appearance only @programs[:pdf]=SiSU_Env::SystemCall.new.program_found?('pdflatex') - if @opt.cmd =~/P/ #if @env.multilingual? + if @opt.act[:psql][:set] == [:ok] m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm|ssi)$/ #watch added match for sss @fnn,@fnb,@fnt=@fns[m,1],@fns[m,2],@fns[m,3] @flv=@env.document_language_versions_found[:f] @@ -967,7 +966,7 @@ module SiSU_Param @papersize=@env.papersize #'A4' #default size #get first from SiSU_Env:: # @env is probably no longer most appropriate name! as default info is more general @sfx_src=@fns[m,2] if @fns =~ /(?:-|ssm\.)?sst$/ \ - and not @opt.cmd =~/P/ #watch + and not @opt.act[:psql][:set] == [:ok] @env_out_root=@env.path.output @dir_out="#{@env.path.output}/#{@fnb}" @dir_tex=@env.processing_path.tex @@ -1485,6 +1484,9 @@ module SiSU_Param Store.new(self,@env).store #% pstore self rescue + if @opt.act[:harvest][:set]==:on + exit + end end end private @@ -1510,7 +1512,7 @@ module SiSU_Param end @@md=@md=nil rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/dp_identify_markup.rb b/lib/sisu/v5/dp_identify_markup.rb index f6884c7d..82e63fd4 100644 --- a/lib/sisu/v5/dp_identify_markup.rb +++ b/lib/sisu/v5/dp_identify_markup.rb @@ -51,7 +51,7 @@ * Git - + * Ralph Amissah diff --git a/lib/sisu/v5/dp_make.rb b/lib/sisu/v5/dp_make.rb index 05b5cbdf..bba58847 100644 --- a/lib/sisu/v5/dp_make.rb +++ b/lib/sisu/v5/dp_make.rb @@ -51,7 +51,7 @@ * Git - + * Ralph Amissah diff --git a/lib/sisu/v5/embedded.rb b/lib/sisu/v5/embedded.rb index b46975fd..325d7780 100644 --- a/lib/sisu/v5/embedded.rb +++ b/lib/sisu/v5/embedded.rb @@ -83,7 +83,7 @@ module SiSU_Embedded multimedia begin rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -103,7 +103,7 @@ module SiSU_Embedded src_ec=@f.place_file.images.rel + '/' + @md.ec[:image].join(" #{@f.output_path.images.rel}/") unless @opt.fns =~/\.-sst$/ SiSU_Env::SystemCall.new(src_ec,ldest,'q').rsync('--relative',@opt.base_path) - #if @md.opt.cmd.inspect =~/R/ #rsync to remote image directory + #if @md.opt.selections.str.inspect =~/R/ #rsync to remote image directory # SiSU_Env::SystemCall.new(src_ec,remote_rel,'q').rsync('--relative') #end end diff --git a/lib/sisu/v5/harvest.rb b/lib/sisu/v5/harvest.rb index cc12b08e..ddc85055 100644 --- a/lib/sisu/v5/harvest.rb +++ b/lib/sisu/v5/harvest.rb @@ -76,7 +76,7 @@ module SiSU_Harvest end def read begin - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" + harvest_pth=@env.path.webserv + '/' + @opt.base_stub FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) cases(@opt,@env) rescue @@ -99,7 +99,7 @@ WOK style.close end def cases(opt,env) - case opt.mod.inspect + case opt.selections.str.inspect when/--harvest/i css(opt) if @opt.act[:maintenance][:set]==:on SiSU_HarvestAuthors::Songsheet.new(opt,env).songsheet diff --git a/lib/sisu/v5/harvest_authors.rb b/lib/sisu/v5/harvest_authors.rb index 7904ab15..26a0a9e3 100644 --- a/lib/sisu/v5/harvest_authors.rb +++ b/lib/sisu/v5/harvest_authors.rb @@ -88,20 +88,36 @@ module SiSU_HarvestAuthors end lang_hash_file_array.each_pair do |lang,a| idx_array[lang] ||= [] - idx_array=SiSU_HarvestAuthors::Harvest.new(@opt,@env,a,filename,name,idx_array,lang).extract_harvest + idx_array=SiSU_HarvestAuthors::Harvest.new( + @opt, + @env, + a, + filename, + name, + idx_array, + lang + ).extract_harvest end end - the_idx=SiSU_HarvestAuthors::Index.new(idx_array,@@the_idx_authors).construct_book_author_index - SiSU_HarvestAuthors::OutputIndex.new(@opt,the_idx).html_print.html_songsheet + the_idx=SiSU_HarvestAuthors::Index.new( + idx_array, + @@the_idx_authors + ).construct_book_author_index + SiSU_HarvestAuthors::OutputIndex.new( + @opt, + the_idx + ).html_print.html_songsheet end end class Harvest def initialize(opt,env,data,filename,name,idx_array,lang) - @opt,@env,@data,@filename,@name,@idx_array,@lang=opt,env,data,filename,name,idx_array,lang + @opt, @env,@data,@filename,@name,@idx_array,@lang= + opt,env, data, filename, name, idx_array, lang end def extract_harvest - data,filename,name,idx_array,lang=@data,@filename,@name,@idx_array,@lang - @title,@subtitle,@fulltitle,@author,@author_format,@date=nil,nil,nil,nil,nil,nil + data, filename, name, idx_array, lang = + @data,@filename,@name,@idx_array,@lang + @title=@subtitle=@fulltitle=@author=@author_format=@date=nil @authors=[] rgx={} rgx[:author]=/^@creator:(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m @@ -123,7 +139,9 @@ module SiSU_HarvestAuthors end break if @title && @subtitle && @author && @date end - @fulltitle=@subtitle ? (@title + ' - ' + @subtitle) : @title + @fulltitle=@subtitle \ + ? (@title + ' - ' + @subtitle) + : @title if @title \ and @author_format creator=SiSU_FormatAuthor::Author.new(@author_format.strip).author_details @@ -138,7 +156,15 @@ module SiSU_HarvestAuthors else "sisu_manifest.#{lang}.html" end - idx_array[lang] <<= { filename: filename, file: file, date: @date, title: @fulltitle, author: creator, page: page, lang: lang } + idx_array[lang] <<= { + filename: filename, + file: file, + date: @date, + title: @fulltitle, + author: creator, + page: page, + lang: lang + } else #p "missing author field: #{@filename} title: #{@title}; author: #{@author_format}" end @@ -164,7 +190,15 @@ module SiSU_HarvestAuthors if @@the_idx_authors[lang][author].is_a?(NilClass) @@the_idx_authors[lang][author]={ md: [] } end - @@the_idx_authors[lang][author][:md] << { filename: idx[:filename], file: idx[:file], author: idx[:author], title: idx[:title], date: idx[:date], page: idx[:page], lang: idx[:lang] } + @@the_idx_authors[lang][author][:md] << { + filename: idx[:filename], + file: idx[:file], + author: idx[:author], + title: idx[:title], + date: idx[:date], + page: idx[:page], + lang: idx[:lang] + } end end end @@ -188,18 +222,26 @@ module SiSU_HarvestAuthors @output[lng] ||={} harvest_pth,file='','' if @env.output_dir_structure.by? == :language - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/#{lng}/manifest" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub + '/' \ + + lng + '/' \ + + 'manifest' file="#{harvest_pth}/authors.html" elsif @env.output_dir_structure.by? == :filetype - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/manifest" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub + '/' \ + + 'manifest' file="#{harvest_pth}/authors.#{lng}.html" elsif @env.output_dir_structure.by? == :filename - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub file="#{harvest_pth}/authors.#{lng}.html" end - FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) + FileUtils::mkdir_p(harvest_pth) \ + unless FileTest.directory?(harvest_pth) fileinfo=(@opt.act[:verbose][:set]==:on \ || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:urls_selected][:set]==:on \ || @opt.act[:maintenance][:set]==:on) \ ? ("file://#{file}") : '' SiSU_Screen::Ansi.new( @@ -213,7 +255,8 @@ module SiSU_HarvestAuthors def html_file_close @the_idx.keys.each do |lng| @output[lng][:html].close - @output[lng][:html_mnt].close if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt].close \ + if @output[lng][:html_mnt].is_a?(File) end end def html_print @@ -257,18 +300,22 @@ module SiSU_HarvestAuthors file="#{harvest_pth}/authors.#{lg}.html" end l=ln[lg][:t] - harvest_languages += %{#{l}   } + harvest_languages += + %{#{l}   } end sv=SiSU_Env::InfoVersion.instance.get_version if @env.output_dir_structure.by? == :language home_pth='../..' - output_structure_by='(output organised by language & filetype)' + output_structure_by= + '(output organised by language & filetype)' elsif @env.output_dir_structure.by? == :filetype home_pth='..' - output_structure_by='(output organised by filetype)' + output_structure_by= + '(output organised by filetype)' elsif @env.output_dir_structure.by? == :filename home_pth='.' - output_structure_by='(output organised by filename)' + output_structure_by= + '(output organised by filename)' else home_pth='.' output_structure_by='(output organised by ?)' @@ -301,8 +348,11 @@ WOK end def html_head @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << html_head_adjust(lng,'maintenance') if @opt.act[:maintenance][:set]==:on - @output[lng][:html] << html_head_adjust(lng) + @output[lng][:html_mnt] \ + << html_head_adjust(lng,'maintenance') \ + if @opt.act[:maintenance][:set]==:on + @output[lng][:html] \ + << html_head_adjust(lng) end end def html_alph @@ -315,7 +365,8 @@ WOK end a=a.join @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << a if @opt.act[:maintenance][:set]==:on + @output[lng][:html_mnt] << a \ + if @opt.act[:maintenance][:set]==:on @output[lng][:html] << a end end @@ -333,12 +384,14 @@ WOK WOK @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << a if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt] << a \ + if @output[lng][:html_mnt].is_a?(File) @output[lng][:html] << a end end def do_html(lng,html) - @output[lng][:html_mnt] << html if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt] << html \ + if @output[lng][:html_mnt].is_a?(File) @output[lng][:html] << html end def do_string_name(lng,attrib,string) @@ -353,9 +406,11 @@ WOK if @alph.length > 0 @letter=@alph.shift if @output[lng][:html_mnt].is_a?(File) - @output[lng][:html_mnt] << %{\n

#{@letter}

} + @output[lng][:html_mnt] \ + << %{\n

#{@letter}

} end - @output[lng][:html] << %{\n

#{@letter}

} + @output[lng][:html] \ + << %{\n

#{@letter}

} else break end end @@ -383,14 +438,18 @@ WOK "./#{i[:file]}/#{i[:page]}" else '' #error end - work=[ "#{i[:date]} #{i[:title]}", %{

#{i[:date]} #{i[:title]}, #{i[:author][:authors_s]}

} ] + work=[ + "#{i[:date]} #{i[:title]}", + %{

#{i[:date]} #{i[:title]}, #{i[:author][:authors_s]}

} + ] works<<=(@output[lng][:html_mnt].is_a?(File)) \ ? (work.concat([%{

[src]  #{i[:date]} #{i[:title]}, #{i[:author][:authors_s]} -- [#{i[:file]}.sst]

}])) : work end works.sort_by {|y| y[0]}.each do |z| @output[lng][:html] << z[1] - @output[lng][:html_mnt] << z[2] if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt] << z[2] \ + if @output[lng][:html_mnt].is_a?(File) end end end diff --git a/lib/sisu/v5/harvest_topics.rb b/lib/sisu/v5/harvest_topics.rb index cd507f63..62103618 100644 --- a/lib/sisu/v5/harvest_topics.rb +++ b/lib/sisu/v5/harvest_topics.rb @@ -90,11 +90,27 @@ module SiSU_HarvestTopics end lang_hash_file_array.each_pair do |lang,a| idx_array[lang] ||=[] - idx_array=SiSU_HarvestTopics::Harvest.new(@opt,@env,a,filename,name,idx_array,lang).extract_harvest + idx_array=SiSU_HarvestTopics::Harvest.new( + @opt, + @env, + a, + filename, + name, + idx_array, + lang + ).extract_harvest end end - the_hash=SiSU_HarvestTopics::Index.new(@opt,@env,idx_array,@@the_idx_topics).song - SiSU_HarvestTopics::OutputIndex.new(@opt,the_hash).html_print.html_songsheet + the_hash=SiSU_HarvestTopics::Index.new( + @opt, + @env, + idx_array, + @@the_idx_topics + ).song + SiSU_HarvestTopics::OutputIndex.new( + @opt, + the_hash + ).html_print.html_songsheet end end class Mix @@ -104,11 +120,13 @@ module SiSU_HarvestTopics end class Harvest def initialize(opt,env,data,filename,name,idx_array,lang) - @opt,@env,@data,@filename,@name,@idx_array,@lang=opt,env,data,filename,name,idx_array,lang + @opt, @env,@data,@filename,@name,@idx_array,@lang= + opt,env, data, filename, name, idx_array, lang end def extract_harvest - data,filename,name,idx_array,lang=@data,@filename,@name,@idx_array,@lang - @idx_lst,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil + data, filename, name, idx_array, lang= + @data,@filename,@name,@idx_array,@lang + @idx_lst=@title=@subtitle=@fulltitle=@author=@author_format=nil rgx={} rgx[:author]=/^@creator:(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m rgx[:title]=/^@title:[ ]+(.+)/ @@ -150,10 +168,26 @@ module SiSU_HarvestTopics idxl=[] g.each do |i| i=i.strip - idxl << { filename: filename, file: file, rough_idx: i, title: @fulltitle, author: creator, page: page, lang: lang } + idxl << { + filename: filename, + file: file, + rough_idx: i, + title: @fulltitle, + author: creator, + page: page, + lang: lang + } end idxl - else { filename: filename, file: file, rough_idx: @idx_list, title: @fulltitle, author: creator, page: page, lang: lang } + else { + filename: filename, + file: file, + rough_idx: @idx_list, + title: @fulltitle, + author: creator, + page: page, + lang: lang, + } end else if (@opt.act[:verbose_plus][:set]==:on \ @@ -167,7 +201,8 @@ module SiSU_HarvestTopics end class Index < Mix def initialize(opt,env,idx_array,the_idx) - @opt,@env,@idx_array,@the_idx=opt,env,idx_array,the_idx + @opt, @env,@idx_array,@the_idx= + opt,env, idx_array, the_idx @@the_idx_topics=@the_idx end def song @@ -195,7 +230,13 @@ module SiSU_HarvestTopics names += %{#{n}, } end end - { filename: idx[:filename], file: idx[:file], author: names, title: idx[:title], page: idx[:page] } + { + filename: idx[:filename], + file: idx[:file], + author: names, + title: idx[:title], + page: idx[:page] + } end def capital_(txt) txt[0].chr.capitalize + txt[1,txt.length] @@ -471,18 +512,26 @@ module SiSU_HarvestTopics @output[lng] ||={} harvest_pth,file='','' if @env.output_dir_structure.by? == :language - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/#{lng}/manifest" - file="#{harvest_pth}/topics.html" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub + '/' \ + + lng + '/' \ + + 'manifest' + file=harvest_pth + '/' + 'topics.html' elsif @env.output_dir_structure.by? == :filetype - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/manifest" - file="#{harvest_pth}/topics.#{lng}.html" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub + '/' \ + + 'manifest' + file=harvest_pth + '/' + 'topics.' + lng + '.html' elsif @env.output_dir_structure.by? == :filename - harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" - file="#{harvest_pth}/topics.#{lng}.html" + harvest_pth=@env.path.webserv + '/' \ + + @opt.base_stub + file=harvest_pth + '/' + 'topics.' + lng + '.html' end - FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) + FileUtils::mkdir_p(harvest_pth) \ + unless FileTest.directory?(harvest_pth) fileinfo=(@opt.act[:verbose][:set]==:on \ || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:urls_selected][:set]==:on \ || @opt.act[:maintenance][:set]==:on) \ ? ("file://#{file}") : '' @@ -615,16 +664,17 @@ module SiSU_HarvestTopics @the_idx.keys.each do |lg| if @env.output_dir_structure.by? == :language harvest_pth="../../#{lg}/manifest" - file="#{harvest_pth}/topics.html" + file=harvest_pth + '/' + 'topics.html' elsif @env.output_dir_structure.by? == :filetype harvest_pth='.' - file="#{harvest_pth}/topics.#{lg}.html" + file=harvest_pth + '/' + 'topics.' + lg + '.html' elsif @env.output_dir_structure.by? == :filename harvest_pth='.' - file="#{harvest_pth}/topics.#{lg}.html" + file=harvest_pth + '/topics.' + lg + '.html' end l=ln[lg][:t] - harvest_languages += %{#{l}   } + harvest_languages += + %{#{l}   } end sv=SiSU_Env::InfoVersion.instance.get_version if @env.output_dir_structure.by? == :language @@ -668,7 +718,9 @@ WOK end def html_head @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << html_head_adjust(lng,'maintenance') if @opt.act[:maintenance][:set]==:on + @output[lng][:html_mnt] \ + << html_head_adjust(lng,'maintenance') \ + if @opt.act[:maintenance][:set]==:on @output[lng][:html] << html_head_adjust(lng) end end @@ -682,7 +734,8 @@ WOK end a=a.join @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << a if @opt.act[:maintenance][:set]==:on + @output[lng][:html_mnt] << a \ + if @opt.act[:maintenance][:set]==:on @output[lng][:html] << a end end @@ -700,7 +753,8 @@ WOK WOK @the_idx.keys.each do |lng| - @output[lng][:html_mnt] << a if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt] << a \ + if @output[lng][:html_mnt].is_a?(File) @output[lng][:html] << a end end @@ -708,12 +762,14 @@ WOK @output[lng][:html] << html end def do_html_maintenance(lng,html) - @output[lng][:html_mnt] << html if @output[lng][:html_mnt].is_a?(File) + @output[lng][:html_mnt] << html \ + if @output[lng][:html_mnt].is_a?(File) end def do_string(lng,attrib,string) html=%{

#{string}

} do_html(lng,html) - do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) + do_html_maintenance(lng,html) \ + if @output[lng][:html_mnt].is_a?(File) end def do_string_default(lng,attrib,string) html=%{

#{string}

} @@ -721,7 +777,8 @@ WOK end def do_string_maintenance(lng,attrib,string) html=%{

#{string}

} - do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) + do_html_maintenance(lng,html) \ + if @output[lng][:html_mnt].is_a?(File) end def do_string_name(lng,attrib,string) f=/^(\S)/.match(string)[1] @@ -735,9 +792,11 @@ WOK if @alph.length > 0 @letter=@alph.shift if @output[lng][:html_mnt].is_a?(File) - @output[lng][:html_mnt] << %{\n

#{@letter}

} + @output[lng][:html_mnt] \ + << %{\n

#{@letter}

} end - @output[lng][:html] << %{\n

#{@letter}

} + @output[lng][:html] \ + << %{\n

#{@letter}

} else break end end @@ -745,7 +804,8 @@ WOK name=string.strip.gsub(/\s+/,'_') html=%{

#{string}

} do_html(lng,html) - do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) + do_html_maintenance(lng,html) \ + if @output[lng][:html_mnt].is_a?(File) end def do_array(lng,lv,array) lv+=1 diff --git a/lib/sisu/v5/html.rb b/lib/sisu/v5/html.rb index a613f56f..683eba96 100644 --- a/lib/sisu/v5/html.rb +++ b/lib/sisu/v5/html.rb @@ -150,7 +150,7 @@ module SiSU_HTML SiSU_HTML::Source::Output.new(scroll,@md).scroll end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -163,7 +163,7 @@ module SiSU_HTML end end end - SiSU_Env::Clear.new(@opt.cmd,@opt.fns,@md).param_instantiate + SiSU_Env::Clear.new(@opt.selections.str,@opt.fns,@md).param_instantiate @@flag,@@scr,@@seg,@@seg_endnotes,@@seg_subtoc,@@seg_ad={},{},{},{},{},{} @@seg_total,@@tracker,@@loop_count,@@tablehead,@@number_of_cols=0,0,0,0,0 @@seg_name,@@seg_name_html,@@seg_subtoc_array,@@seg_endnotes_array,@@segtocband,@@tablefoot=Array.new(7){[]} @@ -305,7 +305,7 @@ module SiSU_HTML @@toc[:seg_mini] << toc[:seg_mini] if toc[:seg_mini] @@toc[:scr] << toc[:scr] if toc[:scr] rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -729,7 +729,7 @@ WOK end end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -751,7 +751,7 @@ WOK end end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/html_concordance.rb b/lib/sisu/v5/html_concordance.rb index dbaf83cf..c02b8f5c 100644 --- a/lib/sisu/v5/html_concordance.rb +++ b/lib/sisu/v5/html_concordance.rb @@ -51,7 +51,7 @@ * Git - + * Ralph Amissah @@ -118,7 +118,7 @@ module SiSU_Concordance SiSU_Concordance::Source::Words.new(@particulars).songsheet end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -236,18 +236,19 @@ WOK @alphlst=SiSU_i18n::Alphabet.new(@md.opt.lng).hash_strings @rgx_scanlist=%r{#{Mx[:fa_italics_o]}[#{@alphlst[:l]}#{@alphlst[:u]}0-9"\s]{2,12}#{Mx[:fa_italics_c]}|#{Mx[:fa_bold_o]}[#{@alphlst[:l]}#{@alphlst[:u]}0-9"\s]{2,12}#{Mx[:fa_bold_c]}|(?:https?|file)://\S+|<\S+?>|[#{@alphlst[:l]}#{@alphlst[:u]}]+|\w+}mi rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end end def songsheet begin - FileUtils::mkdir_p(@file.output_path.html_concordance.dir) unless FileTest.directory?(@file.output_path.html_concordance.dir) + FileUtils::mkdir_p(@file.output_path.html_concordance.dir) \ + unless FileTest.directory?(@file.output_path.html_concordance.dir) @file_concordance=File.open(@file.place_file.html_concordance.dir,'w') map_para rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/html_scroll.rb b/lib/sisu/v5/html_scroll.rb index 01fe2940..4dbc2800 100644 --- a/lib/sisu/v5/html_scroll.rb +++ b/lib/sisu/v5/html_scroll.rb @@ -76,7 +76,7 @@ module SiSU_HTML_Scroll scr[:tails]=SiSU_HTML_Scroll::Scroll.new(@md).tails scr rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/html_segments.rb b/lib/sisu/v5/html_segments.rb index 5826163e..f58bae6a 100644 --- a/lib/sisu/v5/html_segments.rb +++ b/lib/sisu/v5/html_segments.rb @@ -177,7 +177,7 @@ module SiSU_HTML_Seg SiSU_HTML_Seg::Seg.new.cleanup # (((( added )))) #### (((( END )))) #### rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/html_tune.rb b/lib/sisu/v5/html_tune.rb index 1a2c9dee..3e8c2d68 100644 --- a/lib/sisu/v5/html_tune.rb +++ b/lib/sisu/v5/html_tune.rb @@ -150,7 +150,7 @@ module SiSU_HTML_Tune end SiSU_HTML_Tune::Tune.new(@data,@md).output rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/hub.rb b/lib/sisu/v5/hub.rb index 785da84d..fed4ae55 100644 --- a/lib/sisu/v5/hub.rb +++ b/lib/sisu/v5/hub.rb @@ -66,6 +66,7 @@ module SiSU require_relative 'se' # se.rb include SiSU_Env include SiSU_Screen + require_relative 'hub_actions' # hub_actions.rb require_relative 'hub_options' # hub_options.rb require_relative 'dp' # dp.rb include SiSU_Param @@ -82,10 +83,12 @@ module SiSU def initialize(argv,call_path) begin #% select what to do (set options & start processing (files selected if any)) opt=SiSU_Commandline::Options.new(argv,call_path) # command line selection of what to do, files & operations set - SiSU::Processing.new(opt).actions # do it + SiSU::Processing.new(opt).version_info + SiSU::Processing.new(opt).actions_without_files # do it + SiSU::Processing.new(opt).actions_on_files # do it rescue - cmd=(opt ? opt.cmd : '') - SiSU_Screen::Ansi.new(cmd,$!,$@).rescue do + selection=(opt ? opt.selection : '') + SiSU_Screen::Ansi.new(selection,$!,$@).rescue do __LINE__.to_s + ':' + __FILE__ end ensure @@ -202,81 +205,6 @@ module SiSU end end end - class Operations - @@n_do=0 - def initialize(opt='') - @opt=opt - @cX=SiSU_Screen::Ansi.new(@opt).cX - end - def counter - @@n_do=0 - end - def remote_put_base_site_rsync # -CR - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ - if @opt.act[:maintenance][:set] ==:on - require_relative 'remote' # remote.rb - SiSU_Remote::Put.new(@opt).rsync_base - end - def remote_put_base_site_rsync_match # -CCRZ - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ - if @opt.act[:maintenance][:set] ==:on - require_relative 'remote' # remote.rb - SiSU_Remote::Put.new(@opt).rsync_base_sync - end - def remote_put_base_site # -Cr - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ - if @opt.act[:maintenance][:set] ==:on - require_relative 'remote' # remote.rb - SiSU_Remote::Put.new(@opt).scp_base - end - def remote_put_base_site_all # -CCr - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ - if @opt.act[:maintenance][:set] ==:on - require_relative 'remote' # remote.rb - SiSU_Remote::Put.new(@opt).scp_base_all - end - def cgi # -F - require_relative 'cgi' # cgi.rb - SiSU_CGI::SearchSQL.new(@opt).read - end - def termsheet # -t - system("sisu_termsheet #{@opt.cmd} #{@opt.fns}\n") - @@n_do=@@n_do+1 - SiSU_Screen::Ansi.new( - @opt.cmd,@@n_do, - 'Termsheet(s) processed' - ).term_sheet_title unless @opt.act[:quiet][:set] ==:on - end - def webrick # -W - prt=SiSU_Env::InfoEnv.new(@fns).port.webrick_port - puts %{#{@cX.blue}<<#{@cX.off}#{@cX.green}Start Webrick web server on port: #{prt}#{@cX.off}#{@cX.blue}>> #{@cX.off*2} } - require_relative 'webrick' - SiSU_Webserv::WebrickStart.new - end - def not_found - puts "\n#{@cX.fuchsia}FILE NOT FOUND:#{@cX.off} << #{@opt.fns} >> - requested #{@opt.cmd} processing skipped\n" - end - def convert_name_message(fns,type,i,o,rune) - %{\nIn filename: "#{@cX.fuchsia}#{fns}#{@cX.off}" << #{type} >> #{@cX.fuchsia}is apre 0.36 markup filename.#{@cX.off} #{@cX.brown}Please rename your file.#{@cX.off}\n\tAs of sisu-0.37, SiSU markup files with #{@cX.brown}the extensions #{i} should be re-named #{o}#{@cX.off}\n\tif you have the program called 'rename' installed, the following rune should do the trick:\n\t\t#{rune}\n\talternatively try:\n\t\tsisu --convert --36to37 #{fns}\n\trequested #{@opt.cmd} processing skipped\n} - end - def not_recognised - case @opt.fns - when /(\.s[123])$/ - type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') - rune=%q{rename 's/\.s[123]$/\.sst/' *.s{1,2,3}} - puts convert_name_message(@opt.fns,type,'.s1 .s2 and .s3','.sst',rune) - when /(\.r[123])$/ - type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') - rune=%q{rename 's/\.r[123]$/\.ssm/' *.r{1,2,3}} - puts convert_name_message(@opt.fns,type,'.r1 .r2 and .r3','.sst',rune) - puts %{\n\tNote also that you will need to change the names of the files called/required\n\twithin the document text to build the composite document\n\t\t.s1 .s2 .s3 should be .sst \n\t\t.si should be .ssi\n\trequested #{@opt.cmd} processing skipped\n} - when /(\.ssi)$/ - puts "\n#{@cX.fuchsia}component filetype:#{@cX.off} << #{@opt.fns} >> - is not a processed filetype, (it may be used as a component of a .ssm markup file)\n\trequested #{@opt.cmd} processing skipped\n" - else - puts "\n#{@cX.fuchsia}FILETYPE NOT RECOGNISED:#{@cX.off} << #{@opt.fns} >> - is not a recognized filetype,\n\trequested #{@opt.cmd} processing skipped\n" - end - end - end class Processing begin require 'fileutils' @@ -292,7 +220,11 @@ module SiSU @@env=@env=SiSU_Env::InfoEnv.new @msg,@msgs='',nil @tell=lambda { - SiSU_Screen::Ansi.new(@opt.cmd,@msg,"#{@msgs.inspect if @msgs}") + SiSU_Screen::Ansi.new( + @opt.selections.str, + @msg, + "#{@msgs.inspect if @msgs}" + ) } end def remove_skipped_files_if_any_from_processing_files_array @@ -307,16 +239,6 @@ module SiSU @remove_faulty_markup_files_array.join(',') end end - def do_loops - @remove_faulty_markup_files_array=[] - if @opt.act[:zap][:set]==:on #% --zap, -Z - do_loop_files_on_given_option_pre - end - do_each_file_loop_options - remove_skipped_files_if_any_from_processing_files_array - do_loop_files_on_given_option_post - print_error_message_if_files_skipped - end def do_each_file_loop_options @opt.files.each_with_index do |fno,i| @opt.fno=fno @@ -336,129 +258,18 @@ module SiSU Dir.chdir(@opt.pth) #watch end @env=SiSU_Env::InfoEnv.new(@opt.fns) - if @opt.act[:ao][:set]==:on #% --ao --dal, -m - $process_document = :ok - unless @opt.act[:po4a][:set]==:on # --po4a, -P - if @opt.fno =~ /\.ssm$/ - require_relative 'ao_composite' # ao_composite.rb #pre-processing - SiSU_Assemble::Composite.new(@opt).read - end - require_relative 'ao' # -m ao.rb - SiSU_AO::Source.new(@opt).read - end - end - if $process_document == :ok - if @opt.act[:qrcode][:set]==:on #% --qrcode, -Q - require_relative 'qrcode' # qrcode.rb - SiSU_QRcode::Source.new(@opt).read - end - if @opt.act[:hash_digests][:set]==:on #% --hash-digests, -N digest tree - require_relative 'digests' # digests.rb - SiSU_DigestView::Source.new(@opt).read - end - if @opt.act[:txt][:set]==:on #% --txt, -t -a - require_relative 'txt_plain' # txt_plain.rb - SiSU_Txt_Plain::Source.new(@opt).read - end - if @opt.act[:txt_textile][:set]==:on #% --textile - require_relative 'txt_textile' # txt_textile.rb - SiSU_Txt_Textile::Source.new(@opt).read - end - if @opt.act[:txt_asciidoc][:set]==:on #% --asciidoc - require_relative 'txt_asciidoc' # txt_asciidoc.rb - SiSU_Txt_AsciiDoc::Source.new(@opt).read - end - if @opt.act[:txt_markdown][:set]==:on #% --markdown - require_relative 'txt_markdown' # txt_markdown.rb - SiSU_Txt_Markdown::Source.new(@opt).read - end - if @opt.act[:txt_rst][:set]==:on #% --rst, --rest - require_relative 'txt_rst' # txt_rst.rb - SiSU_Txt_rST::Source.new(@opt).read - end - if @opt.act[:html][:set]==:on #% --html, -h -H - require_relative 'html' # html.rb - SiSU_HTML::Source.new(@opt).read - else - if @opt.act[:html_seg][:set]==:on #% --html-seg (-h -H) - require_relative 'html' # html.rb - SiSU_HTML::Source.new(@opt).read - end - if @opt.act[:html_scroll][:set]==:on #% --html-scroll (-h -H) - require_relative 'html' # html.rb - SiSU_HTML::Source.new(@opt).read - end - end - if @opt.act[:concordance][:set]==:on #% --concordance, -w - require_relative 'html_concordance' # html_concordance.rb - SiSU_Concordance::Source.new(@opt).read - end - if @opt.act[:epub][:set]==:on #% --epub, -e - require_relative 'xhtml_epub2' # xhtml_epub2.rb - SiSU_XHTML_EPUB2::Source.new(@opt).read - end - if @opt.act[:odt][:set]==:on #% --odt, -o opendocument - require_relative 'xml_odf_odt' # xml_odf_odt.rb - SiSU_XML_ODF_ODT::Source.new(@opt).read - end - if @opt.act[:xhtml][:set]==:on #% --xhtml, -b xhtml - require_relative 'xhtml' # xhtml.rb - SiSU_XHTML::Source.new(@opt).read - end - if @opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu - require_relative 'xml_scaffold_structure_sisu' # xml_scaffold_structure_sisu.rb - SiSU_XML_Scaffold_Structure_Sisu::Source.new(@opt).read - end - if @opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse - require_relative 'xml_scaffold_structure_collapsed' # xml_scaffold_structure_collapsed.rb - SiSU_XML_Scaffold_Structure_Collapse::Source.new(@opt).read - end - if @opt.act[:xml_docbook_book][:set]==:on #% --xml-docbook - require_relative 'xml_docbook5' # xml_docbook5.rb - SiSU_XML_Docbook_Book::Source.new(@opt).read - end - if @opt.act[:xml_fictionbook][:set]==:on #% --xml-fictionbook - require_relative 'xml_fictionbook2' # xml_fictionbook2.rb - SiSU_XML_Fictionbook::Source.new(@opt).read - end - if @opt.act[:xml_sax][:set]==:on #% --xml-sax, -x xml sax type - require_relative 'xml_sax' # xml_sax.rb - SiSU_XML_SAX::Source.new(@opt).read - end - if @opt.act[:xml_dom][:set]==:on #% --xml-dom, -X xml dom type - require_relative 'xml_dom' # xml_dom.rb - SiSU_XML_DOM::Source.new(@opt).read - end - if @opt.act[:pdf][:set]==:on \ - or @opt.act[:pdf_p][:set]==:on \ - or @opt.act[:pdf_l][:set]==:on #% --pdf-l --pdf, -p latex/ texpdf - require_relative 'texpdf' # texpdf.rb - SiSU_TeX::Source.new(@opt).read - end - if @opt.act[:manpage][:set]==:on #% --manpage, -i - require_relative 'manpage' # manpage.rb - SiSU_Manpage::Source.new(@opt).read - end - if @opt.act[:texinfo][:set]==:on #% --texinfo, -I - require_relative 'texinfo' # texinfo.rb - SiSU_TexInfo::Source.new(@opt).read - end - if @opt.act[:sqlite_discrete][:set]==:on #% --sqlite, -d DB sqlite - require_relative 'dbi_discrete' # dbi_discrete.rb - SiSU_DBI_Discrete::SQL.new(@opt).build - end - if @opt.act[:manifest][:set]==:on #% --manifest, -y - require_relative 'manifest' # manifest.rb - ((@opt.act[:sisupod][:set]==:on \ - || @opt.act[:share_source][:set]==:on) \ - && @opt.files.length < 2 ) \ - ? nil - : SiSU_Manifest::Source.new(@opt).read - end - else - @remove_faulty_markup_files_array << fno - $process_document=:ok - end + actions=SiSU_Hub_Actions::HubActions.new(@opt) + actions.outputs.each_file.abstract_objects? + actions.outputs.each_file.qrcode? + actions.outputs.each_file.hash_digests? + actions.outputs.each_file.text? + actions.outputs.each_file.html? + actions.outputs.each_file.xhtml? + actions.outputs.each_file.xml? + actions.outputs.each_file.pdf? + actions.outputs.each_file.man_or_info? + actions.outputs.each_file.sqlite_discrete? + actions.outputs.each_file.manifest? end end def do_loop_files_on_given_option_pre @@ -473,234 +284,27 @@ module SiSU end end def do_loop_files_on_given_option_post - if @opt.act[:share_source][:set]==:on \ - or @opt.act[:sisupod][:set]==:on \ - or @opt.act[:git][:set]==:on - begin - require_relative 'src_shared' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Source::SiSUpodSource.new(@opt).read - end - if @opt.act[:share_source][:set]==:on - require_relative 'src_share' # -s src_share.rb - begin - ensure - OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do - SiSU_Markup::Source.new(@opt).read - end - end - end - if @opt.act[:sisupod][:set]==:on #% --sisupod, -S make sisupod - require_relative 'src_sisupod_make' # -S src_sisupod_make.rb - begin - ensure - OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do - SiSU_Doc::Source.new(@opt).sisupod_tar_xz - end - end - end - if @opt.act[:git][:set]==:on #% --git, -g sisu git - require_relative 'git' # -g git.rb - begin - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Git::Source.new(@opt).read - end - ensure - OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do - SiSU_Git::Source.new(@opt).git_commit - end - end - end - if (@opt.act[:sisupod][:set]==:on \ - || @opt.act[:share_source][:set]==:on) \ - and @opt.act[:manifest][:set]==:on #% --manifest, -y - require_relative 'manifest' # -y manifest.rb - begin - ensure - OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do - SiSU_Manifest::Source.new(@opt).read - end - end - end - ensure - path_pod=@env.processing_path.processing_sisupod(@opt).paths - unless @opt.act[:maintenance][:set]==:on - FileUtils::rm_rf("#{path_pod[:sisupod]}/*") \ - if FileTest.directory?(path_pod[:sisupod]) - end - end - end - if @opt.act[:po4a][:set]==:on #% --po4a, -P - require_relative 'po4a' - begin - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Po4a::Source.new(@opt).read # -P po4a.rb - end - ensure - end - end - if @opt.act[:images][:set]==:on #% --images, -j - require_relative 'shared_images' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Images::Source.new(@opt).read # -j shared_images.rb - end - end - if @opt.cmd =~/T/ #% -T termsheet/standard form - @opt.files.each do |fns| - if FileTest.file?(fns) - @opt.fns=fns - case @opt.fns - when /\.(termsheet.rb)$/ - SiSU::Operations.new(@opt).termsheet - else #print "not processed --> ", fns, "\n" - end - else SiSU::Operations.new(@opt).not_found - end - end - SiSU::Operations.new.counter - end - if @opt.act[:psql][:set]==:on #% --pg, -D DB postgresql - require_relative 'dbi' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_DBI::SQL.new(@opt).connect # -D -d dbi.rb - end - end - if @opt.act[:sqlite][:set]==:on #% --sqlite, -d DB sqlite - require_relative 'dbi' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_DBI::SQL.new(@opt).connect # -D -d dbi.rb - end - end - if @opt.act[:manifest][:set]==:on #% --manifest, -y - require_relative 'manifest' - OptionLoopFiles.new(@opt).manifest_on_files_translated do - SiSU_Manifest::Source.new(@opt).read # -y manifest.rb - end - end - if @opt.act[:sitemap][:set]==:on #% --sitemap, -Y - require_relative 'sitemaps' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Sitemaps::Source.new(@opt).read # -Y sitemaps.rb - end - end - if @opt.act[:harvest][:set] !=:on - if @opt.act[:scp][:set]==:on #% -r copy to remote server - require_relative 'remote' # -r remote.rb - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Remote::Put.new(@opt).scp - end - end - if @opt.act[:rsync][:set]==:on #% -R copy to remote server - require_relative 'remote' # -R remote.rb - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Remote::Put.new(@opt).rsync - end - end - else - end - if @opt.act[:urls_selected][:set]==:on #% --sitemap, -Y - require_relative 'urls' - OptionLoopFiles.new(@opt).loop_files_on_given_option do - SiSU_Urls::Source.new(@opt).read #% -u -v -V -M - end - end + actions=SiSU_Hub_Actions::HubActions.new(@opt) + actions.outputs.loop_files.share_source? + actions.outputs.loop_files.run_termsheet? + actions.outputs.loop_files.sql? + SiSU_Hub_Actions::Operations.new.counter + actions.outputs.loop_files.manifest? + actions.outputs.loop_files.sitemaps? + actions.outputs.loop_files.urls? end - def do_initialization - @cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX - SiSU_Env::InfoProcessingFlag.new - if @opt.act[:version_info][:set]==:on #% version information + def version_info + if @opt.act[:version_info][:set]==:on SiSU_Env::InfoAbout.new(@opt).sisu_version - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - ' ' + File.dirname(__FILE__) - ).grey - end - end - if @opt.act[:ao][:set]==:on \ - or @opt.act[:maintenance][:set]==:on #% --maintenance, -m for -C - path={} - path[:css]=@@env.path.output + '/_sisu/css' - path[:xml]=@@env.path.output + '/_sisu/xml' - path[:xsd]=path[:xml] + '/xsd' - path[:xsd]=path[:xml] + '/rnc' - path[:xsd]=path[:xml] + '/rng' - re_p3=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ - unless @opt.files.join(',') =~ re_p3 #do not mix pods with source markup files in command line - if @opt.act[:maintenance][:set] ==:on - $VERBOSE=false #debug $VERBOSE=true - end - end - re_p2=/(sisupod(?:\.zip)?|\S+?\.ss[mt]\.zip)$/ - unless @opt.files.join(',') =~ re_p2 #do not mix pods with source markup files in command line - if @opt.act[:maintenance][:set] ==:on - $VERBOSE=false #debug $VERBOSE=true - end - end - end - if @opt.act[:site_init][:set]==:on #% --init-site, -C initialize/configure - require_relative 'conf' #% --init-site, -C initialize/configure - SiSU_Initialize::Source.new(@opt).read - if @opt.act[:rsync][:set]==:on - if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ - and @opt.cmd =~/RZ/ - SiSU::Operations.new(@opt).remote_put_base_site_rsync_match - else SiSU::Operations.new(@opt).remote_put_base_site_rsync - end - elsif @opt.act[:scp][:set]==:on - if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ - and @opt.cmd =~/CCr/ - SiSU::Operations.new(@opt).remote_put_base_site_all - else SiSU::Operations.new(@opt).remote_put_base_site - end - end - end - if @opt.act[:sample_search_form][:set]==:on #% --sample-search-form, -F cgi sample search form - SiSU::Operations.new(@opt).cgi - end - if @opt.act[:webrick][:set]==:on #% --webrick, -W webrick - SiSU::Operations.new(@opt).webrick - end - if @opt.act[:ao][:set]==:on - @retry_count= -1 - begin - @get_s,@get_p,@get_pl=[],[],[] - 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 << @opt.f_pths[0][:url] - end - if fns =~re_p3 - @get_p << re_p3.match(fns)[1] if re_p3 - end - if fns =~re_pl3 - @get_pl << re_pl3.match(fns)[1] if re_p3 - end - end - if @get_s.length > 0 #% remote markup file .sst - require_relative 'remote' # remote.rb - SiSU_Remote::Get.new(@opt,@get_s).fns - SiSU::Operations.new.counter - end - if @get_p.length > 0 #% remote sisupod - require_relative 'remote' # remote.rb - SiSU_Remote::Get.new(@opt,@get_p).sisupod - end - rescue - SiSU_Errors::Rescued.new($!,$@,@opt,@fns).location do - __LINE__.to_s + ':' + __FILE__ - end - @retry_count +=1 - retry unless @retry_count > 1 - ensure - end end end - def actions + def actions_without_files + actions=SiSU_Hub_Actions::HubActions.new(@opt) + actions.prepare.site? + actions.prepare.remote_site? + actions.prepare.sql? + end + def actions_on_files if @opt.act[:profile][:set]==:on begin require 'profile' @@ -709,150 +313,71 @@ module SiSU error('profile NOT FOUND (LoadError)') end end - action_on_file_ =if @opt.act[:rsync][:set]==:on \ - && @opt.act[:site_init][:set]==:on - :false - elsif @opt.act[:rsync][:set]==:on \ - && @opt.act[:site_init][:set] !=:on - :true - elsif ((@opt.act[:psql][:set]==:on \ - or @opt.act[:sqlite][:set]==:on) \ - and @opt.mod.join(';') =~/--(?:createdb|init(?:ialize)?|create(?:all)?|createtables|recreate|drop(?:all))/) - :false - else - (@opt.act[:ao][:set]==:on \ - || @opt.act[:manpage][:set]==:on \ - || @opt.act[:texinfo][:set]==:on \ - || @opt.act[:txt][:set]==:on \ - || @opt.act[:txt_textile][:set]==:on \ - || @opt.act[:txt_asciidoc][:set]==:on \ - || @opt.act[:txt_markdown][:set]==:on \ - || @opt.act[:txt_rst][:set]==:on \ - || @opt.act[:html][:set]==:on \ - || @opt.act[:html_scroll][:set]==:on \ - || @opt.act[:html_seg][:set]==:on \ - || @opt.act[:concordance][:set]==:on \ - || @opt.act[:xhtml][:set]==:on \ - || @opt.act[:epub][:set]==:on \ - || @opt.act[:odt][:set]==:on \ - || @opt.act[:xml_sax][:set]==:on \ - || @opt.act[:xml_dom][:set]==:on \ - || @opt.act[:xml_scaffold_structure_sisu][:set]==:on \ - || @opt.act[:xml_scaffold_structure_collapse][:set]==:on \ - || @opt.act[:xml_docbook_book][:set]==:on \ - || @opt.act[:xml_fictionbook][:set]==:on \ - || @opt.act[:pdf][:set]==:on \ - || @opt.act[:pdf_p][:set]==:on \ - || @opt.act[:pdf_l][:set]==:on \ - || @opt.act[:psql][:set]==:on \ - || @opt.act[:sqlite][:set]==:on \ - || @opt.act[:sqlite_discrete][:set]==:on \ - || @opt.act[:share_source][:set]==:on \ - || @opt.act[:sisupod][:set]==:on \ - || @opt.act[:qrcode][:set]==:on \ - || @opt.act[:hash_digests][:set]==:on \ - || @opt.act[:manifest][:set]==:on \ - || @opt.act[:scp][:set]==:on \ - || @opt.act[:webrick][:set]==:on \ - || @opt.act[:zap][:set]==:on) \ - ? (:true) - : (:false) - end - if @opt.act[:harvest][:set]==:on - require_relative 'harvest' # harvest.rb - 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 action_on_file_ == :false \ - and (@opt.act[:psql][:set]==:on \ - or @opt.act[:sqlite][:set]==:on) - if @opt.act[:psql][:set]==:on - require_relative 'dbi' - SiSU_DBI::SQL.new(@opt).connect - end - if @opt.act[:sqlite][:set]==:on - require_relative 'dbi' - SiSU_DBI::SQL.new(@opt).connect + actions=SiSU_Hub_Actions::HubActions.new(@opt) + actions.outputs.each_file.harvest? #check + actions.outputs.init? + do_loop_files_on_given_option_pre + do_each_file_loop_options + #remove_skipped_files_if_any_from_processing_files_array # NEEDS WORK + do_loop_files_on_given_option_post + print_error_message_if_files_skipped + actions.outputs.sql? #check location + if @opt.f_pths.length > 0 + if (@opt.act[:verbose][:set]==:on \ + || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil end - elsif action_on_file_ == :true \ - or ( #% ---> - @opt.cmd =~/^-/ \ - and @opt.cmd =~/([abCcDdeFGgHhIjikLMmNnoPpQqRrSsTtUuVvWwXxYyZ_0-9])/ \ - and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ - or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ - ) - do_initialization - if action_on_file_ == :true \ - and @opt.files.length > 0 - do_loops - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil - end - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on \ - || @opt.act[:urls_selected][:set]==:on \ - || @opt.act[:urls_all][:set]==:on) - @tell.call.print_brown unless @opt.files.join.empty? - end - if defined? @@env.processing_path.processing \ - and @@env.user \ - and FileTest.directory?(@@env.processing_path.processing) \ - and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area - if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ - FileUtils::cd(@@env.processing_path.processing_base_tmp) do - FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on - end + if (@opt.act[:verbose][:set]==:on \ + || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on \ + || @opt.act[:urls_selected][:set]==:on \ + || @opt.act[:urls_all][:set]==:on) + @tell.call.print_brown unless @opt.files.join.empty? + end + if defined? @@env.processing_path.processing \ + and @@env.user \ + and FileTest.directory?(@@env.processing_path.processing) \ + and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area + if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ + FileUtils::cd(@@env.processing_path.processing_base_tmp) do + FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on end end - elsif action_on_file_ == :true \ - and @opt.files.length == 0 - STDERR.puts %{requested action requires valid sisu markup file [filename (.sst .ssm)] or wildcard (that includes a valid filename)} - if (@opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).warn(:fuchsia) - end end - elsif @opt.mod.inspect =~/--query/ - require_relative 'sst_identify_markup' # sst_identify_markup.rb - puts SiSU_Markup::MarkupHistory.new(@opt).query - elsif @opt.mod.inspect =~/--identify/ - require_relative 'sst_identify_markup' # sst_identify_markup.rb - SiSU_Markup::MarkupIdentify.new(@opt).markup_version? - elsif @opt.mod.inspect =~/--sitemaps/ #% sitemaps - require_relative 'sitemaps' # sitemaps.rb - SiSU_Sitemaps::Source.new(@opt).read - if @opt.act[:rsync][:set]==:on - require_relative 'remote' # remote.rb - SiSU_Remote::Put.new(@opt).rsync_sitemaps + elsif @opt.f_pths.length == 0 + STDERR.puts %{requested action requires valid sisu markup file [filename (.sst .ssm)] or wildcard (that includes a valid filename)} + if (@opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).warn(:fuchsia) end else #% sisu help refer to man pages - SiSU_Env::InfoAbout.new(@opt).sisu_version - SiSU_Env::InfoAbout.new(@opt).sisu_about + actions.prepare(@opt).site? + unless done==:ok + #SiSU_Env::InfoAbout.new(@opt).sisu_about + end end @opt.files.each do |fns| if FileTest.file?(fns) @opt.fns=fns unless @opt.fns =~ /(?:\.(?:(?:-|ssm\.)?sst|ssm|ssp|sx[sdn]\.xml|termsheet.rb)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)?|\S+?\.ssp)$/ - if @opt.cmd.inspect=~/-P/ + if @opt.selections.str=~/--pg/ elsif @opt.fns=~/\.kdi$/ \ and @opt.mod.inspect =~/--(?:convert(?:-from)?|from)[=-]kdi/ elsif @opt.fns=~/\.sx[sdn]\.xml$/ \ and @opt.mod.inspect =~/--(?:(?:convert(?:-from)?|from)[=-])?(?:xml2sst|sxml)/ elsif @opt.fns=~/\.ssi$/ \ and @opt.mod.inspect =~/--identify/ - else SiSU::Operations.new(@opt).not_recognised + else SiSU_Hub_Actions::Operations.new(@opt).not_recognised end end if @opt.fns =~/\.ssm\.sst$/ \ - and @opt.cmd !~/[S_M]/ # rework necessry, revist, the _ flag is a hack, to keep ._sst files + and @opt.selections.str !~/[S_M]/ # rework necessary, revist, the _ flag is a hack, to keep ._sst files @msg,@msgs='temporary file removed',nil @tell.call.warn unless @opt.act[:quiet][:set]==:on File.unlink(@opt.fns) if File.exist?(@opt.fns) #CONSIDER end - else #SiSU::Operations.new(fns,'html').not_found + else #SiSU::Operations.new(fns,'html').not_found end end end diff --git a/lib/sisu/v5/hub_actions.rb b/lib/sisu/v5/hub_actions.rb new file mode 100644 index 00000000..8717f815 --- /dev/null +++ b/lib/sisu/v5/hub_actions.rb @@ -0,0 +1,585 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Ralph Amissah, + All Rights Reserved. + + * License: GPL 3 or later: + + SiSU, a framework for document structuring, publishing and search + + Copyright (C) Ralph Amissah + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see . + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + + + + + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + + + + * Download: + + + * Git + + + + * Ralph Amissah + + + + ** Description: SiSU information Structuring Universe, text structuring, + processing, publishing, search + +=end +module SiSU_Hub_Actions + class HubActions + def initialize(opt) + @opt=opt + end + def prepare + def site? + if @opt.act[:site_init][:set]==:on #% --init-site, -C initialize/configure + require_relative 'conf' #% --init-site, -C initialize/configure + SiSU_Initialize::Source.new(@opt).read + if @opt.act[:rsync][:set]==:on + if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + and @opt.selections.str =~/RZ/ + SiSU::Operations.new(@opt).remote_put_base_site_rsync_match + else SiSU::Operations.new(@opt).remote_put_base_site_rsync + end + elsif @opt.act[:scp][:set]==:on + if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + and @opt.selections.str =~/CCr/ + SiSU::Operations.new(@opt).remote_put_base_site_all + else SiSU::Operations.new(@opt).remote_put_base_site + end + end + end + end + def remote_site? + if @opt.act[:site_init][:set]==:on + if @opt.act[:site_init][:set]==:on #% --init-site, -C initialize/configure + #require_relative 'conf' #% --init-site, -C initialize/configure + #SiSU_Initialize::Source.new(@opt).read + #if @opt.act[:rsync][:set]==:on + # if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + # and @opt.selection =~/RZ/ + # SiSU::Operations.new(@opt).remote_put_base_site_rsync_match + # else SiSU::Operations.new(@opt).remote_put_base_site_rsync + # end + #elsif @opt.act[:scp][:set]==:on + # if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + # and @opt.selection =~/CCr/ + # SiSU::Operations.new(@opt).remote_put_base_site_all + # else SiSU::Operations.new(@opt).remote_put_base_site + # end + #end + end + end + end + def sql? + if @opt.act[:psql_createdb][:set]==:on \ + or @opt.act[:psql_create][:set]==:on \ + or @opt.act[:psql_drop][:set]==:on + done=:ok + if @opt.act[:psql][:set]==:on + require_relative 'dbi' + SiSU_DBI::SQL.new(@opt).connect + end + end + if @opt.act[:sqlite_createdb][:set]==:on \ + or @opt.act[:sqlite_create][:set]==:on \ + or @opt.act[:sqlite_drop][:set]==:on + done=:ok + if @opt.act[:sqlite][:set]==:on + require_relative 'dbi' + SiSU_DBI::SQL.new(@opt).connect + end + end + end + self + end + def outputs + if @opt.f_pths.length > 0 + def each_file + def abstract_objects? + if @opt.act[:ao][:set]==:on #% --ao --dal, -m + unless @opt.act[:po4a][:set]==:on # --po4a, -P + if @opt.fno =~ /\.ssm$/ + require_relative 'ao_composite' # ao_composite.rb #pre-processing + SiSU_Assemble::Composite.new(@opt).read + end + require_relative 'ao' # -m ao.rb + SiSU_AO::Source.new(@opt).read + end + end + end + def qrcode? + if @opt.act[:qrcode][:set]==:on #% --qrcode, -Q + require_relative 'qrcode' # qrcode.rb + SiSU_QRcode::Source.new(@opt).read + end + end + def hash_digests? + if @opt.act[:hash_digests][:set]==:on #% --hash-digests, -N digest tree + require_relative 'digests' # digests.rb + SiSU_DigestView::Source.new(@opt).read + end + end + def text? + if @opt.act[:txt][:set]==:on #% --txt, -t -a + require_relative 'txt_plain' # txt_plain.rb + SiSU_Txt_Plain::Source.new(@opt).read + end + if @opt.act[:txt_textile][:set]==:on #% --textile + require_relative 'txt_textile' # txt_textile.rb + SiSU_Txt_Textile::Source.new(@opt).read + end + if @opt.act[:txt_asciidoc][:set]==:on #% --asciidoc + require_relative 'txt_asciidoc' # txt_asciidoc.rb + SiSU_Txt_AsciiDoc::Source.new(@opt).read + end + if @opt.act[:txt_markdown][:set]==:on #% --markdown + require_relative 'txt_markdown' # txt_markdown.rb + SiSU_Txt_Markdown::Source.new(@opt).read + end + if @opt.act[:txt_rst][:set]==:on #% --rst, --rest + require_relative 'txt_rst' # txt_rst.rb + SiSU_Txt_rST::Source.new(@opt).read + end + end + def html? + if @opt.act[:html][:set]==:on #% --html, -h -H + require_relative 'html' # html.rb + SiSU_HTML::Source.new(@opt).read + else + if @opt.act[:html_seg][:set]==:on #% --html-seg (-h -H) + require_relative 'html' # html.rb + SiSU_HTML::Source.new(@opt).read + end + if @opt.act[:html_scroll][:set]==:on #% --html-scroll (-h -H) + require_relative 'html' # html.rb + SiSU_HTML::Source.new(@opt).read + end + end + if @opt.act[:concordance][:set]==:on #% --concordance, -w + require_relative 'html_concordance' # html_concordance.rb + SiSU_Concordance::Source.new(@opt).read + end + end + def xhtml? + if @opt.act[:xhtml][:set]==:on #% --xhtml, -b xhtml + require_relative 'xhtml' # xhtml.rb + SiSU_XHTML::Source.new(@opt).read + end + if @opt.act[:epub][:set]==:on #% --epub, -e + require_relative 'xhtml_epub2' # xhtml_epub2.rb + SiSU_XHTML_EPUB2::Source.new(@opt).read + end + end + def xml? + if @opt.act[:odt][:set]==:on #% --odt, -o opendocument + require_relative 'xml_odf_odt' # xml_odf_odt.rb + SiSU_XML_ODF_ODT::Source.new(@opt).read + end + if @opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu + require_relative 'xml_scaffold_structure_sisu' # xml_scaffold_structure_sisu.rb + SiSU_XML_Scaffold_Structure_Sisu::Source.new(@opt).read + end + if @opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse + require_relative 'xml_scaffold_structure_collapsed' # xml_scaffold_structure_collapsed.rb + SiSU_XML_Scaffold_Structure_Collapse::Source.new(@opt).read + end + if @opt.act[:xml_docbook_book][:set]==:on #% --xml-docbook + require_relative 'xml_docbook5' # xml_docbook5.rb + SiSU_XML_Docbook_Book::Source.new(@opt).read + end + if @opt.act[:xml_fictionbook][:set]==:on #% --xml-fictionbook + require_relative 'xml_fictionbook2' # xml_fictionbook2.rb + SiSU_XML_Fictionbook::Source.new(@opt).read + end + if @opt.act[:xml_sax][:set]==:on #% --xml-sax, -x xml sax type + require_relative 'xml_sax' # xml_sax.rb + SiSU_XML_SAX::Source.new(@opt).read + end + if @opt.act[:xml_dom][:set]==:on #% --xml-dom, -X xml dom type + require_relative 'xml_dom' # xml_dom.rb + SiSU_XML_DOM::Source.new(@opt).read + end + end + def pdf? + if @opt.act[:pdf][:set]==:on \ + or @opt.act[:pdf_p][:set]==:on \ + or @opt.act[:pdf_l][:set]==:on #% --pdf-l --pdf, -p latex/ texpdf + require_relative 'texpdf' # texpdf.rb + SiSU_TeX::Source.new(@opt).read + end + end + def man_or_info? + if @opt.act[:manpage][:set]==:on #% --manpage, -i + require_relative 'manpage' # manpage.rb + SiSU_Manpage::Source.new(@opt).read + end + if @opt.act[:texinfo][:set]==:on #% --texinfo, -I + require_relative 'texinfo' # texinfo.rb + SiSU_TexInfo::Source.new(@opt).read + end + end + def sqlite_discrete? + if @opt.act[:sqlite_discrete][:set]==:on #% --sqlite, -d DB sqlite + require_relative 'dbi_discrete' # dbi_discrete.rb + SiSU_DBI_Discrete::SQL.new(@opt).build + end + end + def manifest? + if @opt.act[:manifest][:set]==:on #% --manifest, -y + require_relative 'manifest' # manifest.rb + ((@opt.act[:sisupod][:set]==:on \ + || @opt.act[:share_source][:set]==:on) \ + && @opt.f_pths.length < 2 ) \ + ? nil + : SiSU_Manifest::Source.new(@opt).read + end + end + def harvest? + if @opt.act[:harvest][:set]==:on + require_relative 'harvest' # harvest.rb + SiSU_Harvest::Source.new(@opt).read # -h -H html.rb + end + end + self + end + def loop_files + def share_source? + if @opt.act[:share_source][:set]==:on \ + or @opt.act[:sisupod][:set]==:on \ + or @opt.act[:git][:set]==:on + begin + require_relative 'src_shared' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Source::SiSUpodSource.new(@opt).read + end + if @opt.act[:share_source][:set]==:on + require_relative 'src_share' # -s src_share.rb + begin + ensure + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do + SiSU_Markup::Source.new(@opt).read + end + end + end + if @opt.act[:sisupod][:set]==:on #% --sisupod, -S make sisupod + require_relative 'src_sisupod_make' # -S src_sisupod_make.rb + begin + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do + SiSU_Doc::Source.new(@opt).sisupod_tar_xz + end + ensure + end + end + if @opt.act[:git][:set]==:on #% --git, -g sisu git + require_relative 'git' # -g git.rb + begin + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Git::Source.new(@opt).read + end + ensure + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do + SiSU_Git::Source.new(@opt).git_commit + end + end + end + if (@opt.act[:sisupod][:set]==:on \ + || @opt.act[:share_source][:set]==:on) \ + and @opt.act[:manifest][:set]==:on #% --manifest, -y + require_relative 'manifest' # -y manifest.rb + begin + ensure + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do + SiSU_Manifest::Source.new(@opt).read + end + end + end + ensure + env=SiSU_Env::InfoEnv.new(@opt.fns) + path_pod=env.processing_path.processing_sisupod(@opt).paths + unless @opt.act[:maintenance][:set]==:on + FileUtils::rm_rf("#{path_pod[:sisupod]}/*") \ + if FileTest.directory?(path_pod[:sisupod]) + end + end + end + if @opt.act[:po4a][:set]==:on #% --po4a, -P + require_relative 'po4a' + begin + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Po4a::Source.new(@opt).read # -P po4a.rb + end + ensure + end + end + if @opt.act[:images][:set]==:on #% --images, -j + require_relative 'shared_images' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Images::Source.new(@opt).read # -j shared_images.rb + end + end + end + def run_termsheet? #broken, revisit later + if @opt.selections.str =~/--termsheet/ #% -T termsheet/standard form #fix later + @opt.files.each do |fns| + if FileTest.file?(fns) + @opt.fns=fns + case @opt.fns + when /\.(termsheet.rb)$/ + SiSU::Operations.new(@opt).termsheet + else #print "not processed --> ", fns, "\n" + end + else SiSU::Operations.new(@opt).not_found + end + end + end + end + def sql? + if @opt.act[:psql][:set]==:on #% --pg, -D DB postgresql + require_relative 'dbi' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_DBI::SQL.new(@opt).connect # -D -d dbi.rb + end + end + if @opt.act[:sqlite][:set]==:on #% --sqlite, -d DB sqlite + require_relative 'dbi' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_DBI::SQL.new(@opt).connect # -D -d dbi.rb + end + end + end + def manifest? + if @opt.act[:manifest][:set]==:on #% --manifest, -y + require_relative 'manifest' + SiSU::OptionLoopFiles.new(@opt).manifest_on_files_translated do + SiSU_Manifest::Source.new(@opt).read # -y manifest.rb + end + end + end + def sitemaps? + if @opt.act[:sitemap][:set]==:on #% --sitemap, -Y + require_relative 'sitemaps' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Sitemaps::Source.new(@opt).read # -Y sitemaps.rb + end + end + end + def remote_placement? + if @opt.act[:harvest][:set] !=:on + if @opt.act[:scp][:set]==:on #% -r copy to remote server + require_relative 'remote' # -r remote.rb + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Remote::Put.new(@opt).scp + end + end + if @opt.act[:rsync][:set]==:on #% -R copy to remote server + require_relative 'remote' # -R remote.rb + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Remote::Put.new(@opt).rsync + end + end + else + end + end + def urls? + if @opt.act[:urls_selected][:set]==:on #% --sitemap, -Y + require_relative 'urls' + SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do + SiSU_Urls::Source.new(@opt).read #% urls.rb + end + end + end + self + end + end + def init? + SiSU_Env::InfoProcessingFlag.new + if (@opt.act[:verbose][:set]==:on \ + || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + SiSU_Screen::Ansi.new( + @opt.act[:color_state][:set], + ' ' + File.dirname(__FILE__) + ).grey + end + if @opt.act[:ao][:set]==:on \ + or @opt.act[:maintenance][:set]==:on #% --maintenance, -m for -C + env=SiSU_Env::InfoEnv.new(@opt.fns) + path={} + path[:css]=env.path.output + '/_sisu/css' + path[:xml]=env.path.output + '/_sisu/xml' + path[:xsd]=path[:xml] + '/xsd' + path[:xsd]=path[:xml] + '/rnc' + path[:xsd]=path[:xml] + '/rng' + re_p3=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ + unless @opt.files.join(',') =~ re_p3 #do not mix pods with source markup files in command line + if @opt.act[:maintenance][:set] ==:on + $VERBOSE=false #debug $VERBOSE=true + end + end + re_p2=/(sisupod(?:\.zip)?|\S+?\.ss[mt]\.zip)$/ + unless @opt.files.join(',') =~ re_p2 #do not mix pods with source markup files in command line + if @opt.act[:maintenance][:set] ==:on + $VERBOSE=false #debug $VERBOSE=true + end + end + end + if @opt.act[:sample_search_form][:set]==:on #% --sample-search-form, -F cgi sample search form + SiSU::Operations.new(@opt).cgi + end + if @opt.act[:webrick][:set]==:on #% --webrick, -W webrick + SiSU::Operations.new(@opt).webrick + end + if @opt.act[:ao][:set]==:on + @retry_count= -1 + begin + @get_s,@get_p,@get_pl=[],[],[] + 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 << @opt.f_pths[0][:url] + end + if fns =~re_p3 + @get_p << re_p3.match(fns)[1] if re_p3 + end + if fns =~re_pl3 + @get_pl << re_pl3.match(fns)[1] if re_p3 + end + end + if @get_s.length > 0 #% remote markup file .sst + require_relative 'remote' # remote.rb + SiSU_Remote::Get.new(@opt,@get_s).fns + SiSU::Operations.new.counter + end + if @get_p.length > 0 #% remote sisupod + require_relative 'remote' # remote.rb + SiSU_Remote::Get.new(@opt,@get_p).sisupod + end + rescue + SiSU_Errors::Rescued.new($!,$@,@opt,@fns).location do + __LINE__.to_s + ':' + __FILE__ + end + @retry_count +=1 + retry unless @retry_count > 1 + ensure + end + end + end + self + end + end + class Operations + @@n_do=0 + def initialize(opt='') + @opt=opt + @cX=SiSU_Screen::Ansi.new(@opt).cX + end + def counter + @@n_do=0 + end + def remote_put_base_site_rsync # -CR + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ + if @opt.act[:maintenance][:set] ==:on + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).rsync_base + end + def remote_put_base_site_rsync_match # -CCRZ + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ + if @opt.act[:maintenance][:set] ==:on + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).rsync_base_sync + end + def remote_put_base_site # -Cr + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ + if @opt.act[:maintenance][:set] ==:on + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).scp_base + end + def remote_put_base_site_all # -CCr + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ + if @opt.act[:maintenance][:set] ==:on + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).scp_base_all + end + def cgi # -F + require_relative 'cgi' # cgi.rb + SiSU_CGI::SearchSQL.new(@opt).read + end + def termsheet # -t + system("sisu_termsheet #{@opt.selections.str} #{@opt.fns}\n") + @@n_do=@@n_do+1 + SiSU_Screen::Ansi.new( + @opt.selections.str,@@n_do, + 'Termsheet(s) processed' + ).term_sheet_title unless @opt.act[:quiet][:set] ==:on + end + def webrick # -W + prt=SiSU_Env::InfoEnv.new(@fns).port.webrick_port + puts %{#{@cX.blue}<<#{@cX.off}#{@cX.green}Start Webrick web server on port: #{prt}#{@cX.off}#{@cX.blue}>> #{@cX.off*2} } + require_relative 'webrick' + SiSU_Webserv::WebrickStart.new + end + def not_found + puts "\n#{@cX.fuchsia}FILE NOT FOUND:#{@cX.off} << #{@opt.fns} >> - requested #{@opt.selections.str} processing skipped\n" + end + def convert_name_message(fns,type,i,o,rune) + %{\nIn filename: "#{@cX.fuchsia}#{fns}#{@cX.off}" << #{type} >> #{@cX.fuchsia}is apre 0.36 markup filename.#{@cX.off} #{@cX.brown}Please rename your file.#{@cX.off}\n\tAs of sisu-0.37, SiSU markup files with #{@cX.brown}the extensions #{i} should be re-named #{o}#{@cX.off}\n\tif you have the program called 'rename' installed, the following rune should do the trick:\n\t\t#{rune}\n\talternatively try:\n\t\tsisu --convert --36to37 #{fns}\n\trequested #{@opt.selections.str} processing skipped\n} + end + def not_recognised + case @opt.fns + when /(\.s[123])$/ + type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') + rune=%q{rename 's/\.s[123]$/\.sst/' *.s{1,2,3}} + puts convert_name_message(@opt.fns,type,'.s1 .s2 and .s3','.sst',rune) + when /(\.r[123])$/ + type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') + rune=%q{rename 's/\.r[123]$/\.ssm/' *.r{1,2,3}} + puts convert_name_message(@opt.fns,type,'.r1 .r2 and .r3','.sst',rune) + puts %{\n\tNote also that you will need to change the names of the files called/required\n\twithin the document text to build the composite document\n\t\t.s1 .s2 .s3 should be .sst \n\t\t.si should be .ssi\n\trequested #{@opt.selections.str} processing skipped\n} + when /(\.ssi)$/ + puts "\n#{@cX.fuchsia}component filetype:#{@cX.off} << #{@opt.fns} >> - is not a processed filetype, (it may be used as a component of a .ssm markup file)\n\trequested #{@opt.selections.str} processing skipped\n" + else + puts "\n#{@cX.fuchsia}FILETYPE NOT RECOGNISED:#{@cX.off} << #{@opt.fns} >> - is not a recognized filetype,\n\trequested #{@opt.selections.str} processing skipped\n" + end + end + end +end +__END__ diff --git a/lib/sisu/v5/hub_options.rb b/lib/sisu/v5/hub_options.rb index f851b985..c079915b 100644 --- a/lib/sisu/v5/hub_options.rb +++ b/lib/sisu/v5/hub_options.rb @@ -51,7 +51,7 @@ * Git - + * Ralph Amissah @@ -156,11 +156,12 @@ module SiSU_Commandline end end class Options - attr_accessor :cmd,:mod,:act,:dir_structure_by,:lingual,:f_pths,:files,:files_mod,:call_path,:base_path,:base_stub,:sub_location,:image_src_path,:paths,:lngs,:f_pth,:pth,:fno,:fns,:fnb,:fnc,:fng,:fncb,:lng,:lng_base,:what,:make_instructions,:make_instructions_pod + attr_accessor :selections,:opt_ch,:act,:dir_structure_by,:lingual,:f_pths,:files,:files_mod,:call_path,:base_path,:base_stub,:sub_location,:image_src_path,:paths,:lngs,:f_pth,:pth,:fno,:fns,:fnb,:fnc,:fng,:fncb,:lng,:lng_base,:what,:make_instructions,:make_instructions_pod @@act=nil def initialize(a,call_path) - @cmd=@f_pth=@pth=@fno=@fns=@fnb=@fnc=@fng=@fncb=@what=@lng=@lng_base=@call_path=@base_path=@base_stub=@image_src_path=@sub_location='' - @f_pths,@files,@files_mod,@paths,@mod,@act=Array.new(5){[]} + @opt_ch=@f_pth=@pth=@fno=@fns=@fnb=@fnc=@fng=@fncb=@what=@lng=@lng_base=@call_path=@base_path=@base_stub=@image_src_path=@sub_location='' + @f_pths,@files,@files_mod,@paths,@select_arr,@act=Array.new(5){[]} + @select_str=nil @env=SiSU_Env::InfoEnv.new @lng_base=@env.language_default_set @dir_structure_by=SiSU_Env::EnvCall.new.output_dir_structure.by? @@ -269,24 +270,25 @@ module SiSU_Commandline if a.length > 0 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]) + files=(q[:files].length > 0) ? :true : :false + @select_arr=opt_cmd_and_mod_adjust(q[:opt_ch],q[:selections],files) @what=q[:what] unless q[:what].empty? @paths = q[:paths] @files = q[:files] @f_pths = q[:f_pths] @lngs = q[:lngs] if @files.length > 0 \ - and @cmd.empty? \ - and @mod.length==0 #% if no other action called on filename given, default is sisu --v5 -0 [filename(s)] configured as flag default + and @opt_ch.empty? \ + and @select_arr.length==0 #% if no other action called on filename given, default is sisu --v5 -0 [filename(s)] configured as flag default shortcut=SiSU_Env::InfoProcessingFlag.new - @mod=['--v5'] - @cmd=shortcut.cf_0 + ' --dal' + @select_arr=['--v5'] + @select_arr << shortcut.act_0.arr #+ ' --dal' end - if @cmd =~/[vVM]/ \ - && @cmd !~/-[ku]*v[ku]*$/ + if @select_arr.inspect =~/--verbose/ \ + && @opt_ch !~/-[ku]*v[ku]*$/ SiSU_Screen::Ansi.new( - @cmd, - "\tsisu " + @cmd + ' ' + @mod.join(' ') + ' ' + @files.join(' ') + "\n" + @opt_ch, + "\tsisu " + @opt_ch + ' ' + @select_arr.join(' ') + ' ' + @files.join(' ') + "\n" ).print_brown end end @@ -443,8 +445,8 @@ module SiSU_Commandline end end { - cmd: c, - mod: m, + opt_ch: c, + selections: m, what: w, paths: pth, files: f, @@ -454,387 +456,583 @@ module SiSU_Commandline } end def expand_numeric_shortcuts(a) + s='' + a.each do |x| + y=case x + when /0/ + (x=~/^-0\S+/) \ + ? x.gsub(/^-0(\S+)/,'--act0' + ' -\1') + : x.gsub(/^-0/,'--act0' + ' ') + when /1/ + (x=~/^-1\S+/) \ + ? x.gsub(/^-1(\S+)/,'--act1' + ' -\1') + : x.gsub(/^-1/,'--act1' + ' ') + when /2/ + (x=~/^-2\S+/) \ + ? x.gsub(/^-2(\S+)/,'--act2' + ' -\1') + : x.gsub(/^-2/,'--act2' + ' ') + when /3/ + (x=~/^-3\S+/) \ + ? x.gsub(/^-3(\S+)/,'--act3' + ' -\1') + : x.gsub(/^-3/,'--act3' + ' ') + when /4/ + (x=~/^-4\S+/) \ + ? x.gsub(/^-4(\S+)/,'--act4' + ' -\1') + : x.gsub(/^-4/,'--act4' + ' ') + when /5/ + (x=~/^-5\S+/) \ + ? x.gsub(/^-5(\S+)/,'--act5' + ' -\1') + : x.gsub(/^-5/,'--act5' + ' ') + when /6/ + (x=~/^-6\S+/) \ + ? x.gsub(/^-6(\S+)/,'--act6' + ' -\1') + : x.gsub(/^-6/,'--act6' + ' ') + when /7/ + (x=~/^-7\S+/) \ + ? x.gsub(/^-7(\S+)/,'--act7' + ' -\1') + : x.gsub(/^-7/,'--act7' + ' ') + when /8/ + (x=~/^-8\S+/) \ + ? x.gsub(/^-8(\S+)/,'--act8' + ' -\1') + : x.gsub(/^-8/,'--act8' + ' ') + when /9/ + (x=~/^-9\S+/) \ + ? x.gsub(/^-9(\S+)/,'--act9' + ' -\1') + : x.gsub(/^-9/,'--act9' + ' ') + else x + end + s << " #{y}" unless y.empty? + end + s.strip! + end + def expand_numeric_shortcuts_(a) shortcut=SiSU_Env::InfoProcessingFlag.new s='' a.each do |x| y=case x when /0/ (x=~/^-0\S+/) \ - ? x.gsub(/^-0(\S+)/,shortcut.cf_0 + ' -\1') - : x.gsub(/^-0/,shortcut.cf_0 + ' ') + ? x.gsub(/^-0(\S+)/,shortcut.act_0.str + ' -\1') + : x.gsub(/^-0/,shortcut.act_0.str + ' ') when /1/ (x=~/^-1\S+/) \ - ? x.gsub(/^-1(\S+)/,shortcut.cf_1 + ' -\1') - : x.gsub(/^-1/,shortcut.cf_1 + ' ') + ? x.gsub(/^-1(\S+)/,shortcut.act_1.str + ' -\1') + : x.gsub(/^-1/,shortcut.act_1.str + ' ') when /2/ (x=~/^-2\S+/) \ - ? x.gsub(/^-2(\S+)/,shortcut.cf_2 + ' -\1') - : x.gsub(/^-2/,shortcut.cf_2 + ' ') + ? x.gsub(/^-2(\S+)/,shortcut.act_2.str + ' -\1') + : x.gsub(/^-2/,shortcut.act_2.str + ' ') when /3/ (x=~/^-3\S+/) \ - ? x.gsub(/^-3(\S+)/,shortcut.cf_3 + ' -\1') - : x.gsub(/^-3/,shortcut.cf_3 + ' ') + ? x.gsub(/^-3(\S+)/,shortcut.act_3.str + ' -\1') + : x.gsub(/^-3/,shortcut.act_3.str + ' ') when /4/ (x=~/^-4\S+/) \ - ? x.gsub(/^-4(\S+)/,shortcut.cf_4 + ' -\1') - : x.gsub(/^-4/,shortcut.cf_4 + ' ') + ? x.gsub(/^-4(\S+)/,shortcut.act_4.str + ' -\1') + : x.gsub(/^-4/,shortcut.act_4.str + ' ') when /5/ (x=~/^-5\S+/) \ - ? x.gsub(/^-5(\S+)/,shortcut.cf_5 + ' -\1') - : x.gsub(/^-5/,shortcut.cf_5 + ' ') + ? x.gsub(/^-5(\S+)/,shortcut.act_5.str + ' -\1') + : x.gsub(/^-5/,shortcut.act_5.str + ' ') when /6/ (x=~/^-6\S+/) \ - ? x.gsub(/^-6(\S+)/,shortcut.cf_5 + ' -\1') - : x.gsub(/^-6/,shortcut.cf_5 + ' ') + ? x.gsub(/^-6(\S+)/,shortcut.act_6.str + ' -\1') + : x.gsub(/^-6/,shortcut.act_6.str + ' ') + when /7/ + (x=~/^-7\S+/) \ + ? x.gsub(/^-7(\S+)/,shortcut.act_7.str + ' -\1') + : x.gsub(/^-7/,shortcut.act_7.str + ' ') + when /8/ + (x=~/^-8\S+/) \ + ? x.gsub(/^-8(\S+)/,shortcut.act_8.str + ' -\1') + : x.gsub(/^-8/,shortcut.act_8.str + ' ') + when /9/ + (x=~/^-9\S+/) \ + ? x.gsub(/^-9(\S+)/,shortcut.act_9.str + ' -\1') + : x.gsub(/^-9/,shortcut.act_9.str + ' ') 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 - if not m.empty? \ - and m.inspect =~/"--pdf-/ - mod << '--pdf' - m.each do |s| - if s =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/ - mod << '--landscape' - end - if s =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/ - mod << '--portrait' - end - if s =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/ - if s =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/ - mod << '--papersize-a4' - end - if s =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/ - mod << '--papersize-a5' + def opt_cmd_and_mod_adjust(ch,select_arr,files) +if @select_arr.length > 0 + p __LINE__ + p @selection +end + select_arr=select_arr.flatten + sel_init=select_arr.flatten + shortcut=SiSU_Env::InfoProcessingFlag.new + if files ==:true + if not sel_init.empty? \ + and sel_init.inspect =~/"--act[0-9]/ + sel_init.each do |s| + select_arr <<=case s + when /--act0/ then shortcut.act_0.arr + when /--act1/ then shortcut.act_1.arr + when /--act2/ then shortcut.act_2.arr + when /--act3/ then shortcut.act_3.arr + when /--act4/ then shortcut.act_4.arr + when /--act5/ then shortcut.act_5.arr + when /--act6/ then shortcut.act_6.arr + when /--act7/ then shortcut.act_7.arr + when /--act8/ then shortcut.act_8.arr + when /--act9/ then shortcut.act_9.arr end - if s =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/ - mod << '--papersize-b5' + end + end + if not sel_init.empty? \ + and sel_init.inspect =~/"--pdf-/ + select_arr << '--pdf' + sel_init.each do |s| + if s =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/ + select_arr << '--landscape' end - if s =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/ - mod << '--papersize-letter' + if s =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/ + select_arr << '--portrait' end - if s =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/ - mod << '--papersize-legal' + if s =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/ + if s =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/ + select_arr << '--papersize-a4' + end + if s =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/ + select_arr << '--papersize-a5' + end + if s =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/ + select_arr << '--papersize-b5' + end + if s =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/ + select_arr << '--papersize-letter' + end + if s =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/ + select_arr << '--papersize-legal' + end end end + select_arr=select_arr.uniq end - mod=mod.uniq - end - unless m.empty? - m.each do |s| - case s - when /^--(?:color-toggle)$/ then c=c+'c' - when /^--(?:color-off)$/ then c=c+'k' - when /^--(?:conf|config|configure|init|initialize|init-site)$/ then c=c+'CC' - when /^--(?:ao|dal?|machine|abstraction|abs)$/ then c=c+'m' - when /^--(?:txt|text|plaintext)$/ then c=c+'t' - when /^--(?:html)$/ then c=c+'h' - when /^--(?:html-scroll|html-seg)$/ then c=c+'H' - 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' - when /^--pdf-(?:p(?:ortrait)?|l(?:andscape)?)-(?:a4|letter|a5|b5|legal)$/ then c=c+'L' - when /^--pdf-(?:a4|letter|a5|b5|legal)-(?:p(?:ortrait)?|l(?:andscape)?)$/ then c=c+'L' - when /^--(?:concordance|wordmap)$/ then c=c+'w' - when /^--(?:manpage|man)$/ then c=c+'i' - when /^--(?:texinfo)$/ then c=c+'I' - when /^--(?:xhtml)$/ then c=c+'b' - when /^--(?:xml-sax)$/ then c=c+'x' - when /^--(?:xml-dom)$/ then c=c+'X' - when /^--(?:images)$/ then c=c+'j' - when /^--(?:digests?|hash-digests)$/ then c=c+'N' - when /^--(?:po4a|pot?)$/ then c=c+'P' - when /^--(?:termsheet)$/ then c=c+'T' - when /^--(?:manifest)$/ then c=c+'y' - when /^--(?:qrcode)$/ then c=c+'Q' - when /^--(?:remote|rsync)$/ then c=c+'R' - when /^--(?:scp)$/ then c=c+'r' - when /^--(?:source)$/ then c=c+'s' - when /^--(?:sisupod|pod)$/ then c=c+'S' - when /^--(?:git)$/ then c=c+'g' - when /^--(?:urls)$/ then c=c+'U' - when /^--(?:zap|delete)$/ then c=c+'Z' - when /^--(?:sample-search-form)$/ then c=c+'F' - when /^--(?:webserv|webrick)$/ then c=c+'W' - when /^--(?:profile)$/ then c=c+'E' - when /^--(?:maintenance|keep-processing-files)$/ then c=c+'M' - when /^--(?:verbose[=-]3)$/ then c=c+'VM' - when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/ then c=c+'V' - when /^--(?:verbose(?:[=-]1)?)$/ then c=c+'v' - when /^--(?:version)$/ then c=c+'v' - when /^--(?:verbose[=-]0|quiet|silent)$/ then c=c+'q' - else mod << s #mod only contains command modifiers; commands converted to character + if ch.empty? \ + and sel_init.length == 0 + select_arr << shortcut.act_0.arr ################ & --flag empty + elsif not ch.empty? + if ch =~/c/ then select_arr << '--color-toggle' + ch=ch.gsub(/[c]/,'') + end + if ch =~/k/ then select_arr << '--color-off' + ch=ch.gsub(/[k]/,'') + end + if ch =~/C/ then select_arr << '--config' + ch=ch.gsub(/[C]+/,'') + end + if ch =~/m/ then select_arr << '--dal' + ch=ch.gsub(/[m]/,'') + end + if ch =~/t/ then select_arr << '--txt' + ch=ch.gsub(/[t]/,'') + end + if ch =~/h/ then select_arr << '--html' + ch=ch.gsub(/[h]/,'') + end + if ch =~/e/ then select_arr << '--epub' + ch=ch.gsub(/[e]/,'') + end + if ch =~/o/ then select_arr << '--odt' + ch=ch.gsub(/[o]/,'') + end + if ch =~/d/ then select_arr << '--docbook' + ch=ch.gsub(/[d]/,'') + end + if ch =~/p/ then select_arr << '--pdf' + ch=ch.gsub(/[p]/,'') + end + if ch =~/w/ then select_arr << '--concordance' + ch=ch.gsub(/[w]/,'') + end + if ch =~/i/ then select_arr << '--manpage' + ch=ch.gsub(/[i]/,'') + end + if ch =~/I/ then select_arr << '--texinfo' + ch=ch.gsub(/[I]/,'') + end + if ch =~/b/ then select_arr << '--xhtml' + ch=ch.gsub(/[b]/,'') + end + if ch =~/x/ then select_arr << '--xml-sax' + ch=ch.gsub(/[x]/,'') + end + if ch =~/X/ then select_arr << '--xml-dom' + ch=ch.gsub(/[X]/,'') + end + if ch =~/j/ then select_arr << '--images' + ch=ch.gsub(/[j]/,'') + end + if ch =~/N/ then select_arr << '--digests' + ch=ch.gsub(/[N]/,'') + end + if ch =~/P/ then select_arr << '--po4a' + ch=ch.gsub(/[P]/,'') + end + if ch =~/d/ then select_arr << '--sqlite' + ch=ch.gsub(/[d]/,'') + end + if ch =~/D/ then select_arr << '--pg' + ch=ch.gsub(/[D]/,'') + end + if ch =~/Q/ then select_arr << '--qrcode' + ch=ch.gsub(/[Q]/,'') + end + if ch =~/s/ then select_arr << '--source' + ch=ch.gsub(/[s]/,'') + end + if ch =~/S/ then select_arr << '--sisupod' + ch=ch.gsub(/[S]/,'') + end + if ch =~/m/ then select_arr << '--manifest' + ch=ch.gsub(/[m]/,'') + end + if ch =~/R/ then select_arr << '--rsync' + ch=ch.gsub(/[R]/,'') + end + if ch =~/r/ then select_arr << '--scp' + ch=ch.gsub(/[r]/,'') + end + if ch =~/g/ then select_arr << '--git' + ch=ch.gsub(/[g]/,'') + end + if ch =~/U/ then select_arr << '--urls' + ch=ch.gsub(/[u]/,'') + end + if ch =~/Z/ then select_arr << '--zap' + ch=ch.gsub(/[Z]/,'') + end + if ch =~/F/ then select_arr << '--sample-search-form' + ch=ch.gsub(/[F]/,'') + end + if ch =~/w/ then select_arr << '--webrick' + ch=ch.gsub(/[w]/,'') + end + if ch =~/M/ then select_arr << '--maintenance' + ch=ch.gsub(/[M]/,'') + end + if ch =~/V/ then select_arr << '--very-verbose' + ch=ch.gsub(/[V]/,'') + end + if ch =~/v/ then select_arr << '--verbose' + ch=ch.gsub(/[v]/,'') + end + if ch =~/q/ then select_arr << '--quiet' + ch=ch.gsub(/[q]/,'') + end + if select_arr.inspect !~/--urls/ \ + and select_arr.inspect \ + !~/"--harvest/ + select_arr << '--urls' + end + if select_arr.inspect !~/--dal/ \ + and select_arr.inspect =~/txt|text|html|odt|epub|docbook|xml|pdf|manpage|texinfo|concordance|qrcode|source|sisupod|pg|sqlite|zap/ + select_arr << '--dal' + end + if select_arr.inspect !~/--manifest/ \ + and select_arr.inspect =~/txt|text|html|odt|epub|docbook|xml|pdf|manpage|texinfo|concordance|qrcode|source|sisupod|pg|sqlite|zap/ + select_arr << '--manifest' + end + if select_arr.inspect !~/--images/ \ + and select_arr.inspect =~/html|odt|docbook|xml|qrcode/ + select_arr << '--images' end end - end - ca=[] - unless c.empty? - c=c.gsub(/-/,'') - c.scan(/CC|\S/) {|x| ca << x} - cmd= '-' + ca.uniq.join - end - extra='' - if cmd !~/[mn]/ - extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \ - and cmd !~/[mn]/ - 'm' #% add ao - elsif ((mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ - and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ - and cmd !~/[mn]/ - 'm' #% add ao - else '' + else + if ch =~/C/ then select_arr << '--config' + ch=ch.gsub(/[C]+/,'') end - end - if cmd !~/j/ - extra+=if cmd =~/[bdHhwXxyz]/ \ - and cmd !~/[j]/ - 'j' #% copy images - else '' + if sel_init.inspect =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"/ + if ch =~/d/ then select_arr << '--sqlite' + ch=ch.gsub(/[d]/,'') + end + if ch =~/D/ then select_arr << '--pg' + ch=ch.gsub(/[D]/,'') + end end - end - if cmd !~/y/ - extra+=if cmd =~/[abdeHhIiNopQSstwXxz]/ \ - and cmd !~/y/ - 'ym' #% add manifest - elsif mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ \ - and files[0] !~/^remove$/ \ - and cmd !~/y/ - 'ym' #% add manifest - else '' + if ch =~/v/ then select_arr << '--version' + ch=ch.gsub(/[v]/,'') end end - if cmd !~/u/ #% add urls - extra+='u' - end - cmd=cmd + extra - cmds=cmd.scan(/CC|\S/) - [cmds.uniq.join,mod] + select_arr=select_arr.flatten.compact.uniq.sort end - def opt_act #note mod line commands have already been converted to command characters, cmd - cmd,mod=@cmd,@mod + def opt_act + select_arr=@select_arr @@act=if @@act @act=@@act else act={} - act[:license]=(mod.inspect =~/"--license/) \ + act[:license]=(select_arr.inspect \ + =~/"--license/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:site_init]=(cmd =~/C/ \ - || mod.inspect =~/"--init"|"--initialize"|"--init-site"|"--conf"|"--config"|"--configure"/) \ + act[:site_init]=(select_arr.inspect \ + =~/"--init"|"--initialize"|"--init-site"|"--conf"|"--config"|"--configure"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:rc]=if mod.inspect =~/"--rc=/ - x=Dir.pwd + '/' + mod.join.gsub(/--rc=/,'') + act[:rc]=if select_arr.inspect \ + =~/"--rc=/ + x=Dir.pwd + '/' + select_arr.join.gsub(/--rc=/,'') { bool: true, set: :on, inst: x } else { bool: false, set: :na, inst: '' } end - act[:processing_path]=if mod.inspect =~/"--processing-path=/ - base_pth=mod.join(';').gsub(/^.*--processing-path=['"]?(.+?)(?:['"]?;.+)?$/,'\1') + act[:processing_path]=if select_arr.inspect \ + =~/"--processing-path=/ + base_pth=select_arr.join(';').gsub(/^.*--processing-path=['"]?(.+?)(?:['"]?;.+)?$/,'\1') { bool: true, set: :on, inst: base_pth } - elsif mod.inspect =~/"--processing-path/ + elsif select_arr.inspect \ + =~/"--processing-path/ { bool: true, set: :on, inst: @base_path } else { bool: false, set: :na, inst: nil } end - act[:dump]=if mod.inspect =~/"--dump=/ - base_pth=mod.join(';').gsub(/^.*--dump=['"]?(.+?)(?:['"]?;.+)?$/,'\1') + act[:dump]=if select_arr.inspect \ + =~/"--dump=/ + base_pth=select_arr.join(';'). + gsub(/^.*--dump=['"]?(.+?)(?:['"]?;.+)?$/,'\1') { bool: true, set: :on, inst: base_pth } - elsif mod.inspect =~/"--dump/ + elsif select_arr.inspect =~/"--dump/ { bool: true, set: :on, inst: @base_path } else { bool: false, set: :na, inst: nil } end - act[:redirect]=if mod.inspect =~/"--redirect=/ - base_pth=mod.join(';').gsub(/^.*--redirect=['"]?(.+?)(?:['"]?;.+)?$/,'\1') + act[:redirect]=if select_arr.inspect \ + =~/"--redirect=/ + base_pth=select_arr.join(';'). + gsub(/^.*--redirect=['"]?(.+?)(?:['"]?;.+)?$/,'\1') { bool: true, set: :on, inst: base_pth } - elsif mod.inspect =~/"--redirect/ + elsif select_arr.inspect \ + =~/"--redirect/ { bool: true, set: :on, inst: @base_path } else { bool: false, set: :na, inst: nil } end - act[:switch]=if mod.inspect =~/"--switch-off=/ - off_list=mod.join(';').gsub(/^.*--switch-off=['"]?(.+?)(?:['"];.+)?$/,'\1') + act[:switch]=if select_arr.inspect \ + =~/"--switch-off=/ + off_list=select_arr.join(';'). + gsub(/^.*--switch-off=['"]?(.+?)(?:['"];.+)?$/,'\1') off_list=off_list.scan(/[^,;\s]+/) { bool: false, set: :off, off: off_list} else { bool: true, set: :na, off: [] } end - act[:default_language]=if mod.inspect =~/"--(?:default-)?language[-=](\S{2})"/ + act[:default_language]=if select_arr.inspect \ + =~/"--(?:default-)?language[-=](\S{2})"/ { set: :on, code: $1 } elsif lng_base { set: :on, code: lng_base } else { set: :na, code: 'en' } end - act[:i18n]=if mod.inspect =~/"(?:--monolingual|--i18n-mono(?:lingual)?)"/ #if monolingual possible outputs output_by :filename & :filetype only, without language code in default language name; give warning of conflict settings if monolingual & :language selected + act[:i18n]=if select_arr.inspect \ + =~/"(?:--monolingual|--i18n-mono(?:lingual)?)"/ #if monolingual possible outputs output_by :filename & :filetype only, without language code in default language name; give warning of conflict settings if monolingual & :language selected @lingual=:mono { set: :mono } - elsif mod.inspect =~/"(?:--multilingual|--i18n-multi(?:lingual)?)"/ + elsif select_arr.inspect \ + =~/"(?:--multilingual|--i18n-multi(?:lingual)?)"/ @lingual=:multi { set: :multi } else { set: :na } end - act[:output_by]=if mod.inspect =~/"--(?:output-)?by-language"/ + act[:output_by]=if select_arr.inspect \ + =~/"--(?:output-)?by-language"/ @dir_structure_by=:language { set: :language } - elsif mod.inspect =~/"--(?:output-)?by-filename"/ + elsif select_arr.inspect \ + =~/"--(?:output-)?by-filename"/ @dir_structure_by=:filename { set: :filename } - elsif mod.inspect =~/"--(?:output-)?by-filetype"/ + elsif select_arr.inspect \ + =~/"--(?:output-)?by-filetype"/ @dir_structure_by=:filetype { set: :filetype } else { set: :na } end - act[:ocn]=if mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/ + act[:ocn]=if select_arr.inspect \ + =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/ { bool: true, set: :on } - elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ \ + elsif select_arr.inspect \ + =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ \ || act[:switch][:off].inspect =~/"ocn"|"--numbering"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:toc]=if mod.inspect =~/"--inc-toc"/ + act[:toc]=if select_arr.inspect \ + =~/"--inc-toc"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-toc"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-toc"/ \ || act[:switch][:off].inspect =~/"toc"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:minitoc]=if mod.inspect =~/"--inc-minitoc"/ + act[:minitoc]=if select_arr.inspect \ + =~/"--inc-minitoc"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-minitoc"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-minitoc"/ \ || act[:switch][:off].inspect =~/"minitoc"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:links_to_manifest]=if mod.inspect =~/"--inc-links-to-manifest"|"--inc-manifest-links"/ + act[:links_to_manifest]=if select_arr.inspect \ + =~/"--inc-links-to-manifest"|"--inc-manifest-links"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-manifest"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-manifest"/ \ || act[:switch][:off].inspect =~/"manifest"/ #place lower { bool: false, set: :off } - elsif mod.inspect =~/"--(?:exc|no)-links-to-manifest"|"--(?:exc|no)-manifest-links"/ \ - || act[:switch][:off].inspect =~/"links_to_manifest"|"manifest_links"|"--(?:exc|no)-manifest"/ \ - || mod.inspect =~/"--(?:redirect|dump)/ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-links-to-manifest"|"--(?:exc|no)-manifest-links"/ \ + || act[:switch][:off].inspect \ + =~/"links_to_manifest"|"manifest_links"|"--(?:exc|no)-manifest"/ \ + || select_arr.inspect \ + =~/"--(?:redirect|dump)/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:manifest_minitoc]=if mod.inspect =~/"--inc-manifest-minitoc"|"--inc-minitoc"/ + act[:manifest_minitoc]=if select_arr.inspect \ + =~/"--inc-manifest-minitoc"|"--inc-minitoc"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-manifest-minitoc"|"--(?:exc|no)-minitoc"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-manifest-minitoc"|"--(?:exc|no)-minitoc"/ \ || act[:switch][:off].inspect =~/"manifest_minitoc"|"minitoc"/ - #|| mod.inspect =~/"--(?:redirect|dump)/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:metadata]=if mod.inspect =~/"--inc-metadata"/ + act[:metadata]=if select_arr.inspect \ + =~/"--inc-metadata"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-metadata"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-metadata"/ \ || act[:switch][:off].inspect =~/"metadata"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_minitoc]=if mod.inspect =~/"--inc-html-minitoc"|"--inc-minitoc"/ + act[:html_minitoc]=if select_arr.inspect \ + =~/"--inc-html-minitoc"|"--inc-minitoc"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-minitoc"|"--(?:exc|no)-minitoc"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-minitoc"|"--(?:exc|no)-minitoc"/ \ || act[:switch][:off].inspect =~/"html_minitoc"|"minitoc"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_navigation]=if mod.inspect =~/"--inc-html-navigation"|"--inc-navigation"/ + act[:html_navigation]=if select_arr.inspect \ + =~/"--inc-html-navigation"|"--inc-navigation"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-navigation"|"--(?:exc|no)-navigation"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-navigation"|"--(?:exc|no)-navigation"/ \ || act[:switch][:off].inspect =~/"html_navigation"|"nav"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_navigation_bar]=if mod.inspect =~/"--inc-html-navigation-bar"|"--inc-navigation-bar"/ + act[:html_navigation_bar]=if select_arr.inspect \ + =~/"--inc-html-navigation-bar"|"--inc-navigation-bar"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-navigation-bar"|"--(?:exc|no)-navigation-bar"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-navigation-bar"|"--(?:exc|no)-navigation-bar"/ \ || act[:switch][:off].inspect =~/"html_navigation_bar"|"navbar"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:segsubtoc]=if mod.inspect =~/"--inc-segsubtoc"/ + act[:segsubtoc]=if select_arr.inspect \ + =~/"--inc-segsubtoc"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-segsubtoc"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-segsubtoc"/ \ || act[:switch][:off].inspect =~/"segsubtoc"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:search_form]=if mod.inspect =~/"--inc-search-form"/ + act[:search_form]=if select_arr.inspect \ + =~/"--inc-search-form"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-search-form"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-search-form"/ \ || act[:switch][:off].inspect =~/"search_form"|"search"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_search_form]=if mod.inspect =~/"--inc-html-search-form"|"--inc-search-form"/ + act[:html_search_form]=if select_arr.inspect \ + =~/"--inc-html-search-form"|"--inc-search-form"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-search-form"|"--(?:exc|no)-search-form"/ \ - || act[:switch][:off].inspect =~/"html_search_form"|"search_form"|"search"/ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-search-form"|"--(?:exc|no)-search-form"/ \ + || act[:switch][:off].inspect \ + =~/"html_search_form"|"search_form"|"search"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_right_pane]=if mod.inspect =~/"--inc-html-right-pane"|"--inc-right-pane"|"--inc-html-right-column"|"--inc-right-column"/ + act[:html_right_pane]=if select_arr.inspect \ + =~/"--inc-html-right-pane"|"--inc-right-pane"|"--inc-html-right-column"|"--inc-right-column"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-right-pane"|"--(?:exc|no)-right-pane"|"--(?:exc|no)-html-right-column"|"--(?:exc|no)-right-column"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-right-pane"|"--(?:exc|no)-right-pane"|"--(?:exc|no)-html-right-column"|"--(?:exc|no)-right-column"/ \ || act[:switch][:off].inspect =~/"html_right_pane"|"html_right_column"|"promo"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html_top_band]=if mod.inspect =~/"--inc-html-top-band"|"--inc-top-band"/ + act[:html_top_band]=if select_arr.inspect \ + =~/"--inc-html-top-band"|"--inc-top-band"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-html-top-band"|"--(?:exc|no)-top-band"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-html-top-band"|"--(?:exc|no)-top-band"/ \ || act[:switch][:off].inspect =~/"html-top-band"|"top-band"/ { bool: false, set: :off } else { bool: true, set: :na } end - act[:html]=if mod.inspect =~/"--html-strict"/ \ - or ((cmd =~/h/ || mod.inspect =~/"--html"/) \ - && mod.inspect =~/"--strict"/) + act[:html]=if select_arr.inspect \ + =~/"--html-strict"/ \ + or ((select_arr.inspect \ + =~/"--html"/) \ + && select_arr.inspect \ + =~/"--strict"/) act[:html_strict]={ bool: true, set: :on } act[:html_scroll]={ bool: true, set: :on } act[:html_seg]={ bool: true, set: :on } { bool: true, set: :on } - elsif (cmd =~/h/ \ - || mod.inspect =~/"--html"/) + elsif (select_arr.inspect \ + =~/"--html"/) act[:html_strict]={ bool: false, set: :off } act[:html_scroll]={ bool: true, set: :on } act[:html_seg]={ bool: true, set: :on } { bool: true, set: :on } else - act[:html_strict]=(mod.inspect =~/"--strict"/) \ + act[:html_strict]=(select_arr.inspect \ + =~/"--strict"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:html_scroll]=(mod.inspect =~/"--html-scroll"/) \ + act[:html_scroll]=(select_arr.inspect \ + =~/"--html-scroll"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:html_seg]=(mod.inspect =~/"--html-seg"/) \ + act[:html_seg]=(select_arr.inspect \ + =~/"--html-seg"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } { bool: false, set: :na } end - act[:concordance]=(cmd =~/w/ \ - || mod.inspect =~/"--concordance"/) \ + act[:concordance]=(select_arr.inspect \ + =~/"--concordance"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:images]=(cmd =~/j/ \ - || mod.inspect =~/"--images"/) \ + act[:images]=(select_arr.inspect \ + =~/"--images"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - if (cmd =~/p/ \ - || mod.inspect =~/"--pdf"/) - if mod.inspect =~/"--portrait"/ + if select_arr.inspect \ + =~/"--pdf"/ + if select_arr.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"/ + elsif select_arr.inspect \ + =~/"--landscape"/ act[:pdf]= { bool: false, set: :na } act[:pdf_l]={ bool: true, set: :on } act[:pdf_p]={ bool: false, set: :na } @@ -856,47 +1054,60 @@ module SiSU_Commandline 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 + act[:pdf_a4]=if select_arr.inspect \ + =~/"--a4"|--papersize-a4"/ \ + or select_arr.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 + act[:pdf_a5]=if select_arr.inspect \ + =~/"--a5"|"--papersize-a5"/ \ + or select_arr.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*"/ + act[:pdf_b5]=if select_arr.inspect \ + =~/"--b5"|"--papersize-b5"/ \ + or select_arr.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*"/ + act[:pdf_letter]=if select_arr.inspect \ + =~/"--letter"|"--papersize-letter"/ \ + or select_arr.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*"/ + act[:pdf_legal]=if select_arr.inspect \ + =~/"--legal"|"--papersize-legal"/ \ + or select_arr.inspect \ + =~/"--papersize=\S*legal\b\S*"/ { bool: true, set: :on } else { bool: false, set: :na } end end - act[:epub]=(cmd =~/e/ \ - || mod.inspect =~/"--epub"/) \ + act[:epub]=(select_arr.inspect \ + =~/"--epub"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:odt]=if cmd =~/o/ \ - or mod.inspect =~/"--odt"|"--odf"|"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ - act[:odt_ocn]=if (mod.inspect =~/"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ \ - or mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) + act[:odt]=if select_arr.inspect \ + =~/"--odt"|"--odf"|"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ + act[:odt_ocn]=if (select_arr.inspect \ + =~/"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ \ + or select_arr.inspect \ + =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) { bool: true, set: :on } - elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ + elsif select_arr.inspect \ + =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ { bool: false, set: :off } else { bool: false, set: :na } @@ -905,38 +1116,43 @@ module SiSU_Commandline else { bool: false, set: :na } end - act[:xml_sax]=(cmd =~/x/ \ - || mod.inspect =~/"--xml-sax"/) \ + act[:xml_sax]=(select_arr.inspect \ + =~/"--xml-sax"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_dom]=(cmd =~/X/ \ - || mod.inspect =~/"--xml-dom"/) \ + act[:xml_dom]=(select_arr.inspect \ + =~/"--xml-dom"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_docbook_book]=(cmd =~/d/ \ - || mod.inspect =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/) \ + act[:xml_docbook_book]=(select_arr.inspect \ + =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_fictionbook]=(cmd =~/f/ \ - || mod.inspect =~/"--fictionbook"|"--xml-fictionbook"/) \ + act[:xml_fictionbook]=(select_arr.inspect \ + =~/"--fictionbook"|"--xml-fictionbook"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_scaffold_structure_sisu]=mod.inspect =~/"--xml-scaffold"|"--xml-scaffold-sisu"/ \ + act[:xml_scaffold_structure_sisu]=select_arr.inspect \ + =~/"--xml-scaffold"|"--xml-scaffold-sisu"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xml_scaffold_structure_collapse]=mod.inspect =~/"--xml-scaffold-collapse"/ \ + act[:xml_scaffold_structure_collapse]=select_arr.inspect \ + =~/"--xml-scaffold-collapse"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:xhtml]=(cmd =~/b/ \ - || mod.inspect =~/"--xhtml"/) \ + act[:xhtml]=(select_arr.inspect \ + =~/"--xhtml"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:txt]=if cmd =~/[at]/ \ - or mod.inspect =~/"--txt"|"--text"|"--plaintext"|"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ - act[:txt_ocn]=if (mod.inspect =~/"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ \ - or mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) + act[:txt]=if select_arr.inspect \ + =~/"--txt"|"--text"|"--plaintext"|"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ + act[:txt_ocn]=if (select_arr.inspect \ + =~/"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ \ + or select_arr.inspect \ + =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) { bool: true, set: :on } - elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ + elsif select_arr.inspect \ + =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ { bool: false, set: :off } else { bool: false, set: :na } @@ -945,66 +1161,71 @@ module SiSU_Commandline else { bool: false, set: :na } end - act[:txt_textile]=(mod.inspect =~/"--textile"/) \ + act[:txt_textile]=(select_arr.inspect \ + =~/"--textile"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:txt_asciidoc]=(mod.inspect =~/"--asciidoc"/) \ + act[:txt_asciidoc]=(select_arr.inspect \ + =~/"--asciidoc"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:txt_markdown]=(mod.inspect =~/"--markdown"/) \ + act[:txt_markdown]=(select_arr.inspect \ + =~/"--markdown"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:txt_rst]=(mod.inspect =~/"--rst"|"--rest"|"--restructuredtext"/) \ + act[:txt_rst]=(select_arr.inspect \ + =~/"--rst"|"--rest"|"--restructuredtext"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:manpage]=(cmd =~/i/ \ - || mod.inspect =~/"--manpage"|"--man"/) \ + act[:manpage]=(select_arr.inspect \ + =~/"--manpage"|"--man"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:texinfo]=(cmd =~/I/ \ - || mod.inspect =~/"--texinfo"/) \ + act[:texinfo]=(select_arr.inspect \ + =~/"--texinfo"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:psql]=if mod.inspect =~/"--pg-\S+"/ \ - or ((mod.inspect =~/"--pg"/) \ - && (mod.inspect \ + act[:psql]=if select_arr.inspect \ + =~/"--pg-\S+"/ \ + or ((select_arr.inspect =~/"--pg"/) \ + && (select_arr.inspect \ =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/)) - act[:psql_createdb]=if mod.inspect \ + act[:psql_createdb]=if select_arr.inspect \ =~/"--pg-createdb"|"--createdb"/ { bool: true, set: :on } else { bool: false, set: :na } end - if mod.inspect \ + if select_arr.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 \ + act[:psql_drop]=if select_arr.inspect \ =~/"--pg-dropall"|"--dropall"/ { bool: true, set: :on } else { bool: false, set: :na } end - act[:psql_create]=if mod.inspect \ + act[:psql_create]=if select_arr.inspect \ =~/"--pg-create(?:all)?"|"--create(?:all)?"/ { bool: true, set: :on } else { bool: false, set: :na } end end - act[:psql_import]=if mod.inspect \ + act[:psql_import]=if select_arr.inspect \ =~/"--pg-import"|"--import"/ { bool: true, set: :on } else { bool: false, set: :na } end - act[:psql_update]=if mod.inspect \ + act[:psql_update]=if select_arr.inspect \ =~/"--pg-update"|"--update"/ act[:psql_remove]={ bool: true, set: :on } { bool: true, set: :on } else - act[:psql_remove]=if mod.inspect \ + act[:psql_remove]=if select_arr.inspect \ =~/"--pg-remove"|"--remove"/ { bool: true, set: :on } else @@ -1028,46 +1249,48 @@ module SiSU_Commandline { 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 \ + act[:sqlite]=if select_arr.inspect \ + =~/"--sqlite-\S+"/ \ + or (select_arr.inspect \ + =~/"--sqlite"/ \ + && select_arr.inspect \ + =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) + act[:sqlite_createdb]=if select_arr.inspect \ =~/"--sqlite-createdb"|"--createdb"/ { bool: true, set: :on } else { bool: false, set: :na } end - if mod.inspect \ + if select_arr.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 \ + act[:sqlite_create]=if select_arr.inspect \ =~/"--sqlite-create(?:all)?"|"--create(?:all)?"/ { bool: true, set: :on } else { bool: false, set: :na } end - act[:sqlite_drop]=if mod.inspect \ + act[:sqlite_drop]=if select_arr.inspect \ =~/"--sqlite-dropall"|"--dropall"/ { bool: true, set: :on } else { bool: false, set: :na } end end - act[:sqlite_import]=if mod.inspect \ + act[:sqlite_import]=if select_arr.inspect \ =~/"--sqlite-import"|"--import"/ { bool: true, set: :on } else { bool: false, set: :na } end - act[:sqlite_update]=if mod.inspect \ + act[:sqlite_update]=if select_arr.inspect \ =~/"--sqlite-update"|"--update"/ act[:sqlite_remove]={ bool: true, set: :on } { bool: true, set: :on } else - act[:sqlite_remove]=if mod.inspect \ + act[:sqlite_remove]=if select_arr.inspect \ =~/"--sqlite-remove"|"--sqlite-remove"/ { bool: true, set: :on } else @@ -1091,92 +1314,110 @@ module SiSU_Commandline { 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"/) \ + act[:sqlite_discrete]=select_arr.inspect \ + =~/"--sql"|"--sqlite"/ \ + && (select_arr.inspect \ + !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:harvest]=(mod.inspect =~/"--harvest"/) \ + act[:harvest]=(select_arr.inspect \ + =~/"--harvest"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:po4a]=(cmd =~/P/ \ - || mod.inspect =~/"--po4a"|"--pot?"/) \ + act[:po4a]=(select_arr.inspect \ + =~/"--po4a"|"--pot?"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:git]=(cmd =~/g/ \ - || mod.inspect =~/"--git"/) \ + act[:git]=(select_arr.inspect \ + =~/"--git"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:hash_digests]=(cmd =~/N/ \ - || mod.inspect =~/"--digests?"|"--hash-digests"/) \ + act[:hash_digests]=(select_arr.inspect \ + =~/"--digests?"|"--hash-digests"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:pdf_font_size]=if mod.inspect =~/"--(?:pdf-)?font-?size[=-](\d{1,2})(?:pt)?"/ + act[:pdf_font_size]=if select_arr.inspect \ + =~/"--(?:pdf-)?font-?size[=-](\d{1,2})(?:pt)?"/ $1 else :na end - act[:pdf_hyperlink_colors]=if mod.inspect =~/"--pdf-hyperlinks-(?:mono(?:chrome)?|no-color)"/ + act[:pdf_hyperlink_colors]=if select_arr.inspect \ + =~/"--pdf-hyperlinks-(?:mono(?:chrome)?|no-color)"/ :mono - elsif mod.inspect =~/"--pdf-hyperlinks-color"/ + elsif select_arr.inspect \ + =~/"--pdf-hyperlinks-color"/ :color else :na end - act[:hash_digest_algo]=if mod.inspect =~/"--hash-(?:sha)?512"/ + act[:hash_digest_algo]=if select_arr.inspect \ + =~/"--hash-(?:sha)?512"/ :sha512 - elsif mod.inspect =~/"--hash-(?:sha)?256"/ + elsif select_arr.inspect \ + =~/"--hash-(?:sha)?256"/ :sha256 - elsif mod.inspect =~/"--hash-md5"/ + elsif select_arr.inspect \ + =~/"--hash-md5"/ :md5 else :na end - act[:sample_search_form]=(cmd =~/F/ \ - || mod.inspect =~/"--sample-search-form"/) \ + act[:sample_search_form]=select_arr.inspect \ + =~/"--sample-search-form"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:webrick]=(cmd =~/W/ \ - || mod.inspect =~/"--webrick"/) \ + act[:webrick]=select_arr.inspect \ + =~/"--webrick"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:share_source]=(cmd =~/s/ \ - || mod.inspect =~/"--source"/) \ + act[:share_source]=select_arr.inspect \ + =~/"--source"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:sisupod]=(cmd =~/S/ \ - || mod.inspect =~/"--sisupod"/) \ + act[:sisupod]=select_arr.inspect \ + =~/"--sisupod"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:scp]=(cmd =~/r/ \ - || mod.inspect =~/"--scp"/) \ + act[:scp]=select_arr.inspect \ + =~/"--scp"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:rsync]=(cmd =~/R/ \ - || mod.inspect =~/"--rsync"|"--remote"/) \ + act[:rsync]=select_arr.inspect \ + =~/"--rsync"|"--remote"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:zap]=(cmd =~/Z/ \ - || mod.inspect =~/"--zap"|"--delete"/) \ + act[:zap]=select_arr.inspect \ + =~/"--zap"|"--delete"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:urls_all]=(cmd =~/U/ \ - || mod.inspect =~/"--urls-all"/) \ + act[:urls_all]=select_arr.inspect \ + =~/"--urls-all"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:urls_selected]=(cmd =~/u/ \ - || mod.inspect =~/"--urls"/) \ - ? { bool: true, set: :on } - : { bool: false, set: :na } - act[:sitemap]=(cmd =~/Y/ \ - || mod.inspect =~/"--sitemap"/) \ + act[:urls_selected]=if select_arr.inspect \ + =~/"--urls"/ + { bool: true, set: :on } + elsif select_arr.inspect \ + =~/"--harvest/ + { bool: false, set: :off } + elsif select_arr.inspect \ + =~/"--verbose"/ + { bool: true, set: :on } + else + { bool: false, set: :na } + end + act[:sitemap]=select_arr.inspect \ + =~/"--sitemap"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:qrcode]=(cmd =~/Q/ \ - || mod.inspect =~/"--qrcode"/) \ + act[:qrcode]=select_arr.inspect \ + =~/"--qrcode"/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:help]=(mod.inspect =~/"--help/) \ + act[:help]=select_arr.inspect \ + =~/"--help/ \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:ao]=if (cmd =~/m/ \ - || mod.inspect =~/"--ao"|"--dal"/) + act[:ao]=if select_arr.inspect \ + =~/"--ao"|"--dal"/ { bool: true, set: :on } elsif (act[:txt][:set]==:on \ || act[:txt_textile][:set]==:on \ @@ -1199,6 +1440,13 @@ module SiSU_Commandline || act[:share_source][:set]==:on \ || act[:sisupod][:set]==:on \ || act[:concordance][:set]==:on \ + || act[:sqlite_discrete][:set]==:on \ + || act[:sqlite_import][:set]==:on \ + || act[:sqlite_update][:set]==:on \ + || act[:sqlite_remove][:set]==:on \ + || act[:psql_import][:set]==:on \ + || act[:psql_update][:set]==:on \ + || act[:psql_remove][:set]==:on \ || act[:xml_dom][:set]==:on \ || act[:xml_sax][:set]==:on \ || act[:xml_docbook_book][:set]==:on \ @@ -1206,27 +1454,18 @@ module SiSU_Commandline || act[:xml_scaffold_structure_sisu][:set]==:on \ || act[:xml_scaffold_structure_collapse][:set]==:on ) { bool: true, set: :on } - #if cmd !~/[mn]/ - # extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \ - # and cmd !~/[mn]/ - # 'm' #% add ao - #elsif (act[:txt][:set]==:on \ - # { bool: true, set: :on } - # elsif ((cmd =~/[Dd]/ \ - # or (mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/)) \ - # and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ - # and cmd !~/[mn]/ - # 'm' #% add ao else { bool: false, set: :na } end - act[:manifest]=if mod.inspect =~/"--inc-manifest"/ + act[:manifest]=if select_arr.inspect \ + =~/"--inc-manifest"/ { bool: true, set: :on } - elsif mod.inspect =~/"--(?:exc|no)-manifest"/ \ + elsif select_arr.inspect \ + =~/"--(?:exc|no)-manifest"/ \ || act[:switch][:off].inspect =~/"manifest"/ { bool: false, set: :off } - elsif (cmd =~/y/ \ - || mod.inspect =~/"--manifest"/) + elsif select_arr.inspect \ + =~/"--manifest"/ { bool: true, set: :on } elsif (act[:txt][:set]==:on \ || act[:txt_textile][:set]==:on \ @@ -1256,71 +1495,55 @@ module SiSU_Commandline || act[:xml_scaffold_structure_sisu][:set]==:on \ || act[:xml_scaffold_structure_collapse][:set]==:on ) { bool: true, set: :on } - ## if cmd !~/y/ - ## extra+=if cmd =~/[abeHhIiNopQSstwXxz]/ \ - ## and cmd !~/y/ - ## 'ym' #% add manifest - #elsif (act[:txt][:set]==:on \ - # { bool: true, set: :on } - # elsif (cmd =~/[Dd]/ \ - # or mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ - # and files[0] !~/^remove$/ \ - # and cmd !~/y/ - # 'ym' #% add manifest else { bool: true, set: :na } end act[:console_messages] = '' - act[:verbose]=if (cmd =~/v/ \ - || mod.inspect =~/"--verbose"/) + act[:verbose]=if select_arr.inspect \ + =~/"--verbose"/ act[:console_messages] << ' --verbose ' { bool: true, set: :on } else { bool: false, set: :na } end - act[:verbose_plus]=if (cmd =~/V/ \ - || mod.inspect =~/"--very-verbose"/) + act[:verbose_plus]=if select_arr.inspect \ + =~/"--very-verbose"/ act[:console_messages] << ' --very-verbose ' { bool: true, set: :on } else { bool: false, set: :na } end - act[:version_info]=if (cmd =~/[vVM]/ \ - || mod.inspect =~/"--verbose"|"--maintenance"/) + act[:version_info]=if select_arr.inspect \ + =~/"--version"|"--verbose"|"--maintenance"/ act[:console_messages] << ' --maintenance ' { bool: true, set: :on } else { bool: false, set: :na } end - act[:quiet]=if (cmd =~/q/ \ - || mod.inspect =~/"--quiet"/) + act[:quiet]=if (select_arr.inspect =~/"--quiet"/) act[:console_messages] << ' --quiet ' { bool: true, set: :on } else { bool: false, set: :na } end - act[:color_state]=if mod.inspect =~/"--color-on"|"--color"/ + act[:color_state]=if select_arr.inspect =~/"--color-on"|"--color"/ act[:console_messages] << ' --color-on ' { bool: true, set: :on } - elsif (cmd =~/k/ \ - || mod.inspect =~/"--color-off"/) + elsif (select_arr.inspect =~/"--color-off"/) act[:console_messages] << ' --color-off ' { bool: false, set: :off } else { bool: true, set: :na } #fix default color end -# act[:color_toggle]=if cmd =~/c/ \ -# or mod.inspect =~/"--color-toggle"/ +# act[:color_toggle]=if select_arr.inspect =~/"--color-toggle"/ # true # else false # end - act[:maintenance]=if (cmd =~/M/ \ - || mod.inspect =~/"--maintenance|--keep-processing-files"/) + act[:maintenance]=if (select_arr.inspect =~/"--maintenance|--keep-processing-files"/) act[:console_messages] << ' --maintenance ' { bool: true, set: :on } else { bool: false, set: :na } end - act[:profile]=if (cmd =~/E/ \ - || mod.inspect =~/"--profile"/) + act[:profile]=if (select_arr.inspect =~/"--profile"/) act[:console_messages] << ' --color-off ' { bool: true, set: :on } else @@ -1329,11 +1552,17 @@ module SiSU_Commandline @act=act end end - def cmd - @cmd + def opt_ch + @opt_ch end - def mod - @mod + def selections + def arr + @select_arr.sort + end + def str + @select_str ||= arr.join(' ') + end + self end def act @@act @@ -1342,6 +1571,9 @@ module SiSU_Commandline files_mod=files @files_mod=files_mod end + def files + @files + end def f_pth @f_pth end diff --git a/lib/sisu/v5/manifest.rb b/lib/sisu/v5/manifest.rb index f2a9e748..0b4f79a4 100644 --- a/lib/sisu/v5/manifest.rb +++ b/lib/sisu/v5/manifest.rb @@ -116,7 +116,7 @@ module SiSU_Manifest data=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions SiSU_Manifest::Source::Output.new(@md).check_output(data) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -1019,7 +1019,7 @@ WOK WOK output rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/manpage.rb b/lib/sisu/v5/manpage.rb index 0bcf1799..c8957dfe 100644 --- a/lib/sisu/v5/manpage.rb +++ b/lib/sisu/v5/manpage.rb @@ -94,7 +94,7 @@ module SiSU_Manpage (@opt.act[:verbose][:set]==:on \ || @opt.act[:verbose_plus][:set]==:on \ || @opt.act[:maintenance][:set]==:on) \ - && @opt.cmd !~/q/ \ + && @opt.act[:quiet][:set]==:on \ ? SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], 'Manpage', @@ -116,7 +116,7 @@ module SiSU_Manpage @ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here SiSU_Manpage::Source::Scroll.new(@md,@ao_array).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/po4a.rb b/lib/sisu/v5/po4a.rb index b5086eb7..66798dbd 100644 --- a/lib/sisu/v5/po4a.rb +++ b/lib/sisu/v5/po4a.rb @@ -167,7 +167,7 @@ module SiSU_Po4a SiSU_Po4a::Source::Scroll.new(fn,@ao_array_lang_src,@ao_array_lang_translation,@@md_src,@@md_trn,wrap_width).songsheet end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/qrcode.rb b/lib/sisu/v5/qrcode.rb index 19d310c1..3a7d9406 100644 --- a/lib/sisu/v5/qrcode.rb +++ b/lib/sisu/v5/qrcode.rb @@ -111,7 +111,7 @@ module SiSU_QRcode data=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions OutputInfo.new(@md).check_output(data) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -152,7 +152,7 @@ module SiSU_QRcode mn += x end manifest.close if @md.opt.act[:maintenance][:set]==:on - cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_md.dir,@md.opt.cmd) + cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_md.dir,@md.opt.selections.str) cmd.qrencode end def output_metadata_short @@ -160,7 +160,7 @@ module SiSU_QRcode @manifest[:txt_title].each do |x| mn += x end - cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_title.dir,@md.opt.cmd) + cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_title.dir,@md.opt.selections.str) cmd.qrencode end def summarize(id,file,pth='',rel='',url='',img='● ') @@ -193,7 +193,7 @@ WOK || @md.opt.act[:verbose_plus][:set]==:on \ || @md.opt.act[:maintenance][:set]==:on) SiSU_Screen::Ansi.new( - @md.opt.cmd, + @md.opt.selections.str, "#{dgst[1]} #{file}" ).warn end @@ -403,12 +403,13 @@ WOK summarize(id,file,pth,rel,url) end if FileTest.file?(@f.place_file.txt.dir)==true - id=if @md.opt.cmd =~/a/ then 'Plaintext (Unix (UTF-8) with footnotes)' - elsif @md.opt.cmd =~/e/ then 'Plaintext (Unix (UTF-8) with endnotes)' - elsif @md.opt.cmd =~/A/ then 'Plaintext (dos (UTF-8) with footnotes)' - elsif @md.opt.cmd =~/E/ then 'Plaintext (dos (UTF-8) with endnotes)' - else 'Plaintext (UTF-8)' - end + id='Plaintext (UTF-8)' + #id=if @md.opt.selections.str =~/a/ then 'Plaintext (Unix (UTF-8) with footnotes)' + #elsif @md.opt.selections.str =~/e/ then 'Plaintext (Unix (UTF-8) with endnotes)' + #elsif @md.opt.selections.str =~/A/ then 'Plaintext (dos (UTF-8) with footnotes)' + #elsif @md.opt.selections.str =~/E/ then 'Plaintext (dos (UTF-8) with endnotes)' + #else 'Plaintext (UTF-8)' + #end pth=@f.output_path.txt.dir rel=@f.output_path.txt.rel_sm url=@f.output_path.txt.url @@ -746,7 +747,7 @@ WOK output_metadata output_metadata_short rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/rexml.rb b/lib/sisu/v5/rexml.rb index c4512872..98263899 100644 --- a/lib/sisu/v5/rexml.rb +++ b/lib/sisu/v5/rexml.rb @@ -130,7 +130,7 @@ module SiSU_Rexml exit end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/se_createsite.rb b/lib/sisu/v5/se_createsite.rb index 33e334ce..a7ab7cf5 100644 --- a/lib/sisu/v5/se_createsite.rb +++ b/lib/sisu/v5/se_createsite.rb @@ -190,16 +190,20 @@ module SiSU_Create_Site if defined? @rc['permission_set']['css_modify'] \ and @rc['permission_set']['css_modify'] SiSU_Screen::Ansi.new( - @opt.cmd, + @opt.selections.str, "*WARN* modify is css set to: #{@rc['permission_set']['css_modify']}" - ).warn if @opt.cmd=~/[MV]/ + ).warn if @opt.act[:verbose_plus][:set]==:on \ + or @opt.act[:maintenance][:set]==:on css_path.each do |x| if FileTest.directory?(x) FileUtils::cd(x) source=Dir.glob("*.{css}") source.each do |i| if FileTest.file?(i) - FileUtils::cp(i,"#{@env.path.output}/#{@env.path.style}") + FileUtils::cp( + i, + @env.path.output + '/' + @env.path.style + ) else STDERR.puts %{\t*WARN* did not find css - "#{i}" [#{__FILE__}:#{__LINE__}]} end end @@ -208,62 +212,63 @@ module SiSU_Create_Site end else SiSU_Screen::Ansi.new( - @opt.cmd, + @opt.selections.str, "*WARN* modify css is not set or is set to: false" - ).warn if @opt.cmd=~/[MV]/ + ).warn if @opt.act[:verbose_plus][:set]==:on \ + or @opt.act[:maintenance][:set]==:on end fn_css=SiSU_Env::CSS_Default.new css=SiSU_Style::CSS.new path_style="#{@env.path.output}/#{@env.path.style}" FileUtils::mkdir_p(path_style) \ unless FileTest.directory?(path_style) - if @opt.cmd =~/C/ \ + if @opt.act[:site_init][:set]==:on \ or not FileTest.file?("#{path_style}/#{fn_css.homepage}") style=File.new("#{path_style}/#{fn_css.homepage}",'w') style << css.homepage style.close end - if @opt.cmd =~/C/ \ + if @opt.act[:site_init][:set]==:on \ or not FileTest.file?("#{path_style}/#{fn_css.html_tables}") style=File.new("#{path_style}/#{fn_css.html_tables}",'w') style << css.html_tables style.close end - if @opt.cmd =~/C/ \ + if @opt.act[:site_init][:set]==:on \ or not FileTest.file?("#{path_style}/#{fn_css.html}") style=File.new("#{path_style}/#{fn_css.html}",'w') style << css.html style.close end - if @opt.cmd =~/C/ \ + if @opt.act[:site_init][:set]==:on \ or not FileTest.file?("#{path_style}/#{fn_css.harvest}") style=File.new("#{path_style}/#{fn_css.harvest}",'w') style << css.harvest style.close end - if @opt.cmd =~/C/ \ - or (@opt.cmd =~/[x]/ \ + if @opt.act[:site_init][:set]==:on \ + or (@opt.act[:xml_sax][:set]==:on \ and not FileTest.file?("#{path_style}/#{fn_css.xml_sax}")) style=File.new("#{path_style}/#{fn_css.xml_sax}",'w') style << css.xml_sax style.close end - if @opt.cmd =~/C/ \ - or (@opt.cmd =~/[X]/ \ + if @opt.act[:site_init][:set]==:on \ + or (@opt.act[:xml_dom][:set]==:on \ and not FileTest.file?("#{path_style}/#{fn_css.xml_dom}")) style=File.new("#{path_style}/#{fn_css.xml_dom}",'w') style << css.xml_dom style.close end - if @opt.cmd =~/C/ \ + if @opt.act[:site_init][:set]==:on \ or (@opt.act[:xml_docbook_book][:set] == :on \ and not FileTest.file?("#{path_style}/#{fn_css.xml_docbook}")) style=File.new("#{path_style}/#{fn_css.xml_docbook}",'w') style << css.xml_docbook style.close end - if @opt.cmd =~/C/ \ - or (@opt.cmd =~/[b]/ \ + if @opt.act[:site_init][:set]==:on \ + or (@opt.act[:xhtml][:set] == :on \ and not FileTest.file?("#{path_style}/#{fn_css.xhtml}")) style=File.new("#{path_style}/#{fn_css.xhtml}",'w') style << css.xhtml diff --git a/lib/sisu/v5/se_db.rb b/lib/sisu/v5/se_db.rb index 8ed78afa..3c6fdcba 100644 --- a/lib/sisu/v5/se_db.rb +++ b/lib/sisu/v5/se_db.rb @@ -94,7 +94,7 @@ module SiSU_Info_Db def psql def user(opt=nil) if opt \ - and opt.mod.inspect =~/--db-user[=-]["']?(\S+)["']+/ + and opt.selections.str.inspect =~/--db-user[=-]["']?(\S+)["']+/ $1 elsif opt \ and opt.mod =~/--webserv[=-]webrick/ @@ -176,7 +176,7 @@ module SiSU_Db_Op begin @md=md rescue - SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do + SiSU_Screen::Ansi.new(md.opt.selections.str,$!,$@).rescue do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/se_file_op.rb b/lib/sisu/v5/se_file_op.rb index d8a919dd..83e9c1b9 100644 --- a/lib/sisu/v5/se_file_op.rb +++ b/lib/sisu/v5/se_file_op.rb @@ -188,7 +188,7 @@ module SiSU_File_Op @md,@fno=md,fno @env=SiSU_Env::InfoEnv.new(@md.fns) rescue - SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do + SiSU_Screen::Ansi.new(md.opt.selections.str,$!,$@).rescue do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/se_filemap.rb b/lib/sisu/v5/se_filemap.rb index 0c4c84c0..075cdb83 100644 --- a/lib/sisu/v5/se_filemap.rb +++ b/lib/sisu/v5/se_filemap.rb @@ -68,7 +68,7 @@ module SiSU_File_Map attr_accessor :local_sisu_source def initialize(opt='') #watch / REVIEW super() - @opt=opt #,opt.fns,opt.cmd + @opt=opt #,opt.fns,opt.selections.str @env=(@opt.fns && !(@opt.fns.empty?) \ ? (SiSU_Env::InfoEnv.new(@opt.fns)) : (SiSU_Env::InfoEnv.new('dummy.sst'))) @@ -216,7 +216,7 @@ module SiSU_File_Map ft=ft.uniq filetypes=ft.join(',') @filetypes=if filetypes !~/..+/ then '' # -r called alone, copy all - elsif @opt.cmd =~/u/ then '' # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u + elsif @opt.selections.str =~/u/ then '' # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u elsif filetypes =~/\S+?,\S+/ then '*{' + filetypes + '}' # more than one relevant file type else '*' + filetypes # one relevant file type end diff --git a/lib/sisu/v5/se_hub_particulars.rb b/lib/sisu/v5/se_hub_particulars.rb index 4372ac72..17942a71 100644 --- a/lib/sisu/v5/se_hub_particulars.rb +++ b/lib/sisu/v5/se_hub_particulars.rb @@ -127,7 +127,7 @@ module SiSU_Particulars @md=SiSU_Param::Parameters.new(opt).get self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -138,7 +138,7 @@ module SiSU_Particulars @env=SiSU_Env::InfoEnv.new(opt.fns) self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -149,7 +149,7 @@ module SiSU_Particulars @file=SiSU_Env::FileOp.new(@md) self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -160,7 +160,7 @@ module SiSU_Particulars @ao_array=SiSU_AO::Source.new(opt).get self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -170,7 +170,7 @@ module SiSU_Particulars @sst_idx=SiSU_AO::Source.new(opt).get_idx_sst self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -180,7 +180,7 @@ module SiSU_Particulars @raw_idx=SiSU_AO::Source.new(opt).get_idx_raw self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -190,7 +190,7 @@ module SiSU_Particulars @html_idx=SiSU_AO::Source.new(opt).get_idx_html self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -200,7 +200,7 @@ module SiSU_Particulars @xhtml_idx=SiSU_AO::Source.new(opt).get_idx_xhtml self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -213,11 +213,11 @@ module SiSU_Particulars self rescue if @md - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end else - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end @@ -229,7 +229,7 @@ module SiSU_Particulars @ocn_htmlseg_map=SiSU_AO::Source.new(@md).get_map_ocn_htmlseg self rescue - SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do + SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do __LINE__.to_s + ':' + __FILE__ end end diff --git a/lib/sisu/v5/se_info_env.rb b/lib/sisu/v5/se_info_env.rb index df3d0216..5d91e433 100644 --- a/lib/sisu/v5/se_info_env.rb +++ b/lib/sisu/v5/se_info_env.rb @@ -1634,7 +1634,7 @@ WOK http=http.strip end def webserv_base_cgi(opt=nil) #web url for local webserv (localhost, or hostname) - http=if opt.mod.inspect =~/--webserv-(?:cgi|db|search)[=-]["']?(\S+)["']+/ + http=if opt.selections.str =~/--webserv-(?:cgi|db|search)[=-]["']?(\S+)["']+/ m=$1 (m=~/http\/\/:/) ? m : %{http://#{m}} elsif defined? @rc['webserv_cgi']['host'] \ @@ -1708,7 +1708,7 @@ WOK end end def webserv_files_from_db(opt=nil) #sort this out, messy - if opt.mod.inspect =~/--webserv-output[=-]["']?(\S+)["']+/ + if opt.selections.str =~/--webserv-output[=-]["']?(\S+)["']+/ m=$1 (m=~/(?:http|file\/)\/\/:/) ? m : %{http://#{m}} else @@ -1729,10 +1729,10 @@ WOK #%q{http://#{ENV['HTTP_HOST']}/cgi-bin} end def cgi_sample_search_form_name(opt=nil) - if opt.mod.inspect \ + if opt.selections.str \ =~/--(?:cgi-)?search-form-name[=-]["']?(\S+?\.cgi)/ $1 - elsif not opt.mod.inspect =~/--db[=-]["']?sqlite/ \ + elsif not opt.selections.str =~/--db[=-]["']?sqlite/ \ and defined? @rc['search'] \ and defined? @rc['search']['sisu'] \ and defined? @rc['search']['sisu']['action'] \ @@ -1740,7 +1740,7 @@ WOK /(?:https?:\/\/\S+?)\/([^\/]+?\.cgi)$/. match(@rc['search']['sisu']['action'])[1] else - (opt.mod.inspect =~/--db[=-]["']?sqlite/) \ + (opt.selections.str =~/--db[=-]["']?sqlite/) \ ? "#{Db[:name_prefix_db]}sqlite.cgi" \ : "#{Db[:name_prefix_db]}pg.cgi" end @@ -1783,12 +1783,12 @@ WOK path.image_source_include else if @@local_image==true - cmd=@cmd ? @cmd : '' + cmd=@selections.str ? @selections.str : '' SiSU_Screen::Ansi.new( cmd, "WARNING - no local image directory or images:", defaults[:image_local] - ).warn unless cmd =~/q/ + ).warn unless @md.opt.act[:quiet][:set]==:on @@local_image=false end url.images @@ -1813,7 +1813,7 @@ WOK @cmd, 'WARNING - image directory for external images or no such images:', :image_external - ).warn unless @cmd =~/q/ + ).warn unless @md.opt.act[:quiet][:set]==:on @@local_image=false end url.images_external @@ -1827,15 +1827,15 @@ WOK def port def webrick_port if @md \ - and @md.opt.cmd.inspect=~/-F/ \ - and @md.opt.mod.inspect=~/port=(\d+)/ + and @md.opt.act[:sample_search_form][:set]==:on \ + and @md.opt.selections.str=~/port=(\d+)/ $1 else if defined? @rc['webserv_cgi']['port'] if @rc['webserv_cgi']['port'].nil? \ and (defined? @md.opt.mod \ and not @md.opt.mod.nil? \ - and @md.opt.mod.inspect=~/webrick/) + and @md.opt.selections.str=~/webrick/) defaults[:webserv_port_cgi] elsif not @rc['webserv_cgi']['port'].nil? @rc['webserv_cgi']['port'] @@ -1847,15 +1847,15 @@ WOK end def webserv_port_cgi(opt=nil) port=if opt \ - and opt.cmd.inspect=~/-F/ \ - and opt.mod.inspect=~/port=(\d+)/ + and @md.opt.act[:sample_search_form][:set]==:on \ + and opt.selections.str=~/port=(\d+)/ $1 else port=if defined? @rc['webserv_cgi']['port'] if @rc['webserv_cgi']['port'].nil? \ and (defined? opt.mod \ and not opt.mod.nil? \ - and opt.mod.inspect=~/webrick/) + and opt.selections.str=~/webrick/) defaults[:webserv_port_cgi] elsif not @rc['webserv_cgi']['port'].nil? @rc['webserv_cgi']['port'] @@ -1864,7 +1864,7 @@ WOK else if (defined? opt.mod \ and not opt.mod.nil? \ - and opt.mod.inspect=~/webrick/) + and opt.selections.str=~/webrick/) defaults[:webserv_port_cgi] else nil end @@ -2145,7 +2145,7 @@ WOK SiSU_Screen::Ansi.new( '', '*WARN* file not found: ' + fns_pod - ).warn unless @cmd=~/q/ + ).warn unless @md.opt.act[:quiet][:set]==:on end sisupod_processing_path end @@ -2164,7 +2164,7 @@ WOK : (SiSU_Screen::Ansi.new( '', "*WARN* file not found: #{fns_pod}" - ).warn unless @cmd=~/q/) + ).warn unless @md.opt.act[:quiet][:set]==:on) sisupod_processing_path end end diff --git a/lib/sisu/v5/se_processing.rb b/lib/sisu/v5/se_processing.rb index 0a035ce8..35fa72c2 100644 --- a/lib/sisu/v5/se_processing.rb +++ b/lib/sisu/v5/se_processing.rb @@ -465,62 +465,172 @@ module SiSU_Processing_Settings end module SiSU_Info_Processing_Flag class InfoProcessingFlag - attr_accessor :color,:cf_0,:cf_1,:cf_2,:cf_3,:cf_4,:cf_5 + attr_accessor :color,:act_0,:act_1,:act_2,:act_3,:act_4,:act_5,:act_6,:act_7,:act_8,:act_9 def initialize @rc=SiSU_Get_Init::GetInit.new.sisu_yaml.rc end - def color #processing flag shortcuts + def color #configurable processing flag shortcuts (defined? @rc['flag']['color']) \ ? @rc['flag']['color'] : false end - def cf_0 #processing flag shortcuts - if defined? @rc['flag']['default'] \ - and @rc['flag']['default'].is_a?(String) - @rc['flag']['default'] - else #'-NQhewpotbxXdyYv' - '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' + def act_0 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act0'] \ + and @rc['flag']['act0'].is_a?(String) + @rc['flag']['act0'] + elsif defined? @rc['flag']['default'] \ + and @rc['flag']['default'].is_a?(String) + @rc['flag']['default'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --verbose' + end + end + def arr + str.scan(/\S+/) + end + self + end + def act_1 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act1'] \ + and @rc['flag']['act1'].is_a?(String) + @rc['flag']['act1'] + elsif defined? @rc['flag']['i'] \ + and @rc['flag']['i'].is_a?(String) + @rc['flag']['i'] + else + '--digest --text --html --manifest' + end + end + def arr + str.scan(/\S+/) + end + self + end + def act_2 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act2'] \ + and @rc['flag']['act2'].is_a?(String) + @rc['flag']['act2'] + elsif defined? @rc['flag']['ii'] \ + and @rc['flag']['ii'].is_a?(String) + @rc['flag']['ii'] + else + '--digest --text --html --epub --pdf --manifest' + end + end + def arr + str.scan(/\S+/) + end + self + end + def act_3 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act3'] \ + and @rc['flag']['act3'].is_a?(String) + @rc['flag']['act3'] + elsif defined? @rc['flag']['iii'] \ + and @rc['flag']['iii'].is_a?(String) + @rc['flag']['iii'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --manifest' + end + end + def arr + str.scan(/\S+/) + end + self + end + def act_4 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act4'] \ + and @rc['flag']['act4'].is_a?(String) + @rc['flag']['act4'] + elsif defined? @rc['flag']['iv'] \ + and @rc['flag']['iv'].is_a?(String) + @rc['flag']['iv'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --manifest' + end + end + def arr + str.scan(/\S+/) end + self end - def cf_1 #processing flag shortcuts - if defined? @rc['flag']['i'] \ - and @rc['flag']['i'].is_a?(String) - @rc['flag']['i'] - else #'-Qhewpoty' - '--digest --qrcode --text --html --epub --concordance --pdf --manifest' + def act_5 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act5'] \ + and @rc['flag']['act5'].is_a?(String) + @rc['flag']['act5'] + elsif defined? @rc['flag']['v'] \ + and @rc['flag']['v'].is_a?(String) + @rc['flag']['v'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --sqlite --manifest' + end end + def arr + str.scan(/\S+/) + end + self end - def cf_2 #processing flag shortcuts - if defined? @rc['flag']['ii'] \ - and @rc['flag']['ii'].is_a?(String) - @rc['flag']['ii'] - else #'-NQhewpotbxXdy' - '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --manifest' + def act_6 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act6'] \ + and @rc['flag']['act6'].is_a?(String) + @rc['flag']['act6'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' + end + end + def arr + str.scan(/\S+/) end + self end - def cf_3 #processing flag shortcuts - if defined? @rc['flag']['iii'] \ - and @rc['flag']['iii'].is_a?(String) - @rc['flag']['iii'] - else #'-NQhewpotbxXdyY' - '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' + def act_7 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act7'] \ + and @rc['flag']['act7'].is_a?(String) + @rc['flag']['act7'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --source --sisupod --manifest' + end + end + def arr + str.scan(/\S+/) end + self end - def cf_4 #processing flag shortcuts - if defined? @rc['flag']['iv'] \ - and @rc['flag']['iv'].is_a?(String) - @rc['flag']['iv'] - else #'-NQhewpotbxXdDyY --update' - '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --postresql --update --manifest' + def act_8 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act8'] \ + and @rc['flag']['act8'].is_a?(String) + @rc['flag']['act8'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --manifest' + end end + def arr + str.scan(/\S+/) + end + self end - def cf_5 #processing flag shortcuts - if defined? @rc['flag']['v'] \ - and @rc['flag']['v'].is_a?(String) - @rc['flag']['v'] - else #'-NQhewpotbxXdyYsS' - '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --sisupod --source' + def act_9 #configurable processing flag shortcuts + def str + if defined? @rc['flag']['act9'] \ + and @rc['flag']['act9'].is_a?(String) + @rc['flag']['act9'] + else + '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --source --sisupod --manifest' + end + end + def arr + str.scan(/\S+/) end + self end end end diff --git a/lib/sisu/v5/se_programs.rb b/lib/sisu/v5/se_programs.rb index 35d68cb6..4eef1ce9 100644 --- a/lib/sisu/v5/se_programs.rb +++ b/lib/sisu/v5/se_programs.rb @@ -87,7 +87,7 @@ module SiSU_Sys_Call end @sys.locale end - def file_encoding(filename,cmd='') #file encoding + def file_encoding(filename,act='') #file encoding program='file' fnsp=SiSU_Env::InfoEnv.new(filename).source_file_with_path if program_found?(program) @@ -98,9 +98,13 @@ module SiSU_Sys_Call encoding else 'UTF-8 assumed, encoding undetermined' end - puts encoding if cmd =~/[VM]/ + if act[:verbose_plus][:set] ==:on \ + or act[:maintenance][:set] ==:on + puts encoding + end encoding - else encoding='UTF-8 assumed, file encoding check program unavailable' + else + 'UTF-8 assumed, file encoding check program unavailable' end end def wc #word count diff --git a/lib/sisu/v5/texinfo.rb b/lib/sisu/v5/texinfo.rb index e792a989..16aef8bf 100644 --- a/lib/sisu/v5/texinfo.rb +++ b/lib/sisu/v5/texinfo.rb @@ -132,7 +132,7 @@ module SiSU_TexInfo @marshalfile=SiSU_Env::InfoFile.new(@opt.fns).marshal.ao_content if FileTest.file?(@marshalfile)==true File.open(@marshalfile) { |f| @@tuned_file=Marshal.load(f)} - #tell.meta_verse_skipped if @opt.cmd =~/[vVM]/ + #tell.meta_verse_skipped if @opt.selections.str =~/[vVM]/ else tex_array=IO.readlines(@opt.fns,'') SiSU_Metaverse.songsheet(tex_array) @@ -418,7 +418,7 @@ module SiSU_TexInfo pwd=Dir.pwd case sfx when /(?:-|ssm\.)?sst$/ - @env=SiSU_Env::InfoEnv.new(@md.fns,@md.opt.cmd) + @env=SiSU_Env::InfoEnv.new(@md.fns,@md.opt.selections.str) Dir.chdir(@env.processing_path.texi) texinfo=SiSU_Env::SystemCall.new("#{fnb}.texinfo") texinfo.makeinfo diff --git a/lib/sisu/v5/texpdf.rb b/lib/sisu/v5/texpdf.rb index b5d36602..3be8ceb7 100644 --- a/lib/sisu/v5/texpdf.rb +++ b/lib/sisu/v5/texpdf.rb @@ -107,7 +107,7 @@ module SiSU_TeX Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex) end rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -148,7 +148,7 @@ module SiSU_TeX end end @md=@particulars.md - $flag=@md.opt.cmd #introduced to pass 0 for no object citation numbers... to texpdf_format + $flag=@md.opt.selections.str #introduced to pass 0 for no object citation numbers... to texpdf_format directories #% needed needs to be reprogrammed !!! ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here @@ -158,7 +158,7 @@ module SiSU_TeX SiSU_TeX::Source::LaTeXtoPdf.new(@md,@particulars.env).latexrun_selective Dir.chdir(pwd) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -180,7 +180,7 @@ module SiSU_TeX @@date=SiSU_Env::InfoDate.new @@flag={} $flag=1 #remove at some stage - SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate + SiSU_Env::Clear.new(@opt.selections.str,@opt.fns).param_instantiate end end private @@ -194,7 +194,7 @@ module SiSU_TeX @texfilename=texfilename @@n_lpdf=@@n_lpdf+1 tex_fn_base=@texfilename.gsub(/\.tex$/,'') - tell=SiSU_Screen::Ansi.new(@md.opt.cmd) + tell=SiSU_Screen::Ansi.new(@md.opt.selections.str) if @md.opt.act[:pdf_p][:set]==:on if (@md.opt.act[:verbose][:set]==:on \ || @md.opt.act[:verbose_plus][:set]==:on \ @@ -204,13 +204,21 @@ module SiSU_TeX "#{papersize} portrait ->" ).dark_grey_title_hi end - cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.cmd) - tell.grey_open if @md.opt.cmd =~/[MVv]/ + cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.selections.str) + if @md.opt.act[:verbose][:set]==:on \ + || @md.opt.act[:verbose_plus][:set]==:on \ + || @md.opt.act[:maintenance][:set]==:on + tell.grey_open + end if "#{tex_fn_base}" =~/\w+/ \ and "#{papersize}" =~/\w+/ 2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex portrait end - tell.p_off if @md.opt.cmd =~/[MVv]/ + if @md.opt.act[:verbose][:set]==:on \ + || @md.opt.act[:verbose_plus][:set]==:on \ + || @md.opt.act[:maintenance][:set]==:on + tell.p_off + end end if @md.opt.act[:pdf_l][:set]==:on if (@md.opt.act[:verbose][:set]==:on \ @@ -221,7 +229,7 @@ module SiSU_TeX "#{papersize} landscape ->" ).dark_grey_title_hi end - cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) + cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.selections.str) if (@md.opt.act[:verbose][:set]==:on \ || @md.opt.act[:verbose_plus][:set]==:on \ || @md.opt.act[:maintenance][:set]==:on) @@ -357,7 +365,7 @@ module SiSU_TeX lst=Dir["*.{aux,log,out}"] lst.each {|file| File.unlink(file)} if lst rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -438,7 +446,7 @@ module SiSU_TeX data=markup(data) output(data) rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/txt_asciidoc.rb b/lib/sisu/v5/txt_asciidoc.rb index 43e49f7b..7171ee64 100644 --- a/lib/sisu/v5/txt_asciidoc.rb +++ b/lib/sisu/v5/txt_asciidoc.rb @@ -121,7 +121,7 @@ module SiSU_Txt_AsciiDoc #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 SiSU_Txt_AsciiDoc::Source::Scroll.new(md,ao_array,wrap_width).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/txt_markdown.rb b/lib/sisu/v5/txt_markdown.rb index 1e4326a3..9a184635 100644 --- a/lib/sisu/v5/txt_markdown.rb +++ b/lib/sisu/v5/txt_markdown.rb @@ -120,7 +120,7 @@ module SiSU_Txt_Markdown #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 SiSU_Txt_Markdown::Source::Scroll.new(md,ao_array,wrap_width).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/txt_plain.rb b/lib/sisu/v5/txt_plain.rb index 2f3cc134..479eddde 100644 --- a/lib/sisu/v5/txt_plain.rb +++ b/lib/sisu/v5/txt_plain.rb @@ -122,7 +122,7 @@ module SiSU_Txt_Plain #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 SiSU_Txt_Plain::Source::Scroll.new(md,ao_array,wrap_width).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -139,7 +139,7 @@ module SiSU_Txt_Plain @env=SiSU_Env::InfoEnv.new(@md.fns) @brace_url=SiSU_Viz::Defaults.new.url_decoration @tab="\t" - @@endnotes_=case md.opt.mod.inspect + @@endnotes_=case md.opt.selections.str when /--footnote/ then false when /--endnote/ then true else true diff --git a/lib/sisu/v5/txt_rst.rb b/lib/sisu/v5/txt_rst.rb index f00c9e9c..0147a6de 100644 --- a/lib/sisu/v5/txt_rst.rb +++ b/lib/sisu/v5/txt_rst.rb @@ -121,7 +121,7 @@ module SiSU_Txt_rST #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 SiSU_Txt_rST::Source::Scroll.new(md,ao_array,wrap_width).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/txt_textile.rb b/lib/sisu/v5/txt_textile.rb index 65c102fc..43124493 100644 --- a/lib/sisu/v5/txt_textile.rb +++ b/lib/sisu/v5/txt_textile.rb @@ -121,7 +121,7 @@ module SiSU_Txt_Textile #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78 SiSU_Txt_Textile::Source::Scroll.new(md,ao_array,wrap_width).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/update.rb b/lib/sisu/v5/update.rb index 2301990a..3c355edb 100644 --- a/lib/sisu/v5/update.rb +++ b/lib/sisu/v5/update.rb @@ -81,7 +81,7 @@ module SiSU_UpdateControlFlag ).green_hi_blue unless @md.opt.act[:quiet][:set]==:on SetCF.new(@md).set_flags rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/urls.rb b/lib/sisu/v5/urls.rb index 815fe65a..4ecad1f9 100644 --- a/lib/sisu/v5/urls.rb +++ b/lib/sisu/v5/urls.rb @@ -74,7 +74,7 @@ module SiSU_Urls begin SiSU_Urls::OutputUrls.new(@opt).songsheet if @opt.fnb rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -82,11 +82,20 @@ module SiSU_Urls end end class OutputUrls - attr_reader :fns,:fnb,:cmd,:dir,:m_regular,:u + attr_reader :fns,:fnb,:act,:dir,:m_regular,:u def initialize(opt) @opt=opt @particulars=SiSU_Particulars::CombinedSingleton.instance.get_env_md(opt) - @cmd=@opt.cmd + if @particulars.is_a?(NilClass) + if @opt.act[:verbose_plus][:set]==:on \ + or @opt.act[:maintenance][:set]==:on + SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). + mark("@particulars is NilClass, acceptable e.g. for --harvest") + end + exit + end + @selections=@opt.selections.str + @act=@opt.act @md=@particulars.md @env=@particulars.env @fnb=@env.fnb @@ -95,308 +104,29 @@ module SiSU_Urls @fn=SiSU_Env::EnvCall.new(@opt.fns).lang(fn_set_lang[:c]) @m_regular=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/ @prog=@env.program - @u ||= { - 'b --xhtml (XHTML)'=>@fn[:xhtml], - 'D[iu] --psql (DBI import/update postgresql)'=>'dbi psql', - 'd --sqlite (DBI sqlite)'=>'dbi sqlite3', - 'd[iu] --sqlite (DBI sqlite)'=>'dbi sqlite3', - 'e --epub (EPUB)'=>@fn[:epub], - 'P --pot (Pot)'=>@fn[:pot], - 'h --html (HTML segmented)'=>@fn[:toc], - 'h --html (HTML scroll)'=>@fn[:doc], - 'I --texinfo (Info file)'=>'info', - 'i --manpage (manpage)'=>'manpage', - 'm --ao (Document Abstraction)'=>'ao', - 'N --hash-digests (Digests sha512/sha256/md5)'=>@fn[:digest], - 'o --odt (ODF:ODT - Open Document)'=>@fn[:odf], - 'p --pdf (PDF landscape)'=>@fn[:pdf_l], - 'p --pdf (PDF portrait)'=>@fn[:pdf_p], - 'E --profile (Ruby profiler)'=>'profile', - 's --source (sisu markup)'=>@opt.fno, - 'S --sisupod (sisupod)'=>@fn[:sisupod], - 't --txt (Plain-text (endnotes))'=>@fn[:plain], - ' --textile (textile txt)'=>@fn[:txt_textile], - ' --asciidoc (AsciiDoc txt)'=>@fn[:txt_asciidoc], - ' --markdown (markdown txt)'=>@fn[:txt_markdown], - ' --rst (rST restructured-text)'=>@fn[:txt_rst], - ' --docbook-book (DocBook Book)'=>@fn[:xml_docbook_book], - ' --fictionbook (Fictionbook)'=>@fn[:xml_fictionbook], - 'x --xml-sax (XML sax type)'=>@fn[:sax], - 'X --xml-dom (XML dom type)'=>@fn[:dom], - ' --xml-scaffold-sisu (XML scaffold)'=>@fn[:xml_scaffold_structure_sisu], - ' --xml-scaffold-collapse (XML scaffold)'=>@fn[:xml_scaffold_structure_collapse], - 'Q --qrcode (QR Code jpg)'=>@fn[:qrcode], - 'y --manifest (Manifest, html)'=>@fn[:manifest], - 'Y (Sitemap, xml)'=>@fn[:sitemap], - 'w --concordance (Concordance, html)'=>@fn[:concordance], - }.sort {|a,b| a[0].downcase<=>b[0].downcase} end def songsheet begin - @opt.cmd=~/U/ ? urls_all : (urls_select unless @opt.act[:quiet][:set]==:on) + (@opt.act[:urls_all][:set]==:on) \ + ? urls_all \ + : (urls_select unless @opt.act[:quiet][:set]==:on) rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure end end def show - def source - def src(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.text_editor} #{@md.file.output_path.src.dir}/#{y}" - ).result - end - def pod(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.sisupod.dir}/#{y}" - ).result - end - self - end - def generic(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} #{@env.url.output_tell}/#{@fnb}/#{y}" - ).result - end - def meta(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.text_editor} ~#{y}/#{@fnb}.#{y}" - ).result - end - def text(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.txt.dir}/#{@md.file.base_filename.txt}" - ).result - end - def textile(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.textile.dir}/#{@md.file.base_filename.textile}" - ).result - end - def asciidoc(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.asciidoc.dir}/#{@md.file.base_filename.asciidoc}" - ).result - end - def markdown(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.markdown.dir}/#{@md.file.base_filename.markdown}" - ).result - end - def rst(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.rst.dir}/#{@md.file.base_filename.rst}" - ).result - end - def epub(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.epub_viewer} #{@md.file.output_path.epub.dir}/#{@md.file.base_filename.epub}" - ).result - end - def html - def scroll(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.html_scroll.dir}/#{@md.file.base_filename.html_scroll}" - ).result - end - def toc(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}" - ).result - end - def concordance(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.html_concordance.dir}/#{@md.file.base_filename.html_concordance}" - ).result - end - def manifest(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.manifest.dir}/#{@md.file.base_filename.manifest}" - ).result - end - self - end - def qrcode(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.manifest.dir}/#{@md.file.base_filename.manifest}" - ).result - end - def odt(x) + def report(x) SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.odf_viewer} file://#{@md.file.output_path.odt.dir}/#{@md.file.base_filename.odt}" + "[#{@opt.f_pth[:lng_is]}]", + x[:cmd], + x[:viewer] + ' ' \ + + x[:f_pth] ).result end - def pdf - def portrait(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_p}#{@md.papersize_array[0]}.pdf" - ).result - end - def landscape(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_l}#{@md.papersize_array[0]}.pdf" - ).result - end - self - end - def manpage(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@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.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "cd #{@md.file.output_path.texinfo.dir} && #{@env.program.texinfo} #{@md.file.base_filename.info}; cd -" - ).result - end - def po4a - def po(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "-#{x}", - "#{@prog.text_editor} #{@md.file.output_path.po.dir}/#{y}" - ).result - end - def pot(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "-#{x}", - "#{@prog.text_editor} #{@md.file.output_path.pot.dir}/#{y}" - ).result - end - self - end - def xhtml(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xhtml.dir}/#{@md.file.base_filename.xhtml}" - ).result - end - def xml - def sax(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_sax.dir}/#{@md.file.base_filename.xml_sax}" - ).result - end - def dom(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set],"[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_dom.dir}/#{@md.file.base_filename.xml_dom}" - ).result - end - def docbook_book(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_docbook_book.dir}/#{@md.file.base_filename.xml_docbook_book}" - ).result - end - def fictionbook(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_fictionbook.dir}/#{@md.file.base_filename.xml_fictionbook}" - ).result - end - def scaffold_structure_sisu(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_scaffold_structure_sisu.dir}/#{@md.file.base_filename.xml_scaffold_structure_sisu}" - ).result - end - def scaffold_structure_collapse(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.xml_scaffold_structure_collapse.dir}/#{@md.file.base_filename.xml_scaffold_structure_collapse}" - ).result - end - def sitemap(x) #BROKEN - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.sitemaps.dir}/#{@md.file.base_filename.sitemap}" - ).result - end - self - end - def hash_digest(x) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "#{@prog.web_browser} file://#{@md.file.output_path.hash_digest.dir}/#{@md.file.base_filename.hash_digest}" - ).result - end - def db - def psql(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x} DBI psql","#{@pwd_stub}::#{@opt.fns}", - y - ).result - end - def sqlite(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x} DBI sqlite", - "sqlite3 #{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}/sisu_sqlite.db" - ).result - end - def sqlite_discrete(x,y) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - "[#{@opt.f_pth[:lng_is]}] -#{x}", - "sqlite3 #{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}" - ).result - end - self - end self end def urls_maintenance(opt,x,y) @@ -472,8 +202,341 @@ module SiSU_Urls end end end + def report_info + def dal + { + cmd: '--ao', + fn: 'ao', + } + end + def hash_digests + { + cmd: '--hash-digests (sha512/sha256/md5)', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.hash_digest.dir + '/' \ + + @md.file.base_filename.hash_digest, + fn: @fn[:digest], + } + end + def text + def txt + { + cmd: '--txt', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.txt.dir + '/' \ + + @md.file.base_filename.txt, + fn: @fn[:plain], + } + end + def asciidoc + { + cmd: '--asciidoc', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.asciidoc.dir + '/' \ + + @md.file.base_filename.asciidoc, + fn: @fn[:txt_asciidoc], + } + end + def markdown + { + cmd: '--markdown', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.markdown.dir + '/' \ + + @md.file.base_filename.markdown, + fn: @fn[:txt_markdown], + } + end + def rst + { + cmd: '--rst', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.rst.dir + '/' \ + + @md.file.base_filename.rst, + fn: @fn[:txt_rst], + } + end + def textile + { + cmd: '--textile', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.textile.dir + '/' \ + + @md.file.base_filename.textile, + fn: @fn[:txt_textile], + } + end + self + end + def html + def seg + { + cmd: '--html-seg', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.html_seg.dir + '/' \ + + @md.file.base_filename.html_segtoc, + fn: @fn[:toc], + } + end + def scroll + { + cmd: '--html-scroll', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.html_scroll.dir + '/' \ + + @md.file.base_filename.html_scroll, + fn: @fn[:doc], + } + end + def concordance + { + cmd: '--concordance', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.html_concordance.dir + '/' \ + + @md.file.base_filename.html_concordance, + fn: @fn[:concordance], + } + end + self + end + def xhtml + def xhtml + { + cmd: '--xhtml', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xhtml.dir + '/' \ + + @md.file.base_filename.xhtml, + fn: @fn[:xhtml], + } + end + def epub + { + cmd: '--epub', + viewer: @prog.epub_viewer, + f_pth: @md.file.output_path.epub.dir + '/' \ + + @md.file.base_filename.epub, + fn: @fn[:epub], + } + end + self + end + def xml + def odt + { + cmd: '--odt (ODF:ODT)', + viewer: @prog.odf_viewer, + f_pth: @md.file.output_path.odt.dir + '/' \ + + @md.file.base_filename.odt, + fn: @fn[:odf], + } + end + def docbook + { + cmd: '--docbook', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_docbook_book.dir + '/' \ + + @md.file.base_filename.xml_docbook_book, + fn: @fn[:xml_docbook_book], + } + end + def fictionbook + { + cmd: '--fictionbook', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_fictionbook.dir + '/' \ + + @md.file.base_filename.xml_fictionbook, + fn: @fn[:xml_fictionbook], + } + end + def sax + { + cmd: '--xml-sax', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_sax.dir + '/' \ + + @md.file.base_filename.xml_sax, + fn: @fn[:sax], + } + end + def dom + { + cmd: '--xml-dom', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_dom.dir + '/' \ + + @md.file.base_filename.xml_dom, + fn: @fn[:dom], + } + end + def scaffold_sisu + { + cmd: '--xml-scaffold-sisu', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_scaffold_structure_sisu.dir + '/' \ + + @md.file.base_filename.xml_scaffold_structure_sisu, + fn: @fn[:xml_scaffold_structure_sisu], + } + end + def scaffold_collapse + { + cmd: '--xml-scaffold-collapse', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.xml_scaffold_structure_collapse.dir + '/' \ + + @md.file.base_filename.xml_scaffold_structure_collapse, + fn: @fn[:xml_scaffold_structure_collapse], + } + end + self + end + def pdf + def landscape + { + cmd: '--pdf (landscape)', + viewer: @prog.pdf_viewer, + f_pth: @md.file.output_path.pdf.dir + '/' \ + + @md.file.base_filename.pdf_l \ + + @md.papersize_array[0] + '.pdf', + fn: @fn[:pdf_l], + } + end + def portrait + { + cmd: '--pdf (portrait)', + viewer: @prog.pdf_viewer, + f_pth: @md.file.output_path.pdf.dir + '/' \ + + @md.file.base_filename.pdf_p \ + + @md.papersize_array[0] + '.pdf', + fn: @fn[:pdf_p], + } + end + self + end + def manpage + { + cmd: '--manpage', + viewer: @prog.manpage_viewer, + f_pth: @md.file.output_path.manpage.dir + '/' \ + + @md.file.base_filename.manpage, + fn: 'manpage', + } + end + def texinfo + { + cmd: '--texinfo', + viewer: '', + f_pth: 'cd ' \ + + @md.file.output_path.texinfo.dir + ' && ' \ + + @env.program.texinfo + ' ' \ + + @md.file.base_filename.info \ + + '; cd -', + fn: 'info', + } + end + def db + def psql + { + cmd: '--psql --update/--import', + viewer: '', + f_pth: @pwd_stub + '::' \ + + @opt.fns \ + + 'dbi psql', + fn: 'dbi psql', + } + end + def sqlite + { + cmd: '--sqlite --update/--import', + viewer: 'sqlite3 ', + f_pth: @env.path.webserv + '/' \ + + @md.opt.f_pth[:pth_stub] + '/' \ + + 'sisu_sqlite.db', + fn: 'dbi sqlite3', + } + end + def sqlite_discrete + { + cmd: '--sqlite --update/--import', + viewer: 'sqlite3 ', + f_pth: @md.file.output_path.sqlite_discrete.dir + '/' \ + + @md.file.base_filename.sqlite_discrete, + fn: 'dbi sqlite3', + } + end + self + end + def po4a + def po + { + cmd: '--po4a/--pot', + viewer: @prog.web_browser, + f_pth: @prog.text_editor + ' ' \ + + @md.file.output_path.po.dir \ + + '/' + y, + fn: @fn[:pot], + } + end + def pot + { + cmd: '--po4a/--pot', + viewer: @prog.web_browser, + f_pth: @prog.text_editor + ' ' \ + + @md.file.output_path.pot.dir \ + + '/' + y, + fn: @fn[:pot], + } + end + self + end + def source + { + cmd: '--source (sisu markup)', + viewer: @prog.text_editor, + f_pth: @md.file.output_path.src.dir + '/' \ + + @opt.fno, + fn: @opt.fno, + } + end + def sisupod + { + cmd: '--sisupod', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.sisupod.dir + '/' \ + + @opt.fno, + fn: @fn[:sisupod], + } + end + def ruby_profile + { + cmd: '--profile (ruby profiler)', + fn: 'profile', + } + end + def qrcode + { + cmd: '--qrcode', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.manifest.dir + '/' \ + + @md.file.base_filename.manifest, + fn: @fn[:qrcode], + } + end + def manifest + { + cmd: '--manifest', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.manifest.dir + '/' \ + + @md.file.base_filename.manifest, + fn: @fn[:manifest], + } + end + def sitemap + { + cmd: '--sitemap', + viewer: @prog.web_browser, + f_pth: @md.file.output_path.sitemaps.dir + '/' \ + + @md.file.base_filename.sitemap, + fn: @fn[:sitemap], + } + end + self + end def urls_select - unless @opt.cmd =~/q/ + unless @opt.act[:quiet][:set]==:on i1='[' + @opt.f_pth[:lng_is] + ']' i2='file://' \ + @md.file.output_path.manifest.dir + '/' \ @@ -490,168 +553,129 @@ module SiSU_Urls 'URL (output manifest)', i1, i2 ).grey_title_grey_blue - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - i1, i2, - ).flow if @opt.cmd =~/[MVv]/ + if (@opt.act[:verbose][:set]==:on \ + || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + SiSU_Screen::Ansi.new( + @opt.act[:color_state][:set], + i1, i2, + ).flow + end end m=/.+\/(?:src\/)?(\S+)/im # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m @pwd_stub="#{@env.url.output_tell}"[m,1] unless @opt.act[:quiet][:set]==:on - @u.each do |x,y| - if @opt.fns =~ @m_regular - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - if x=~/--txt\b/ \ - and @opt.act[:txt][:set]==:on - show.text(x) - end - if x=~/--textile\b/ \ - and @opt.act[:txt_textile][:set]==:on - show.textile(x) - end - if x=~/--asciidoc\b/ \ - and @opt.act[:txt_asciidoc][:set]==:on - show.asciidoc(x) - end - if x=~/--markdown\b/ \ - and @opt.act[:txt_markdown][:set]==:on - show.markdown(x) - end - if x=~/--rst\b/ \ - and @opt.act[:txt_rst][:set]==:on - show.rst(x) - end - if x=~/--xhtml\b/ \ - and @opt.act[:xhtml][:set]==:on - show.xhtml(x) - end - if x=~/--psql\b/ \ - and @opt.act[:psql][:set]==:on - show.db.psql(x,y) - end - if x=~/d\s+--sqlite\b|--sql\b/ \ - and @opt.act[:sqlite_discrete][:set]==:on - show.db.sqlite_discrete(x,y) - end - if x=~/d\[iu\]\s+--sqlite\b/ \ - and @opt.act[:sqlite][:set]==:on - show.db.sqlite(x,y) - end - if x=~/--epub\b/ \ - and @opt.act[:epub][:set]==:on - show.epub(x) - end - if x=~/--html\b/ \ - and (@opt.act[:html][:set]==:on \ - or @opt.act[:html_scroll][:set]==:on \ - or @opt.act[:html_seg][:set]==:on) - if x =~/scroll/ - if @opt.act[:html_scroll][:set]==:on - show.html.scroll(x) - end - else - if @opt.act[:html_seg][:set]==:on - show.html.toc(x) - end - end - end - if x=~/--texinfo\b/ \ - and @opt.cmd =~/I/ - show.pinfo(x,y) - end - if x=~/--manpage\b/ \ - and @opt.act[:manpage][:set]==:on - show.manpage(x) - end - if x=~/--hash-digests\b/ \ - and @opt.cmd =~/N/ - show.hash_digest(x) - end - if x=~/--odt\b|--odf\b/ \ - and @opt.act[:odt][:set]==:on - show.odt(x) - end - if x=~/^P/ \ - and @opt.cmd =~/P/ - if @opt.fns =~/\S+?~\S{2}(?:_\S{2})?\.ss[mt]/ - f=y.gsub(/\.pot$/,'.po') - show.po4a.po(x,f) - else - show.po4a.pot(x,f) - end - end - if x=~/--pdf\b/ \ - and (@opt.act[:pdf][:set]==:on \ - or @opt.act[:pdf_p][:set]==:on \ - or @opt.act[:pdf_l][:set]==:on) - if x =~/portrait/ - if @opt.act[:pdf_p][:set]==:on - show.pdf.portrait(x) - end - else - if @opt.act[:pdf_l][:set]==:on - show.pdf.landscape(x) - end - end - end - if x=~/--sisupod\b/ \ - and @opt.act[:sisupod][:set]==:on - (@opt.fno =~/\.ssm$/) \ - ? y.gsub(/(?:\~\S{2,3})?(\.ssm.sst\.txz)$/,'.ssm.txz') - : y.gsub(/(?:\~\S{2,3})?(\.sst\.txz)$/,'\1') - show.source.pod(x,y) - end - if x=~/--source\b/ \ - and @opt.act[:share_source][:set]==:on - show.source.src(x,y) - end - if x=~/--concordance\b/ \ - and @opt.act[:concordance][:set]==:on - show.html.concordance(x) - end - if x=~/--xml-dom\b/ \ - and @opt.act[:xml_dom][:set]==:on - show.xml.dom(x) - end - if x=~/--xml-sax\b/ \ - and @opt.act[:xml_sax][:set]==:on - show.xml.sax(x) - end - if x=~/--docbook-book\b/ \ - and @opt.act[:xml_docbook_book][:set]==:on - show.xml.docbook_book(x) - end - if x=~/--fictionbook\b/ \ - and @opt.act[:xml_fictionbook][:set]==:on - show.xml.fictionbook(x) - end - if x=~/--xml-scaffold-sisu\b/ \ - and @opt.act[:xml_scaffold_structure_sisu][:set]==:on - show.xml.scaffold_structure_sisu(x) + if @opt.fns =~ @m_regular + if (@opt.act[:verbose][:set]==:on \ + || @opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + if @opt.act[:txt][:set]==:on + show.report(report_info.text.txt) + end + if @opt.act[:txt_textile][:set]==:on + show.report(report_info.text.textile) + end + if @opt.act[:txt_asciidoc][:set]==:on + show.report(report_info.text.asciidoc) + end + if @opt.act[:txt_markdown][:set]==:on + show.report(report_info.text.markdown) + end + if @opt.act[:txt_rst][:set]==:on + show.report(report_info.text.rst) + end + if (@opt.act[:html][:set]==:on \ + or @opt.act[:html_scroll][:set]==:on \ + or @opt.act[:html_seg][:set]==:on) + if @opt.act[:html_scroll][:set]==:on + show.report(report_info.html.scroll) end - if x=~/--xml-scaffold-collapse\b/ \ - and @opt.act[:xml_scaffold_structure_collapse][:set]==:on - show.xml.scaffold_structure_collapse(x) + if @opt.act[:html_seg][:set]==:on + show.report(report_info.html.seg) end - if x=~/--qrcode\b/ \ - and @opt.act[:qrcode][:set]==:on - show.qrcode(x) + end + if @opt.act[:concordance][:set]==:on + show.report(report_info.html.concordance) + end + if @opt.act[:xhtml][:set]==:on + show.report(report_info.xhtml.xhtml) + end + if @opt.act[:epub][:set]==:on + show.report(report_info.xhtml.epub) + end + if @opt.act[:odt][:set]==:on + show.report(report_info.xml.odt) + end + if @opt.act[:xml_dom][:set]==:on + show.report(report_info.xml.dom) + end + if @opt.act[:xml_sax][:set]==:on + show.report(report_info.xml.sax) + end + if @opt.act[:xml_docbook_book][:set]==:on + show.report(report_info.xml.docbook) + end + if @opt.act[:xml_fictionbook][:set]==:on + show.report(report_info.xml.fictionbook) + end + if @opt.act[:xml_scaffold_structure_sisu][:set]==:on + show.report(report_info.xml.scaffold_structure_sisu) + end + if @opt.act[:xml_scaffold_structure_collapse][:set]==:on + show.report(report_info.xml.scaffold_collapse) + end + if (@opt.act[:pdf][:set]==:on \ + or @opt.act[:pdf_p][:set]==:on \ + or @opt.act[:pdf_l][:set]==:on) + if @opt.act[:pdf_p][:set]==:on + show.report(report_info.pdf.portrait) end - if x=~/--sitemap\b/ \ - and @opt.cmd =~/Y/ #BROKEN - show.xml.sitemap(x) + if @opt.act[:pdf_l][:set]==:on + show.report(report_info.pdf.landscape) end - if x=~/--manifest\b/ \ - and @opt.act[:manifest][:set]==:on - show.html.manifest(x) + end + if @opt.act[:psql][:set]==:on + show.report(report_info.db.psql) + end + if @opt.act[:sqlite_discrete][:set]==:on + show.report(report_info.db.sqlite_discrete) + end + if @opt.act[:sqlite][:set]==:on + show.report(report_info.db.sqlite) + end + if @opt.act[:texinfo][:set]==:on + show.report(report_info.texinfo) + end + if @opt.act[:manpage][:set]==:on + show.report(report_info.manpage) + end + if @opt.act[:hash_digests][:set]==:on + show.report(report_info.hash_digests) + end + if @opt.act[:po4a][:set]==:on + if @opt.fns =~/\S+?~\S{2}(?:_\S{2})?\.ss[mt]/ + f=y.gsub(/\.pot$/,'.po') + show.po4a.po(x,f) + else + show.po4a.pot(x,f) end end - if (@opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - urls_maintenance(@opt,x,y) + if @opt.act[:share_source][:set]==:on + show.report(report_info.source) + end + if @opt.act[:sisupod][:set]==:on + show.report(report_info.sisupod) end + if @opt.act[:qrcode][:set]==:on + show.report(report_info.qrcode) + end + if @opt.act[:manifest][:set]==:on + show.report(report_info.manifest) + end + end + if (@opt.act[:verbose_plus][:set]==:on \ + || @opt.act[:maintenance][:set]==:on) + urls_maintenance(@opt,x,y) end end end diff --git a/lib/sisu/v5/utils_screen_text_color.rb b/lib/sisu/v5/utils_screen_text_color.rb index 42b0c698..d50b39b6 100644 --- a/lib/sisu/v5/utils_screen_text_color.rb +++ b/lib/sisu/v5/utils_screen_text_color.rb @@ -51,7 +51,7 @@ * Git - + * Ralph Amissah @@ -269,7 +269,7 @@ module SiSU_Screen blue end def result - puts "\t#{@cX.green}#{@txt[0]}#{@cX.off} #{@cX.blue}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}" + puts "\t#{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.green}#{@txt[1]}#{@cX.off} #{@cX.blue}#{@txt[2]}#{@cX.off}" end def maintenance puts "\t#{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.brown}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}" diff --git a/lib/sisu/v5/wikispeak.rb b/lib/sisu/v5/wikispeak.rb index a0fba849..198ea11b 100644 --- a/lib/sisu/v5/wikispeak.rb +++ b/lib/sisu/v5/wikispeak.rb @@ -102,7 +102,7 @@ module SiSU_Wikispeak @ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here SiSU_Wikispeak::Source::Scroll.new(@ao_array,@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xhtml.rb b/lib/sisu/v5/xhtml.rb index 4253e8eb..9a9d74a2 100644 --- a/lib/sisu/v5/xhtml.rb +++ b/lib/sisu/v5/xhtml.rb @@ -116,7 +116,7 @@ module SiSU_XHTML end SiSU_XHTML::Source::Songsheet.new(@particulars).song rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -140,7 +140,7 @@ module SiSU_XHTML end SiSU_Rexml::Rexml.new(@md,@file.place_file.xhtml.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xhtml_epub2.rb b/lib/sisu/v5/xhtml_epub2.rb index 9b110497..25d1b955 100644 --- a/lib/sisu/v5/xhtml_epub2.rb +++ b/lib/sisu/v5/xhtml_epub2.rb @@ -135,7 +135,7 @@ module SiSU_XHTML_EPUB2 SiSU_XHTML_EPUB2::Source::Seg.new(@md,data).songsheet SiSU_XHTML_EPUB2::Source::Output.new(@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -148,7 +148,7 @@ module SiSU_XHTML_EPUB2 end end end - SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate + SiSU_Env::Clear.new(@opt.selections.str,@opt.fns).param_instantiate @@flag,@@scr,@@seg,@@seg_endnotes,@@seg_subtoc,@@seg_ad={},{},{},{},{},{} @@seg_total,@@tracker,@@loop_count,@@tablehead,@@number_of_cols=0,0,0,0,0 @@seg_name,@@seg_name_html,@@seg_subtoc_array,@@seg_endnotes_array,@@segtocband,@@tablefoot=Array.new(7){[]} @@ -393,7 +393,7 @@ module SiSU_XHTML_EPUB2 @@toc[:seg] << toc[:seg] @@toc[:scr] << toc[:seg] rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -726,7 +726,7 @@ module SiSU_XHTML_EPUB2 end out.close rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -741,7 +741,7 @@ module SiSU_XHTML_EPUB2 end out.close rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -818,7 +818,7 @@ WOK filename_xhtml.close end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -836,7 +836,7 @@ WOK filename_xhtml.close end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end diff --git a/lib/sisu/v5/xhtml_epub2_concordance.rb b/lib/sisu/v5/xhtml_epub2_concordance.rb index 447dd72e..0bdaff3c 100644 --- a/lib/sisu/v5/xhtml_epub2_concordance.rb +++ b/lib/sisu/v5/xhtml_epub2_concordance.rb @@ -96,7 +96,7 @@ module SiSU_XHTML_EPUB2_Concordance SiSU_XHTML_EPUB2_Concordance::Source::Words.new(@particulars).songsheet end rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -181,7 +181,7 @@ WOK @rgx_splitlist=%r{[—.,;:-]+|#{Mx[:nbsp]}+}mi @rgx_scanlist=%r{#{Mx[:fa_italics_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_italics_c]}|#{Mx[:fa_bold_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_bold_c]}|#{Mx[:url_o]}https?://\S+?#{Mx[:url_c]}|file://\S+|<\S+?>|\w+|[a-zA-Z]+}mi rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end end @@ -195,7 +195,7 @@ WOK @file_concordance=File.open("#{@path}/content/#{@md.fn[:epub_concord]}",'w') map_para rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xhtml_epub2_segments.rb b/lib/sisu/v5/xhtml_epub2_segments.rb index 917a4f92..9492a736 100644 --- a/lib/sisu/v5/xhtml_epub2_segments.rb +++ b/lib/sisu/v5/xhtml_epub2_segments.rb @@ -146,7 +146,7 @@ WOK SiSU_XHTML_EPUB2_Seg::Seg.new.cleanup # (((( added )))) #### (((( END )))) #### rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xhtml_epub2_tune.rb b/lib/sisu/v5/xhtml_epub2_tune.rb index aa748cf6..c6d9f165 100644 --- a/lib/sisu/v5/xhtml_epub2_tune.rb +++ b/lib/sisu/v5/xhtml_epub2_tune.rb @@ -141,7 +141,7 @@ module SiSU_XHTML_EPUB2_Tune end SiSU_XHTML_EPUB2_Tune::Tune.new(@data,@md).output rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xml_docbook5.rb b/lib/sisu/v5/xml_docbook5.rb index 8132a356..2a7f2fb0 100644 --- a/lib/sisu/v5/xml_docbook5.rb +++ b/lib/sisu/v5/xml_docbook5.rb @@ -83,12 +83,12 @@ module SiSU_XML_Docbook_Book report SiSU_XML_Docbook_Book::Source::Scroll.new(@ao_array,@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure - #SiSU_Env::CreateSite.new(@opt.cmd).cp_css - #SiSU_Env::CreateSite.new(@opt.cmd).cp_base_images + #SiSU_Env::CreateSite.new(@opt.selections.str).cp_css + #SiSU_Env::CreateSite.new(@opt.selections.str).cp_base_images Dir.chdir(@opt.f_pth[:pth]) end end diff --git a/lib/sisu/v5/xml_dom.rb b/lib/sisu/v5/xml_dom.rb index a602eee3..38c60edf 100644 --- a/lib/sisu/v5/xml_dom.rb +++ b/lib/sisu/v5/xml_dom.rb @@ -117,7 +117,7 @@ module SiSU_XML_DOM end SiSU_XML_DOM::Source::Songsheet.new(@particulars).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -141,7 +141,7 @@ module SiSU_XML_DOM end SiSU_Rexml::Rexml.new(@md,@file.place_file.xml_dom.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xml_fictionbook2.rb b/lib/sisu/v5/xml_fictionbook2.rb index 74afc6ad..c7c54b30 100644 --- a/lib/sisu/v5/xml_fictionbook2.rb +++ b/lib/sisu/v5/xml_fictionbook2.rb @@ -82,7 +82,7 @@ module SiSU_XML_Fictionbook report SiSU_XML_Fictionbook::Source::Scroll.new(@ao_array,@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xml_odf_odt.rb b/lib/sisu/v5/xml_odf_odt.rb index 55c8d7ed..1fd32244 100644 --- a/lib/sisu/v5/xml_odf_odt.rb +++ b/lib/sisu/v5/xml_odf_odt.rb @@ -117,7 +117,7 @@ module SiSU_XML_ODF_ODT end SiSU_XML_ODF_ODT::Source::Scroll.new(@particulars).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -150,7 +150,7 @@ module SiSU_XML_ODF_ODT unless (@md.opt.act[:verbose_plus][:set]==:on \ || @md.opt.act[:maintenance][:set]==:on) if @env.processing_path.odt =~/od[ft]/ - #p "rm -r #{@env.processing_path.odt}" if @md.opt.cmd =~/v/ + #p "rm -r #{@env.processing_path.odt}" if @md.opt.selections.str =~/v/ FileUtils::rm_r(@env.processing_path.odf_pth) #system("rm -r #{@env.processing_path.odt}") end @@ -636,7 +636,7 @@ module SiSU_XML_ODF_ODT odf_book_idx odf_metadata data.each do |dob| - #p dob.obj if dob.obj =~safe_characters and @md.opt.cmd =~/V/ #KEEP + #p dob.obj if dob.obj =~safe_characters and @md.opt.selections.str =~/V/ #KEEP dob.obj='' if dob.obj =~/#{Mx[:lv_o]}\d+:.*?#{Mx[:lv_c]}.+?#{Mx[:pa_non_object_dummy_heading]}/ #fix Mx[:lv_o] para_array=[] dob.obj=dob.obj.gsub(//,'>') diff --git a/lib/sisu/v5/xml_sax.rb b/lib/sisu/v5/xml_sax.rb index 58719798..273d24cc 100644 --- a/lib/sisu/v5/xml_sax.rb +++ b/lib/sisu/v5/xml_sax.rb @@ -116,7 +116,7 @@ module SiSU_XML_SAX end SiSU_XML_SAX::Source::Songsheet.new(@particulars).song rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure @@ -141,7 +141,7 @@ module SiSU_XML_SAX end SiSU_Rexml::Rexml.new(@md,@file.place_file.xml_sax.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug rescue - SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do + SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xml_scaffold_structure_collapsed.rb b/lib/sisu/v5/xml_scaffold_structure_collapsed.rb index f36c937f..25a3dea0 100644 --- a/lib/sisu/v5/xml_scaffold_structure_collapsed.rb +++ b/lib/sisu/v5/xml_scaffold_structure_collapsed.rb @@ -79,7 +79,7 @@ module SiSU_XML_Scaffold_Structure_Collapse @md,@ao_array=@particulars.md,@particulars.ao_array SiSU_XML_Scaffold_Structure_Collapse::Source::Scroll.new(@ao_array,@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/xml_scaffold_structure_sisu.rb b/lib/sisu/v5/xml_scaffold_structure_sisu.rb index 44344328..40df4fa8 100644 --- a/lib/sisu/v5/xml_scaffold_structure_sisu.rb +++ b/lib/sisu/v5/xml_scaffold_structure_sisu.rb @@ -79,7 +79,7 @@ module SiSU_XML_Scaffold_Structure_Sisu @md,@ao_array=@particulars.md,@particulars.ao_array SiSU_XML_Scaffold_Structure_Sisu::Source::Scroll.new(@ao_array,@md).songsheet rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do + SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure diff --git a/lib/sisu/v5/zap.rb b/lib/sisu/v5/zap.rb index 75707247..487d1fa5 100644 --- a/lib/sisu/v5/zap.rb +++ b/lib/sisu/v5/zap.rb @@ -75,7 +75,7 @@ module SiSU_Zap unless @opt.act[:quiet][:set]==:on tell=SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], - "Clean files related to processing #{@opt.cmd} ->", + "Clean files related to processing #{@opt.selections.str} ->", "#{@opt.fns} -> #{zap_path}" ) tell.warn -- cgit v1.2.3