From 75e3bf86382edf99275a25895b362647158e25c1 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:37:26 -0500 Subject: v3dv, add dev branch (use to make some changes to module & class names & test) * (intended as) short term branch, merge back into v3 once tested * sisu --dev (to invoke) --- lib/sisu/v3dv/hub.rb | 674 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 lib/sisu/v3dv/hub.rb (limited to 'lib/sisu/v3dv/hub.rb') diff --git a/lib/sisu/v3dv/hub.rb b/lib/sisu/v3dv/hub.rb new file mode 100644 index 00000000..149a5727 --- /dev/null +++ b/lib/sisu/v3dv/hub.rb @@ -0,0 +1,674 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997 - 2012, 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: + + + * Ralph Amissah + + + + ** Description: SiSU information Structuring Universe, text structuring, + processing, publishing, search + +=end +module SiSU + require_relative 'constants' # constants.rb + require_relative 'sysenv' # sysenv.rb + include SiSU_Screen + @@pwd_the=Dir.pwd + class Op + @@env=SiSU_Env::Info_env.new + def initialize(opt,req,message) + @opt,@req,@message=opt,req,message + @n_do=0 + end + def pod3_output(fns_pod) + dir_pwd=@@env.path.pwd + dir_pod=@@env.sisupod_gen_v3(fns_pod) + Dir.chdir("#{dir_pod}/doc") + #system("ls") + files=Dir['*/*.ss[tm]'] + files_ssm=Dir['*/*.ssm'] + files_sst=Dir['*/*.sst'] + content=if files_ssm.length > 0 + files_ssm.join(' ') + elsif files_sst.length > 0 + files_sst.join(' ') + else + p 'no files found' + end + @opt.fns=content #check + if FileTest.directory?("#{dir_pod}/doc") + Dir.chdir("#{dir_pod}/doc") + system(" + sisu3 -CC #{@opt.cmd} #{@opt.mod.join(' ')} #{content} + #sisu3 -CC #{@opt.cmd} -G #{@opt.mod.join(' ')} #{content} + ") + Dir.chdir(dir_pwd) + end + @pwd=`pwd`.strip + Dir.chdir(@pwd) + end + def pod2_output(fns_pod) + dir_pwd=@@env.path.pwd + dir_pod=@@env.sisupod_gen_v2(fns_pod) + Dir.chdir(dir_pod) + system("ls") + files=Dir['*.ss[tm]'] + files_ssm=Dir['*.ssm'] + files_sst=Dir['*.sst'] + content=if files_ssm.length > 0 + files_ssm.join(' ') + elsif files_sst.length > 0 + files_sst.join(' ') + else + p 'no files found' + end + @opt.fns=content + if FileTest.directory?(dir_pod) + Dir.chdir(dir_pod) + system(" + sisu3 -CC #{@opt.cmd} #{@opt.mod.join(' ')} #{content} + #sisu3 -CC #{@opt.cmd} -G #{@opt.mod.join(' ')} #{content} + ") + Dir.chdir(dir_pwd) + end + @pwd=`pwd`.strip + Dir.chdir(@pwd) + end + def select + require_relative @req + if @req =~/^conf$/ # -C + SiSU_Initialize::Source.new(@opt).read + end + if not @opt.files.empty? + @opt.files.each_with_index do |fns,i| + env=SiSU_Env::Info_env.new(fns) + if fns =~ /sisupod(?:\.txz)?|\S+?(?:\.ss[mt]\.txz|\.ssp)$/ + require_relative 'remote' # remote.rb #check + pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.txz|\.ssp)$/ + SiSU_Remote::Remote_download.new(fns).pod.name + else + re_p=/(\S+?\.ss[mt](?:\.txz)?)$/ + re_p.match(fns).captures.join + end + SiSU_Screen::Ansi.new(@opt.cmd,pod_name).puts_blue unless @opt.cmd =~/q/ + @opt.files.shift + pod3_output(pod_name) + break + elsif fns =~ /sisupod(?:\.zip)?|\S+?(?:\.ss[mt]\.zip|\.ssp)$/ + require_relative 'remote' # remote.rb #check + pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.zip|\.ssp)$/ + SiSU_Remote::Remote_download.new(fns).pod.name + else + re_p=/(\S+?\.ss[mt](?:\.zip)?)$/ + re_p.match(fns).captures.join + end + SiSU_Screen::Ansi.new(@opt.cmd,pod_name).puts_blue unless @opt.cmd =~/q/ + @opt.files.shift + pod2_output(pod_name) + break + else + put=fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') + if fns !~/\.-sst$/ + @opt.fns=fns + @opt.pth=@opt.paths[i] + @opt.f_pth=@opt.f_pths[i] + @opt.lng=@opt.lngs[i] + @@pwd=@opt.pth + else + @opt.fns=fns + @opt.pth=Dir.pwd + @opt.f_pth=@opt.f_pths[i] #@opt.f_pth= { pth: Dir.pwd } + @opt.lng='en' + #@opt.lng=@opt.lngs[i] + @@pwd=@opt.pth + end + Dir.chdir(@opt.pth) #watch + env=SiSU_Env::Info_env.new(fns) + if @req !~/(?:urls|remote)$/ + if @opt.cmd.inspect =~/-P/\ + and @req =~ /^po4a$/ + require_relative 'composite' # composite.rb #pre-processing + SiSU_po4a::Source.new(@opt).read # -P po4a.rb + elsif @req=~/^dal$/ \ + and FileTest.file?(@opt.fns) \ + and @opt.fns =~ /\.(?:(?:-|ssm\.)?sst|ssm)$/ + if fns =~ /\.ssm$/ + require_relative 'composite' # composite.rb #pre-processing + SiSU_Assemble::Composite.new(@opt).read + @opt.fns=fns.gsub(/\.ssm$/,'.ssm.sst') + end + SiSU_DAL::Source.new(@opt).read # -m + elsif FileTest.file?(env.source_file_with_path) + case @opt.fns + when /\.(?:(?:-|ssm\.)?sst|ssm)$/ + case @req + when /^dal$/ + if fns =~ /\.ssm$/ + require_relative 'composite' # composite.rb #pre-processing + SiSU_Assemble::Composite.new(@opt).read + @opt.fns=fns.gsub(/\.ssm$/,'.ssm.sst') + end + SiSU_DAL::Source.new(@opt).read # -m dal.rb + when /^git$/; SiSU_Git::Source.new(@opt).read # -g git.rb + when /^concordance$/; SiSU_Concordance::Source.new(@opt).read # -w concordance.rb + when /^share_src$/; SiSU_Markup::Source.new(@opt).read # -s share_src.rb + when /^sisupod_make$/; SiSU_Doc::Source.new(@opt).read # -S sisupod_make.rb +# when /^source_kdissert$/; SiSU_Kdi_source::Source.new(@opt).read # -S share_src_kdissert.rb + when /^digests$/; SiSU_Digest_view::Source.new(@opt).read # -N digests.rb + when /^plaintext$/; SiSU_Plaintext::Source.new(@opt).read # -t -a plaintext.rb + when /^po4a$/; SiSU_po4a::Source.new(@opt).read # -P po4a.rb + #when /^wikispeak$/; SiSU_Wikispeak::Source.new(@opt).read # -g + when /^epub$/; SiSU_EPUB::Source.new(@opt).read # -e epub.rb + when /^odf$/; SiSU_ODF::Source.new(@opt).read # -o odf.rb + when /^xml_md_oai_pmh_dc$/; SiSU_XML_metadata::OAI_PMH.new(@opt).read # -O + when /^texpdf$/; SiSU_TeX::Source.new(@opt).read # -p texpdf.rb + when /^manpage$/; SiSU_Manpage::Source.new(@opt).read # -i manpage.rb + when /^texinfo$/; SiSU_TexInfo::Source.new(@opt).read # -I texinfo.rb + when /^html$/; SiSU_HTML::Source.new(@opt).read # -h -H html.rb + when /^xhtml$/; SiSU_XHTML::Source.new(@opt).read # -b xhtml.rb + when /^xml$/; SiSU_XML_SAX::Source.new(@opt).read # -x xml.rb + when /^xml_dom$/; SiSU_XML_DOM::Source.new(@opt).read # -X xml_dom.rb + #when /^xml_fictionbook$/; SiSU_XML_Fictionbook::Source.new(@opt).read # -f + when /^xml_scaffold$/; SiSU_XML_scaffold::Source.new(@opt).read # -k xml_scaffold.rb + when /^embedded$/; SiSU_Embedded::Source.new(@opt).read # -m embedded.rb (image and other content) #check + when /^manifest$/; SiSU_Manifest::Source.new(@opt).read # -y manifest.rb + when /^qrcode$/; SiSU_QRcode::Source.new(@opt).read # -Q qrcode.rb + when /^sitemaps$/; SiSU_Sitemaps::Source.new(@opt).read # -Y sitemaps.rb + when /^zap$/; SiSU_Zap::Source.new(@opt).read # -Z zap.rb + when /^dbi$/; SiSU_DBI::SiSU_SQL.new(@opt).connect # -D -d dbi.rb + end + @n_do=@n_do+1 + SiSU_Screen::Ansi.new(@opt.cmd,@n_do,"#{@req.upcase} processed").files_processed if @opt.cmd =~/[MVv]/ + ObjectSpace.garbage_collect + else #print "not processed --> ", fns, "\n" + end + else + if @req !~/^conf$/ \ + and @opt.fns !~/http:\/\// + Operations.new(@opt).not_found + end + end + elsif FileTest.file?(put) + if @opt.mod.inspect !~/harvest/ #decide whether should permit harvest in single operation + case @req + when /^urls$/; SiSU_urls::Source.new(@opt).read # -u -v -V -M + when /^remote$/ + case @message + when /scp/; SiSU_Remote::Put.new(@opt).scp # -r + when /rsync/; SiSU_Remote::Put.new(@opt).rsync # -R + else #SiSU_Remote::Put.new(put,@opt.cmd).scp + end + end + @n_do=@n_do+1 + SiSU_Screen::Ansi.new(@opt.cmd,@n_do,"#{@req.upcase} processed").files_processed if @opt.cmd =~/[MVv]/ + end + else Operations.new(@opt).not_found + end + end + end + elsif @req =~/^dbi$/; SiSU_DBI::SiSU_SQL.new(@opt).connect # -D -d + elsif @req=~/^sisupod_make$/; SiSU_Doc::Source.new(@opt).read # -S + end + Operations.new.counter + 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 +p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).rsync_base + end + def remote_put_base_site_rsync_match # -CCRZ +p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).rsync_base_sync + end + def remote_put_base_site # -Cr +p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).scp_base + end + def remote_put_base_site_all # -CCr +p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).scp_base_all + end + def cgi # -F + require_relative 'cgi' # cgi.rb + SiSU_CGI::SiSU_search.new(@opt).read + end + def encoding # -K build character encoding db (uses KirbyBase) + require_relative 'character_encoding' # character_encoding.rb + SiSU_character_encode::Create.new.db + 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.cmd =~/q/ + end + def webrick # -W + port=prt=@fns + prt=if prt !~/\d+/ + 'webrick default (sysenv)' + else "webrick port set to #{prt}" + end + puts %{#{@cX.blue}<<#{@cX.off}#{@cX.green}Start Webrick web server on port: #{prt}#{@cX.off}#{@cX.blue}>> #{@cX.off*2} } + system("sisu_webrick #{port}&\n") + end + def not_found + puts "\n#{@cX.fuschia}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.fuschia}#{fns}#{@cX.off}" << #{type} >> #{@cX.fuschia}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.fuschia}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.fuschia}FILETYPE NOT RECOGNISED:#{@cX.off} << #{@opt.fns} >> - is not a recognized filetype,\n\trequested #{@opt.cmd} processing skipped\n" + end + end + end + class Processing + require 'fileutils' + include FileUtils + @@env=SiSU_Env::Info_env.new + attr_accessor :op + def initialize(opt) + @opt=opt + @msg,@msgs='',nil + @tell=lambda { SiSU_Screen::Ansi.new(@opt.cmd,@msg,"#{@msgs.inspect if @msgs}") } + end + def op(req,msg) + Op.new(@opt,req,msg).select if req and msg + end + def actions + if @opt.cmd =~/E/ # re-assign character + require 'profile' + end + if @opt.act[:harvest][:bool] + 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 @opt.cmd =~/([abCcDdeFGgHhIikLMmNnoPpQqRrSsTtUuVvWwXxYyZ_0-9])/ \ + and @opt.cmd =~/^-/ \ + and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ + or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ + @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX + flag=SiSU_Env::Info_processing_flag.new + if @opt.cmd =~/[vVM]/ #% version information + if @opt.cmd =~/V/ \ + and @opt.files.empty? #% environment + SiSU_Help::Help.new('env',@opt).environment + else SiSU_Help::Help.new('env',@opt).sisu_version + end + end + if @opt.act[:license][:bool] #% license information + SiSU_Help::Help.new('license',@opt).help_request + end + if @opt.act[:dal][:bool] \ + or @opt.act[:maintenance][:bool] #% --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 + unless ( FileTest.directory?(path[:css]) \ + and FileTest.directory?(path[:xsd]) ) + @opt.cmd=@opt.cmd +='C' unless @opt.cmd =~/C/ #FIX + end + if @opt.cmd =~/M/ + $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 + unless ( FileTest.directory?(path[:css]) \ + and FileTest.directory?(path[:xsd]) ) + @opt.cmd=@opt.cmd +='C' unless @opt.cmd =~/C/ #FIX + end + if @opt.cmd =~/M/ + $VERBOSE=false #debug $VERBOSE=true + end + end + end + if @opt.act[:site_init][:bool] #% --init-site, -C initialize/configure + op('conf','configure site') + if @opt.cmd =~/R/ + if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + and @opt.cmd =~/RZ/ + Operations.new(@opt).remote_put_base_site_rsync_match + else Operations.new(@opt).remote_put_base_site_rsync + end + elsif @opt.cmd =~/r/ + if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ + and @opt.cmd =~/CCr/ + Operations.new(@opt).remote_put_base_site_all + else Operations.new(@opt).remote_put_base_site + end + end + end + if @opt.act[:sample_search_form][:bool] #% --sample-search-form, -F cgi sample search form + Operations.new(@opt).cgi + end + if @opt.act[:webrick][:bool] #% --webrick, -W webrick + Operations.new(@opt).webrick + end + if @opt.cmd =~/Z/ #% -Z wipe previous output clean + op('zap','Zap, deletions') + end + if @opt.act[:share_source][:bool] + op('share_src','SiSU markup source') + end + if @opt.act[:dal][:bool] + @retry_count= -1 + begin + path_image='./_sisu/processing/external_document/image' + path_skin='./_sisu/processing/external_document/skin/doc' + @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 + #re_p2=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.zip|sisupod(?:\.zip)?|\.ssp))/ + #re_pl2=/^(\/\S+?\.ss[mt]\.zip)/ + #@opt.files.each do |fns| + # if fns =~re_p2 + # @get_p << re_p2.match(fns)[1] if re_p2 + # end + # if fns =~re_pl2 + # @get_pl << re_pl2.match(fns)[1] if re_p2 + # end + #end + if @get_s.length > 0 #% remote markup file .sst + require_relative 'remote' # remote.rb + SiSU_Remote::Get.new(@opt,@get_s).fns + 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::Info_error.new($!,$@,@opt,@fns).error #ok + @retry_count +=1 + retry unless @retry_count > 1 + ensure + end + @opt.files=@opt.files.collect {|x| x=x.gsub(/(?:https?|file):\/\/\S+\/(\S+)\.sst$/,'\1.-sst') } + end + if @opt.act[:dal][:bool] #%--dal, -m + op('dal','dal') + end + @opt.files=@opt.files.collect {|x| x=x.gsub(/\.ssm$/,'.ssm.sst') } + if @opt.act[:sisupod][:bool] #% --sisupod, -S make sisupod + op('sisupod_make','sisupod (txz)') + if @opt.fns=~/\.kdi._sst/ + op('share_src_kdissert','kdissert (kdi)') #% -S share kdissert source + end + end + if @opt.act[:qrcode][:bool] #% --qrcode, -Q + op('qrcode','QRcode') + end + if @opt.act[:hash_digests][:bool] #% --hash-digests, -N digest tree + op('digests','digests') + end + if @opt.act[:html][:bool] #% --html, -h + op('html','html') + end + if @opt.act[:txt][:bool] #% --txt, -t -a + #-A -f -e -E plaintext -a creates ms-dos type; -A creates unix type, plaintext file + op('plaintext','plaintext') + end + if @opt.act[:epub][:bool] #% --epub, -e + op('epub','ePub') + end + if @opt.act[:odt][:bool] #% --odt, -o opendocument + op('odf','OpenDocument') + end + if @opt.act[:xml_sax][:bool] #% --xml-sax, -x xml sax type + op('xml','xml sax') + end + if @opt.act[:xml_dom][:bool] #% --xml-dom, -x xml dom type + op('xml_dom','xml dom') + end + #if @opt.act[:fictionbook] #% --fictionbook, -f fictionbook xml + # op('xml_fictionbook','xml fictionbook') + #end + if @opt.act[:xhtml][:bool] #% --xhtml, -b xhtml + op('xhtml','xhtml sax') + end + if @opt.act[:concordance][:bool] #% --concordance, -w + op('concordance','Concordance') + end + if @opt.cmd =~/O/ #% -O open archive initiative, metadata harvesting + op('xml_md_oai_pmh_dc','OAI PMH') + end + if @opt.act[:po4a][:bool] #% --po4a, -P + op('po4a','po4a') + end + if @opt.act[:git][:bool] #% --git, -g sisu git + op('git','SiSU Git') + end + if @opt.cmd =~/T/ #% -T termsheet/standard form + SiSU_Help::Help.new('termsheet').help_request + @opt.files.each do |fns| + if FileTest.file?(fns) + @opt.fns=fns + case @opt.fns + when /\.(termsheet.rb)$/; Operations.new(@opt).termsheet + else #print "not processed --> ", fns, "\n" + end + else Operations.new(@opt).not_found + end + end + Operations.new.counter + end + if @opt.cmd =~/k/ #% -T temporary tests + op('xml_scaffold','XML scaffold') + end + if @opt.act[:pdf][:bool] #% --pdf, -p latex/ texpdf + op('texpdf','LaTeX pdf') + end + if @opt.act[:manpage][:bool] #% --manpage, -i + op('manpage','manpage') + end + if @opt.act[:texinfo][:bool] #% --texinfo, -I + op('texinfo','TeX Info') + end + if @opt.act[:psql][:bool] #% --pg, -D DB postgresql + op('dbi','postgresql') + end + if @opt.act[:sqlite][:bool] #% --sqlite, -d DB sqlite + op('dbi','sqlite') + end + if @opt.act[:dal][:bool] #% --dal, -m embedded content + op('embedded','Embedded Content') + end + if @opt.act[:manifest][:bool] #% --manifest, -y + op('manifest','Manifest') + end + if @opt.act[:sitemap][:bool] #% --sitemap, -Y + op('sitemaps','Sitemap') + end + if @opt.mod.inspect !~/--harvest/ + if @opt.act[:scp][:bool] #% -r copy to remote server + op('remote','scp') + end + if @opt.act[:rsync][:bool] #% -R copy to remote server + op('remote','rsync') + end + else + end + op('urls','urls') + @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil unless @opt.cmd =~/q/ + @tell.call.print_brown if @opt.cmd =~/[uUvVM]/ unless @opt.files.join.empty? + 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 + FileUtils::cd(@@env.processing_path.processing_base_tmp) do + FileUtils::rm_rf(@@env.user) unless @opt.cmd =~/M/ + end + end + elsif @opt.mod.inspect =~/--query/ + require_relative 'sst_identify_markup' # sst_identify_markup.rb + puts SiSU_Markup::Markup_history.new(@opt).query + elsif @opt.mod.inspect =~/--identify/ + require_relative 'sst_identify_markup' # sst_identify_markup.rb + markup_version=SiSU_Markup::Markup_identify.new(@opt).markup_version? + elsif @opt.mod.inspect =~/--about/ #% help instructions + if @opt.mod.inspect =~/--about/ \ + and not @opt.what.empty? + SiSU_Help::Help.new(@opt.what,'color_off').help_request + else SiSU_Help::Help.new('list','color_off').help_request + end + elsif @opt.mod.inspect =~/--sitemaps/ #% sitemaps + require_relative 'sitemaps' # sitemaps.rb + SiSU_Sitemaps::Source.new(@opt).read + if @opt.cmd =~/R/ + require_relative 'remote' # remote.rb + SiSU_Remote::Put.new(@opt).rsync_sitemaps + end + else #% help instructions + unless @opt.mod.inspect =~/--convert|--to|--from|--harvest/ + if @opt.mod.inspect =~/--help/ \ + and not @opt.what.empty? + SiSU_Help::Help.new(@opt.what).help_request + elsif @opt.mod.inspect =~/--help/; SiSU_Help::Help.new('list').help_request + else SiSU_Help::Help.new('env',@opt).sisu_version + tell=SiSU_Screen::Ansi.new(''," for HELP type:\n\tsisu --help [help request]\n\tman sisu\n or see the system or online documentation on SiSU:\n #{Config::CONFIG['datadir']}/doc/sisu/\n \n "); tell.puts_grey + end + 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/ + 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 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 + @msg,@msgs='temporary file removed',nil + @tell.call.warn unless @opt.cmd =~/V/ + File.unlink(@opt.fns) if File.exist?(@opt.fns) #CONSIDER + end + else #Operations.new(fns,'html').not_found + end + end + end + end + begin #% select what to do + if RUBY_VERSION < '1.9' + require 'jcode' + $KCODE='UTF8' + end + require_relative 'constants' # constants.rb + require_relative 'options' # options.rb + require_relative 'sysenv' # sysenv.rb + include SiSU_Env; include SiSU_Screen + require_relative 'param' # param.rb + include SiSU_Param + require_relative 'defaults' # defaults.rb + include SiSU_Viz + require_relative 'help' # help.rb + include SiSU_Help + require 'uri' + home=ENV['HOME'] + argv=$* + @opt=SiSU_commandline::Options.new(argv) + Processing.new(@opt).actions + rescue; STDERR.puts SiSU_Screen::Ansi.new(@opt,$!,$@,nil).rescue #fix + ensure + Dir.chdir(@@pwd_the) + end +end +__END__ -- cgit v1.2.3 From 51ba2d70af41137ddc3323d79e01b28fbcb40082 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:44:24 -0500 Subject: v3dv: module names, use more CamelCase --- lib/sisu/v3dv/hub.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'lib/sisu/v3dv/hub.rb') diff --git a/lib/sisu/v3dv/hub.rb b/lib/sisu/v3dv/hub.rb index 149a5727..0dfa865b 100644 --- a/lib/sisu/v3dv/hub.rb +++ b/lib/sisu/v3dv/hub.rb @@ -176,7 +176,7 @@ module SiSU if @opt.cmd.inspect =~/-P/\ and @req =~ /^po4a$/ require_relative 'composite' # composite.rb #pre-processing - SiSU_po4a::Source.new(@opt).read # -P po4a.rb + SiSU_Po4a::Source.new(@opt).read # -P po4a.rb elsif @req=~/^dal$/ \ and FileTest.file?(@opt.fns) \ and @opt.fns =~ /\.(?:(?:-|ssm\.)?sst|ssm)$/ @@ -201,14 +201,14 @@ module SiSU when /^concordance$/; SiSU_Concordance::Source.new(@opt).read # -w concordance.rb when /^share_src$/; SiSU_Markup::Source.new(@opt).read # -s share_src.rb when /^sisupod_make$/; SiSU_Doc::Source.new(@opt).read # -S sisupod_make.rb -# when /^source_kdissert$/; SiSU_Kdi_source::Source.new(@opt).read # -S share_src_kdissert.rb - when /^digests$/; SiSU_Digest_view::Source.new(@opt).read # -N digests.rb +# when /^source_kdissert$/; SiSU_KdiSource::Source.new(@opt).read # -S share_src_kdissert.rb + when /^digests$/; SiSU_DigestView::Source.new(@opt).read # -N digests.rb when /^plaintext$/; SiSU_Plaintext::Source.new(@opt).read # -t -a plaintext.rb - when /^po4a$/; SiSU_po4a::Source.new(@opt).read # -P po4a.rb + when /^po4a$/; SiSU_Po4a::Source.new(@opt).read # -P po4a.rb #when /^wikispeak$/; SiSU_Wikispeak::Source.new(@opt).read # -g when /^epub$/; SiSU_EPUB::Source.new(@opt).read # -e epub.rb when /^odf$/; SiSU_ODF::Source.new(@opt).read # -o odf.rb - when /^xml_md_oai_pmh_dc$/; SiSU_XML_metadata::OAI_PMH.new(@opt).read # -O + when /^xml_md_oai_pmh_dc$/; SiSU_XML_Metadata::OAI_PMH.new(@opt).read # -O when /^texpdf$/; SiSU_TeX::Source.new(@opt).read # -p texpdf.rb when /^manpage$/; SiSU_Manpage::Source.new(@opt).read # -i manpage.rb when /^texinfo$/; SiSU_TexInfo::Source.new(@opt).read # -I texinfo.rb @@ -217,7 +217,7 @@ module SiSU when /^xml$/; SiSU_XML_SAX::Source.new(@opt).read # -x xml.rb when /^xml_dom$/; SiSU_XML_DOM::Source.new(@opt).read # -X xml_dom.rb #when /^xml_fictionbook$/; SiSU_XML_Fictionbook::Source.new(@opt).read # -f - when /^xml_scaffold$/; SiSU_XML_scaffold::Source.new(@opt).read # -k xml_scaffold.rb + when /^xml_scaffold$/; SiSU_XML_Scaffold::Source.new(@opt).read # -k xml_scaffold.rb when /^embedded$/; SiSU_Embedded::Source.new(@opt).read # -m embedded.rb (image and other content) #check when /^manifest$/; SiSU_Manifest::Source.new(@opt).read # -y manifest.rb when /^qrcode$/; SiSU_QRcode::Source.new(@opt).read # -Q qrcode.rb @@ -239,7 +239,7 @@ module SiSU elsif FileTest.file?(put) if @opt.mod.inspect !~/harvest/ #decide whether should permit harvest in single operation case @req - when /^urls$/; SiSU_urls::Source.new(@opt).read # -u -v -V -M + when /^urls$/; SiSU_Urls::Source.new(@opt).read # -u -v -V -M when /^remote$/ case @message when /scp/; SiSU_Remote::Put.new(@opt).scp # -r @@ -295,7 +295,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end def encoding # -K build character encoding db (uses KirbyBase) require_relative 'character_encoding' # character_encoding.rb - SiSU_character_encode::Create.new.db + SiSU_CharacterEncode::Create.new.db end def termsheet # -t system("sisu_termsheet #{@opt.cmd} #{@opt.fns}\n") @@ -664,7 +664,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ require 'uri' home=ENV['HOME'] argv=$* - @opt=SiSU_commandline::Options.new(argv) + @opt=SiSU_Commandline::Options.new(argv) Processing.new(@opt).actions rescue; STDERR.puts SiSU_Screen::Ansi.new(@opt,$!,$@,nil).rescue #fix ensure -- cgit v1.2.3 From 732dca2b21d2261349e639c37e6ed1431e65250c Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:47:40 -0500 Subject: v3dv: class names, remove "SiSU_" (reserve for module names for consistency) --- lib/sisu/v3dv/hub.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/sisu/v3dv/hub.rb') diff --git a/lib/sisu/v3dv/hub.rb b/lib/sisu/v3dv/hub.rb index 0dfa865b..243b2f14 100644 --- a/lib/sisu/v3dv/hub.rb +++ b/lib/sisu/v3dv/hub.rb @@ -223,7 +223,7 @@ module SiSU when /^qrcode$/; SiSU_QRcode::Source.new(@opt).read # -Q qrcode.rb when /^sitemaps$/; SiSU_Sitemaps::Source.new(@opt).read # -Y sitemaps.rb when /^zap$/; SiSU_Zap::Source.new(@opt).read # -Z zap.rb - when /^dbi$/; SiSU_DBI::SiSU_SQL.new(@opt).connect # -D -d dbi.rb + when /^dbi$/; SiSU_DBI::SQL.new(@opt).connect # -D -d dbi.rb end @n_do=@n_do+1 SiSU_Screen::Ansi.new(@opt.cmd,@n_do,"#{@req.upcase} processed").files_processed if @opt.cmd =~/[MVv]/ @@ -254,7 +254,7 @@ module SiSU end end end - elsif @req =~/^dbi$/; SiSU_DBI::SiSU_SQL.new(@opt).connect # -D -d + elsif @req =~/^dbi$/; SiSU_DBI::SQL.new(@opt).connect # -D -d elsif @req=~/^sisupod_make$/; SiSU_Doc::Source.new(@opt).read # -S end Operations.new.counter @@ -291,7 +291,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end def cgi # -F require_relative 'cgi' # cgi.rb - SiSU_CGI::SiSU_search.new(@opt).read + SiSU_CGI::SearchSQL.new(@opt).read end def encoding # -K build character encoding db (uses KirbyBase) require_relative 'character_encoding' # character_encoding.rb -- cgit v1.2.3 From df67ee1079d074dc2af54aa87187c6538e73d5d7 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 10 Jan 2012 22:50:12 -0500 Subject: v3dv: class names, use more CamelCase --- lib/sisu/v3dv/hub.rb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'lib/sisu/v3dv/hub.rb') diff --git a/lib/sisu/v3dv/hub.rb b/lib/sisu/v3dv/hub.rb index 243b2f14..dbcf3c8e 100644 --- a/lib/sisu/v3dv/hub.rb +++ b/lib/sisu/v3dv/hub.rb @@ -63,7 +63,7 @@ module SiSU include SiSU_Screen @@pwd_the=Dir.pwd class Op - @@env=SiSU_Env::Info_env.new + @@env=SiSU_Env::InfoEnv.new def initialize(opt,req,message) @opt,@req,@message=opt,req,message @n_do=0 @@ -129,11 +129,11 @@ module SiSU end if not @opt.files.empty? @opt.files.each_with_index do |fns,i| - env=SiSU_Env::Info_env.new(fns) + env=SiSU_Env::InfoEnv.new(fns) if fns =~ /sisupod(?:\.txz)?|\S+?(?:\.ss[mt]\.txz|\.ssp)$/ require_relative 'remote' # remote.rb #check pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.txz|\.ssp)$/ - SiSU_Remote::Remote_download.new(fns).pod.name + SiSU_Remote::RemoteDownload.new(fns).pod.name else re_p=/(\S+?\.ss[mt](?:\.txz)?)$/ re_p.match(fns).captures.join @@ -145,7 +145,7 @@ module SiSU elsif fns =~ /sisupod(?:\.zip)?|\S+?(?:\.ss[mt]\.zip|\.ssp)$/ require_relative 'remote' # remote.rb #check pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.zip|\.ssp)$/ - SiSU_Remote::Remote_download.new(fns).pod.name + SiSU_Remote::RemoteDownload.new(fns).pod.name else re_p=/(\S+?\.ss[mt](?:\.zip)?)$/ re_p.match(fns).captures.join @@ -171,7 +171,7 @@ module SiSU @@pwd=@opt.pth end Dir.chdir(@opt.pth) #watch - env=SiSU_Env::Info_env.new(fns) + env=SiSU_Env::InfoEnv.new(fns) if @req !~/(?:urls|remote)$/ if @opt.cmd.inspect =~/-P/\ and @req =~ /^po4a$/ @@ -338,7 +338,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ class Processing require 'fileutils' include FileUtils - @@env=SiSU_Env::Info_env.new + @@env=SiSU_Env::InfoEnv.new attr_accessor :op def initialize(opt) @opt=opt @@ -362,7 +362,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX - flag=SiSU_Env::Info_processing_flag.new + flag=SiSU_Env::InfoProcessingFlag.new if @opt.cmd =~/[vVM]/ #% version information if @opt.cmd =~/V/ \ and @opt.files.empty? #% environment @@ -470,7 +470,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ SiSU_Remote::Get.new(@opt,@get_p).sisupod end rescue - SiSU_Errors::Info_error.new($!,$@,@opt,@fns).error #ok + SiSU_Errors::InfoError.new($!,$@,@opt,@fns).error #ok @retry_count +=1 retry unless @retry_count > 1 ensure @@ -593,10 +593,10 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end elsif @opt.mod.inspect =~/--query/ require_relative 'sst_identify_markup' # sst_identify_markup.rb - puts SiSU_Markup::Markup_history.new(@opt).query + puts SiSU_Markup::MarkupHistory.new(@opt).query elsif @opt.mod.inspect =~/--identify/ require_relative 'sst_identify_markup' # sst_identify_markup.rb - markup_version=SiSU_Markup::Markup_identify.new(@opt).markup_version? + markup_version=SiSU_Markup::MarkupIdentify.new(@opt).markup_version? elsif @opt.mod.inspect =~/--about/ #% help instructions if @opt.mod.inspect =~/--about/ \ and not @opt.what.empty? -- cgit v1.2.3