aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sisu/v6/hub.rb571
-rw-r--r--lib/sisu/v6/hub_actions.rb585
2 files changed, 617 insertions, 539 deletions
diff --git a/lib/sisu/v6/hub.rb b/lib/sisu/v6/hub.rb
index 11ac947b..bb2f2176 100644
--- a/lib/sisu/v6/hub.rb
+++ b/lib/sisu/v6/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
@@ -204,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.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
class Processing
begin
require 'fileutils'
@@ -313,445 +239,6 @@ module SiSU
@remove_faulty_markup_files_array.join(',')
end
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
- #if @opt.files.length > 0
- 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'
- 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
- 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'
- 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
- end
- def manifest?
- 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
- end
- def sitemaps?
- 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
- 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
- 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
- end
- def urls?
- 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 #% urls.rb
- end
- end
- end
- self
- end
- end
- def init?
- @cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX
- 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
- 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
def do_each_file_loop_options
@opt.files.each_with_index do |fno,i|
@opt.fno=fno
@@ -771,17 +258,18 @@ module SiSU
Dir.chdir(@opt.pth) #watch
end
@env=SiSU_Env::InfoEnv.new(@opt.fns)
- outputs.each_file.abstract_objects?
- outputs.each_file.qrcode?
- outputs.each_file.hash_digests?
- outputs.each_file.text?
- outputs.each_file.html?
- outputs.each_file.xhtml?
- outputs.each_file.xml?
- outputs.each_file.pdf?
- outputs.each_file.man_or_info?
- outputs.each_file.sqlite_discrete?
- outputs.each_file.manifest?
+ 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
@@ -796,12 +284,14 @@ module SiSU
end
end
def do_loop_files_on_given_option_post
- outputs.loop_files.share_source?
- outputs.loop_files.run_termsheet?
- outputs.loop_files.sql?
- outputs.loop_files.manifest?
- outputs.loop_files.sitemaps?
- outputs.loop_files.urls?
+ 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 version_info
if @opt.act[:version_info][:set]==:on
@@ -809,8 +299,10 @@ module SiSU
end
end
def actions_without_files
- prepare.remote_site?
- prepare.sql?
+ 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
@@ -821,14 +313,15 @@ module SiSU
error('profile NOT FOUND (LoadError)')
end
end
- outputs.each_file.harvest? #check
- outputs.init?
+ 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
- outputs.sql? #check location
+ actions.outputs.sql? #check location
if @opt.f_pths.length > 0
if (@opt.act[:verbose][:set]==:on \
|| @opt.act[:verbose_plus][:set]==:on \
@@ -859,7 +352,7 @@ module SiSU
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).warn(:fuchsia)
end
else #% sisu help refer to man pages
- prepare.site?
+ actions.prepare(@opt).site?
unless done==:ok
#SiSU_Env::InfoAbout.new(@opt).sisu_about
end
@@ -875,7 +368,7 @@ module SiSU
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$/ \
@@ -884,7 +377,7 @@ module SiSU
@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/v6/hub_actions.rb b/lib/sisu/v6/hub_actions.rb
new file mode 100644
index 00000000..f6fb7d39
--- /dev/null
+++ b/lib/sisu/v6/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 <http://www.gnu.org/licenses/>.
+
+ If you have Internet connection, the latest version of the GPL should be
+ available at these locations:
+ <http://www.fsf.org/licensing/licenses/gpl.html>
+ <http://www.gnu.org/licenses/gpl.html>
+
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
+
+ * SiSU uses:
+ * Standard SiSU markup syntax,
+ * Standard SiSU meta-markup syntax, and the
+ * Standard SiSU object citation numbering and system
+
+ * Hompages:
+ <http://www.jus.uio.no/sisu>
+ <http://www.sisudoc.org>
+
+ * Download:
+ <http://www.sisudoc.org/sisu/en/SiSU/download.html>
+
+ * Git
+ <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
+ <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v6/hub_actions.rb;hb=HEAD>
+
+ * Ralph Amissah
+ <ralph@amissah.com>
+ <ralph.amissah@gmail.com>
+
+ ** 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__