aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/urls.rb
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2009-07-04 11:57:29 -0400
committerRalph Amissah <ralph@amissah.com>2009-07-04 11:57:29 -0400
commit7372f56054259457f77c64cbdb34e736531cfc0e (patch)
treee46b3ff01bd379cfb476dc8333b397765aef9681 /lib/sisu/v0/urls.rb
parentchangelog, update (diff)
move lib to version 1 directory, (lib/sisu/v1) and make related changes
Diffstat (limited to 'lib/sisu/v0/urls.rb')
-rw-r--r--lib/sisu/v0/urls.rb284
1 files changed, 0 insertions, 284 deletions
diff --git a/lib/sisu/v0/urls.rb b/lib/sisu/v0/urls.rb
deleted file mode 100644
index ea090253..00000000
--- a/lib/sisu/v0/urls.rb
+++ /dev/null
@@ -1,284 +0,0 @@
-# coding: utf-8
-=begin
-
- * Name: SiSU
-
- * Description: a framework for document structuring, publishing and search
-
- * Author: Ralph Amissah
-
- * Copyright: (C) 1997 - 2009 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.jus.uio.no/sisu/gpl.fsf/toc.html>
- <http://www.jus.uio.no/sisu/gpl.fsf/doc.html>
- <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt>
-
- * 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.jus.uio.no/sisu/SiSU/download.html>
-
- * Ralph Amissah
- <ralph@amissah.com>
- <ralph.amissah@gmail.com>
-
- ** Description: urls for output files
-
-=end
-module SiSU_urls
- require "#{SiSU_lib}/particulars"
- include SiSU_Particulars
- require "#{SiSU_lib}/sysenv"
- include SiSU_Env
- include SiSU_Screen
- class Source
- attr_reader :opt
- def initialize(opt)
- @opt=opt
- end
- def read
- begin
- SiSU_urls::Output_urls.new(@opt).songsheet if @opt.fnb #fnb[/.+?\.(?:[_-]?sst|ssm)$/]
- rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd).error
- ensure
- end
- end
- end
- class Output_urls
- attr_reader :fns,:fnb,:cmd,:dir,:m_regular,:u
- def initialize(opt)
- @opt=opt
- @particulars=SiSU_Particulars::Combined_singleton.instance.get_env_md(opt)
- fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns)
- @cmd=@opt.cmd
- @md=@particulars.md
- @env=@particulars.env
- @fnb=@env.fnb
- fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns)
- @fnl=@env.i18n.lang_filename(fn_set_lang[:c])
- @fn=SiSU_Env::Env_call.new(@opt.fns).lang(fn_set_lang[:c])
- @m_regular=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/
- @path=SiSU_Env::Info_env.new(@opt.fns)
- @webserv_url=@path.url.output_tell
- @tool=@env.program.text_editor
- @editor=@env.program.text_editor
- @browser=@env.program.web_browser
- @console_browser=@env.program.console_web_browser
- @pdf_viewer=@env.program.pdf_viewer
- @odf_viewer=@env.program.odf_viewer
- @manpage_gen=@env.program.manpage_generator
- source=if @opt.fns =~/\.sst$/; @opt.fns
- elsif @opt.fns =~/\.ssm\.sst/; "#@fnb.ssm.sst"
- else 'not recognised file'
- end
- @u ||= {
- 'a (Plain-text (footnotes))'=>@fn[:plain],
- 'A (Plain-text (footnotes) dos)'=>@fn[:plain],
- 'b (XHTML)'=>@fn[:xhtml],
- #'B (Docbook XML)'=>@fn[:docbook],
- 'D[iu] (DBI import/update postgresql)'=>'dbi psql',
- 'd[iu] (DBI import/update sqlite)'=>'dbi sqlite3',
- 'e (Plain-text (endnotes))'=>@fn[:plain],
- 'E (Plain-text (endnotes) dos)'=>@fn[:plain],
- 'h (HTML segmented)'=>@fn[:toc],
- 'H (HTML segmented)'=>@fn[:toc],
- 'h (HTML scroll)'=>@fn[:doc],
- 'H (HTML scroll)'=>@fn[:doc],
- 'I (Info file)'=>'info',
- 'i (manpage)'=>'manpage',
- 'm (Document Abstraction)'=>'dal',
- 'N (Digests md5/sha256)'=>@fn[:digest],
- 'o (ODF:ODT - Open Document)'=>@fn[:odf],
- 'p (PDF landscape)'=>@fn[:pdf_l],
- 'p (PDF portrait)'=>@fn[:pdf_p],
- 'P[iu] (DB postgresql import/update)'=>'psql',
- 's (sisu markup)'=>source,
- 'S (sisupod)'=>@fn[:sisupod],
- 'x (XML sax type)'=>@fn[:sax],
- 'X (XML dom type)'=>@fn[:dom],
- 'y (Manifest, html)'=>@fn[:manifest],
- 'Y (Sitemap, xml)'=>@fn[:sitemap],
- 'w (Concordance, html)'=>@fn[:concordance],
- }.sort {|a,b| a[0].downcase<=>b[0].downcase}
- end
- def songsheet
- begin
- urls_all if @opt.cmd=~/U/
- urls_select if @opt.cmd=~/[uvVM]/
- rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error
- ensure
- end
- end
- def urls_maintenance(opt,x,y)
- if x=~/^([abchHmNopwxXy])/ \
- and opt.cmd =~/[abchHmNopwxXy]/ \
- and x=~/^[#{opt.cmd}]/
- m=$1
- f=y
- tool=@editor
- if x =~/^m/ \
- and @opt.cmd=~/m/ \
- and x=~/^[#{opt.cmd}]/ \
- and @opt.cmd =~/M/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@editor #{@env.path.dal}/#{@opt.fns}.meta")
- tell.maintenance unless @opt.cmd =~/q/
- end
- if x=~/^([hHw])/ \
- and @opt.cmd=~/[hHw]/ \
- and x=~/^[#{@opt.cmd}]/
- f=if x !~/segmented/; "#{y}.html"
- else "#{y}.index.html"
- end
- end
- if x=~/^p/ \
- and @opt.cmd=~/p/ \
- and x=~/^[#{@opt.cmd}]/
- tool=@pdf_viewer
- if opt.cmd =~/M/
- fns=@opt.fns.gsub(/~/,'-')
- tell=if y =~/landscape/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@editor #{@env.path.tex}/#{fns}.landscape.tex")
- else SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@editor #{@env.path.tex}/#{fns}.tex")
- end
- tell.maintenance unless @opt.cmd =~/q/
- end
- end
- if x=~/^o/ \
- and @opt.cmd=~/o/ \
- and x=~/^[#{@opt.cmd}]/
- tool=@odf_viewer
- end
- #if x=~/^i/ and @opt.cmd=~/i/ and x=~/^[#{@opt.cmd}]/
- #
- #end
- if x !~/^m/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#{tool} #{@env.path.output}/#@fnb/#{y}")
- tell.maintenance unless @opt.cmd =~/q/
- end
- @opt.cmd.gsub!(/#{m}/,'')
- end
- end
- def urls_select
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"URLs")
- tell.grey_title_hi unless @opt.cmd =~/q/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.path.output}/#@fnb")
- tell.flow unless @opt.cmd =~/q/
- m=/.+\/(?:src\/)?(\S+)/im # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m
- @pwd_stub="#@webserv_url"[m,1]
- @u.each do |x,y|
- if @opt.fns =~ @m_regular
- if x=~/^([abchHNopwxXyY])/ \
- and @opt.cmd=~/[abchHNopwxXyY]/ \
- and x=~/^[#{@opt.cmd}]/
- m=$1
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@browser #@webserv_url/#@fnb/#{y}")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/#{m}/,'')
- end
- if x=~/^I/ \
- and @opt.cmd =~/I/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","cd #{@path.path.texinfo}; pinfo ./#@fnb.#{y}; cd -")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/I/,'')
- end
- if x=~/^D/ \
- and @opt.cmd =~/D/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} DBI psql","#@pwd_stub::#{@opt.fns}",y)
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/D[iu]/,'')
- end
- if x=~/^d/ \
- and @opt.cmd =~/d/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} DBI sqlite","sqlite3 #{@env.path.output}/sisu_sqlite.db", "#{y}")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/d[iu]/,'')
- end
- if x=~/^i/ \
- and @opt.cmd =~/i/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@manpage_gen #{@path.path.manpage}/#@fnb.1 |most")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/I/,'')
- end
- if x=~/^P/ \
- and @opt.cmd =~/P/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} Psql","#@pwd_stub::#{@opt.fns}",y)
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/P[iu]/,'')
- end
- if x=~/^s/ \
- and @opt.cmd =~/s/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@browser #@webserv_url/src/#{y}")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/I/,'')
- end
- if x=~/^S/ \
- and @opt.cmd =~/[sS]/
- zipfile=if @opt.fns =~/\.ssm\.sst$/; y.gsub(/(?:\~\S{2,3})?(\.ssm\.sst\.zip)$/,'.ssm.zip')
- else y.gsub(/(?:\~\S{2,3})?(\.sst\.zip)$/,'\1')
- end
- tell=SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@browser #@webserv_url/pod/#{y}")
- tell.result unless @opt.cmd =~/q/
- @opt.cmd.gsub!(/I/,'')
- end
- urls_maintenance(@opt,x,y) if @opt.cmd =~/[MV]/
- end
- end
- end
- def urls_all
- tell=SiSU_Screen::Ansi.new(@opt.cmd,'URLs')
- tell.grey_title_hi unless @opt.cmd =~/q/
- tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.path.output}/#@fnb")
- tell.flow unless @opt.cmd =~/q/
- @u.each do |x,y|
- tell=case x
- when /^m/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#{@env.program.text_editor} ~#{y}/#@fnb.#{y}")
- when /^[abBcdhNopswxXy]/
- tellx=SiSU_Screen::Ansi.new(@opt.cmd,"-p (LaTeX)","#{@env.program.text_editor} ~work/tex_rz/#@fnb.tex") if y=~/landscape/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@browser #@webserv_url/#@fnb/#{y}")
- when /^Y/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@browser #@webserv_url/sitemap/#{y}")
- when /^I/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","cd #{@path.path.texinfo}; pinfo ./#@fnb.#{y}; cd -")
- when /^i/
- SiSU_Screen::Ansi.new(@opt.cmd,"-#{x}","#@manpage_gen #{@path.path.manpage}/#@fnb.1 |most")
- end
- tellx.result if tellx
- tell.result if tell
- tellx=nil
- end
- end
- end
-end
-__END__