aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v6/sysenv.rb
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2014-07-22 21:56:23 -0400
committerRalph Amissah <ralph@amissah.com>2014-07-22 21:56:23 -0400
commit162c6f42bfbbdd4c8c4153bfe6781e83b768326f (patch)
tree5dbc8a659fba4b1e902501f7f26fcd6b69d6c2dd /lib/sisu/v6/sysenv.rb
parentdebian/changelog (5.5.1-1) (diff)
parentdocumentation related (diff)
Merge tag 'sisu_5.5.2' into debian/sid
SiSU 5.5.2
Diffstat (limited to 'lib/sisu/v6/sysenv.rb')
-rw-r--r--lib/sisu/v6/sysenv.rb7180
1 files changed, 54 insertions, 7126 deletions
diff --git a/lib/sisu/v6/sysenv.rb b/lib/sisu/v6/sysenv.rb
index 72aaf2b9..26ce7cdf 100644
--- a/lib/sisu/v6/sysenv.rb
+++ b/lib/sisu/v6/sysenv.rb
@@ -61,7169 +61,98 @@
=end
@@cX=nil
-@@current_document=Dir.pwd #nil #''
-@@lang_info=nil
module SiSU_Env
- require_relative 'constants' # constants.rb
- require_relative 'utils' # utils.rb
+ require_relative 'constants' # constants.rb
+ require_relative 'utils' # utils.rb
+ require_relative 'se_date' # se_date.rb
+ require_relative 'se_info_system' # se_info_system.rb
+ require_relative 'se_load' # se_load.rb
+ require_relative 'se_get_init' # se_get_init.rb
+ require_relative 'se_envcall' # se_envcall.rb
+ require_relative 'se_programs' # se_programs.rb
+ require_relative 'se_standardise_lang' # se_standardise_lang.rb
+ require_relative 'se_info_env' # se_info_env.rb
+ require_relative 'se_processing' # se_processing.rb
+ require_relative 'se_filemap' # se_filemap.rb
+ require_relative 'se_file_op' # se_file_op.rb
+ require_relative 'se_cleanoutput' # se_cleanoutput.rb
+ require_relative 'se_remotes' # se_remotes.rb
+ require_relative 'se_version' # se_version.rb
+ require_relative 'se_db' # se_db.rb
+ require_relative 'se_css' # se_css.rb
+ require_relative 'se_clear' # se_clear.rb
+ require_relative 'se_createsite' # se_createsite.rb
+ require_relative 'se_info_port' # se_info_port.rb
begin
require 'singleton'
require 'fileutils'
include FileUtils::Verbose
rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('singleton or fileutils NOT FOUND (LoadError)')
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
+ error('singleton or fileutils NOT FOUND (LoadError)')
end
@@noyaml=false
- class InfoDate
- begin
- require 'date'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('date NOT FOUND (LoadError)')
- end
- attr_accessor :dt,:t
- def initialize
- @dt,@t=Date.today.to_s,Time.now
- end
- def week
- w=@t.strftime('%W')
- "#{@t.year}w#{w}"
- end
- def month
- "#{@t.year}#{@t.month}"
- end
- def year
- @t.year
- end
- def weekonly
- @t.strftime('%W')
- end
- def monthonly
- @t.month
- end
- def year_static
- YEAR
- end
+ class InfoDate < SiSU_Info_Date::InfoDate # se_date.rb
end
- class InfoSystemGen
- begin
- require 'rbconfig'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('rbconfig NOT FOUND (LoadError)')
- end
- @@user,@@home,@@hostname,@@pwd,@@sisu_etc,@@host,@@arch,@@rbver,@@dir_arch,@@dir_sitearch,@@dir_bin,@@locale,@@rc,@@sisurc_path,@@ad=ENV['USER'],ENV['HOME'],ENV['HOSTNAME'],ENV['PWD'],Config::CONFIG['sysconfdir'] + '/sisu',Config::CONFIG['host'],Config::CONFIG['arch'],%x{ruby -v}.strip,Config::CONFIG['archdir'],Config::CONFIG['sitearchdir'],Config::CONFIG['bindir'],%x{locale charmap}.strip,nil,nil,{} # %x{ruby -v}.strip # Config::CONFIG['rb_ver']
- out=Config::CONFIG['localstatedir']
- etc=Config::CONFIG['sysconfdir'] + '/sisu'
- share=Config::CONFIG['datadir'] + '/sisu'
- data=Config::CONFIG['datadir'] + '/doc/sisu'
- m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m
- @base_markup_dir_stub=SiSU_Utils::Path.new.base_markup_stub
- prcss_dir='_sisu_processing_' + '.' + SiSU_is[:version_dir]
- prcss_dir_tmp_root="/tmp/#{prcss_dir}"
- prcss_dir_stub="#{prcss_dir}/#{@base_markup_dir_stub}"
- if @@user
- tmp_processing="#{prcss_dir_tmp_root}/#{@@user}/#{@base_markup_dir_stub}"
- tmp_processing_individual="#{prcss_dir_tmp_root}/#{@@user}/#{@base_markup_dir_stub}"
- else #error
- tmp_processing=tmp_processing_individual="/tmp/#{prcss_dir_stub}"
- end
- processing_pth=tmp_processing_individual
- processing_dir=prcss_dir
- processing_git="#{Dir.pwd}/#{Gt[:grotto]}"
- #user=ENV['USER']
- port_pgsql=if defined? ENV['PGPORT'] \
- and not (ENV['PGPORT'].nil? \
- || ENV['PGPORT'].empty?) \
- and ENV['PGPORT']=~/^\d+$/
- ENV['PGPORT']
- else '5432'
- end
- IMAGES=:images
- SISU_ETC=:sisu_etc
- SISU_SHARE=:sisu_share
- SAMPLE_DATA_PATH=:sample_data_path
- IMAGE_STUB=:image_stub
- STYLESHEET_STUB=:stylesheet_stub
- IMAGE_LOCAL=:image_local
- WEBSERV_PATH=:webserv_path
- WEBSERV_MAN=:webserv_man
- WEBSERV_PHP=:webserv_php
- WEBSERV_CGI=:webserv_cgi
- WEBSERV_RSS=:webserv_rss
- WEBSERV_SQLITE=:webserv_sqlite
- OUTPUT_LOCAL=:output_local
- PROCESSING_DIR=:processing_dir
- PROCESSING_PATH=:processing_path
- PROCESSING_DIR_TMP_ROOT=:processing_dir_tmp_root
- PROCESSING_PATH_TMP_BASE=:processing_path_tmp_base
- PROCESSING_AO=:processing_ao
- PROCESSING_TUNE=:processing_tune
- PROCESSING_LATEX=:processing_latex
- PROCESSING_TEXINFO=:processing_texinfo
- PROCESSING_LOUT=:processing_lout
- PROCESSING_SQLITE=:processing_sqlite
- PROCESSING_POSTGRESQL=:processing_postgresql
- PROCESSING_ENCODING=:processing_encoding
- PROCESSING_GIT=:processing_git
- PAPERSIZE=:papersize
- #LANGUAGE=:language
- #LANGUAGE_CODE=:language_code
- MULTILINGUAL=:multilingual
- BUNDLE=:bundle
- CONCORD_MAX=:concord_max
- DIGEST=:digest
- WEBSERV_HOST_CGI=:webserv_host_cgi
- WEBSERV_PORT_CGI=:webserv_port_cgi
- POSTGRESQL_USER=:postgresql_user
- POSTGRESQL_PORT=:postgresql_port
- SQLITE_USER=:sqlite_user
- SQLITE_PATH=:sqlite_path
- SQLITE_PORT=:sqlite_port
- DEFAULT_DIR={
- IMAGES => '_sisu/image',
- SISU_ETC => etc,
- SISU_SHARE => share,
- SAMPLE_DATA_PATH => data,
- IMAGE_STUB => '_sisu/image',
- STYLESHEET_STUB => '_sisu/css',
- IMAGE_LOCAL => @@pwd + '/_sisu/image',
- WEBSERV_PATH => out + '/www',
- #WEBSERV_DIR => www, # uncomment for urls...
- #WEBSERV_IMAGE => out + '/www/_sisu/image',
- WEBSERV_MAN => out + '/www/man', #alter
- WEBSERV_PHP => out + '/www/php',
- WEBSERV_CGI => '/usr/lib/cgi-bin',
- WEBSERV_RSS => out + '/www/feed',
- WEBSERV_SQLITE => out + '/www/sqlite',
- OUTPUT_LOCAL => @@home + '/sisu_www',
- PROCESSING_DIR => processing_dir,
- PROCESSING_PATH => processing_pth,
- PROCESSING_DIR_TMP_ROOT => prcss_dir_tmp_root,
- PROCESSING_PATH_TMP_BASE => processing_pth,
- PROCESSING_AO => 'ao',
- PROCESSING_TUNE => 'tune',
- PROCESSING_LATEX => 'tex',
- PROCESSING_TEXINFO => 'texinfo',
- PROCESSING_SQLITE => 'sqlite',
- PROCESSING_POSTGRESQL=> 'postgresql',
- PROCESSING_ENCODING => 'encoding',
- PROCESSING_GIT => processing_git,
- #TEXINFO_STUB => 'texinfo',
- PAPERSIZE => 'A4', #A4, US_letter, book_b5, book_a5, US_legal
- #LANGUAGE => 'English',
- #LANGUAGE_CODE => 'en', #change, unecessary duplication though currently used
- MULTILINGUAL => false,
- BUNDLE => false,
- CONCORD_MAX => 260000,
- DIGEST => :sha256,
- WEBSERV_HOST_CGI => 'http://localhost',
- WEBSERV_PORT_CGI => 8081, #8111,8123,8081
- POSTGRESQL_USER => @@user, #'ralph', # change user !!!
- POSTGRESQL_PORT => port_pgsql,
- #POSGRESQL_LINKS_PATH => '',
- SQLITE_USER => @@user,
- SQLITE_PATH => @@user, #??
- SQLITE_PORT => '**',
- }
- @@default_dir=DEFAULT_DIR
- m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m
- @@pwd=@pwd=SiSU_Utils::Path.new.base_markup
- attr_accessor :user,:home,:hostname,:pwd,:host,:arch,:rbver,:dir_arch,:dir_sitearch,:dir_bin,:locale,:webserv_path,:webserv_host_cgi,:webserv_port_cgi,:default_dir,:rc_path,:ad_path
- def initialize
- @user,@home,@hostname,@pwd,@sisu_etc,@host,@arch,@rbver,@dir_arch,@dir_sitearch,@dir_bin,@locale,@default_dir=\
- @@user,@@home,@@hostname,@@pwd,@@sisu_etc,@@host,@@arch,@@rbver,@@dir_arch,@@dir_sitearch,@@dir_bin,@@locale,@@default_dir
- #note rbver is duplicated in InfoVersion
- end
+ class InfoSystemGen < SiSU_Info_Sys_Gen::InfoSystemGen # se_info_system.rb
end
- class InfoSystem < InfoSystemGen
- include Singleton
- def initialize
- super()
- end
+ class InfoSystem < SiSU_Info_Sys::InfoSystem # se_info_system.rb
end
- class Load
- def initialize(prog,mandatory=false)
- @prog,@mandatory=prog,mandatory
- end
- def prog
- load_prog=false
- $:.each do |reqpath|
- if FileTest.exist?("#{reqpath}/#{@prog}.rb")
- load_prog=true
- #SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).ok("#{reqpath}/#{@prog}.rb loaded")
- break
- #else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{reqpath}/#{@prog}.rb not found")
- end
- end
- if load_prog \
- and @prog=~/dbi/
- begin
- require 'dbi'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('dbi NOT FOUND (LoadError)')
- end
- end
- if load_prog
- begin
- require @prog
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error("#{@prog} NOT FOUND (LoadError)")
- end
- else
- @mandatory \
- ? (SiSU_Screen::Ansi.new(@prog,"*WARN* module required: #{@prog}").warn)
- : '' #(SiSU_Screen::Ansi.new(@prog,"*WARN* #{@prog} load requested").warn)
- end
- load_prog
- end
- def prog?
- load_prog=false
- $:.each do |reqpath|
- if FileTest.exist?("#{reqpath}/#{@prog}.rb"); load_prog=true
- break
- end
- end
- load_prog
- end
+ class Load < SiSU_Load::Load # se_load.rb
end
- class GetInit < InfoSystemGen
- @@noyaml=false
- @@rc,@@sisu_doc_makefile,@@sisurc_path,@@tx=nil,nil,nil,nil
- @@ad={ promo: nil, promo_list: nil, flag_promo: false }
- @@sdmd=nil
- attr_accessor :yaml
- def initialize
- super()
- @markup_dir_changed_=if @@sdmd==$sisu_document_markup_directory
- false
- else
- @@sdmd=$sisu_document_markup_directory
- true
- end
- end
- def tex
- @@tx ||=SiSU_Viz::TeX.new
- end
- def rc_path_options
- [
- "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/#{SiSU_is[:version_dir]}",
- "#{$sisu_document_markup_directory_base_fixed_path}/.sisu",
- "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/#{SiSU_is[:version_dir]}",
- "#{$sisu_document_markup_directory_base_fixed_path}/_sisu",
- "#{@@home}/.sisu/#{SiSU_is[:version_dir]}",
- "#{@@home}/.sisu",
- "#{@@sisu_etc}/#{SiSU_is[:version_dir]}",
- "#{@@sisu_etc}",
- ]
- end
- def sisu_document_make
- def makefile_name
- S_CONF[:header_make]
- end
- def makefile
- rc_path_options.each do |v|
- if FileTest.exist?("#{v}/#{makefile_name}")
- @sisu_make_path=v
- break
- end
- end
- @sisu_make_file_path=@sisu_make_path \
- ? "#{@sisu_make_path}/#{makefile_name}"
- : nil
- end
- def makefile_read
- if makefile
- sisu_doc_makefile=IO.read(makefile, mode: 'r:utf-8')
- @sisu_doc_makefile=sisu_doc_makefile.split(/\s*\n\s*\n/m)
- end
- @sisu_doc_makefile
- end
- self
- end
- def sisu_yaml
- def rc
- if @markup_dir_changed_
- rc_path_options.each do |v|
- if @@noyaml \
- or FileTest.exist?("#{v}/noyaml")
- STDERR.puts "WARNING - YAML loading switched off, to enable delete the file:\n\t#{v}/noyaml\n\n" unless @@noyaml
- @@noyaml=true
- break
- else
- f=S_CONF[:rc_yml]
- p_f="#{v}/#{f}"
- if FileTest.exist?(p_f)
- begin
- require 'yaml'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('yaml NOT FOUND (LoadError)')
- end
- @@sisurc_path=v
- @@rc=YAML::load(File::open(p_f))
- break
- end
- unless @@rc
- f='sisurc.yaml'
- p_f="#{v}/#{f}"
- if FileTest.exist?(p_f)
- begin
- require 'yaml'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('yaml NOT FOUND (LoadError)')
- end
- @@sisurc_path=v
- @@rc=YAML::load(File::open(p_f))
- break
- end
- end
- end
- end
- end
- @@rc
- end
- def rc_path
- rc
- @@sisurc_path
- end
- self
- end
- def ads #WORK AREA
- tell_no_yaml='WARNING - YAML loading switched off, to enable delete the file:'
- if @markup_dir_changed_
- @ad_path=[
- "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/#{SiSU_is[:version_dir]}/skin/yml",
- "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/skin/yml",
- "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/#{SiSU_is[:version_dir]}/skin/yml",
- "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/skin/yml",
- "#{@@home}/.sisu/#{SiSU_is[:version_dir]}/skin/yml",
- "#{@@home}/.sisu/skin/yml",
- "#{@@sisu_etc}/#{SiSU_is[:version_dir]}/skin/yml",
- "#{@@sisu_etc}/skin/yml",
- ]
- @ad_path.each do |v|
- if @@noyaml \
- or FileTest.exist?("#{v}/noyaml")
- puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml
- @@noyaml=true
- break
- else
- if FileTest.exist?("#{v}/list.yml")
- unless @@ad[:promo_list]
- begin
- require 'yaml'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('yaml NOT FOUND (LoadError)')
- end
- @@ad[:promo_list] ||= YAML::load(File::open("#{v}/list.yml"))
- end
- @@ad[:flag_promo]=true
- break
- end
- @@ad[:flag_promo]=false
- end
- end
- @ad_path.each do |v|
- if @@noyaml \
- or FileTest.exist?("#{v}/noyaml")
- puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml
- @@noyaml=true
- break
- else
- if FileTest.exist?("#{v}/promo.yml")
- unless @@ad[:promo]
- begin
- require 'yaml'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('yaml NOT FOUND (LoadError)')
- end
- @@ad[:promo] ||= YAML::load(File::open("#{v}/promo.yml"))
- end
- @@ad[:flag_promo]=true
- break
- end
- @@ad[:flag_promo]=false
- end
- end
- end
- @@ad
- end
+ class GetInit < SiSU_Get_Init::GetInit # se_get_init.rb
end
- class EnvCall
- @@rc,@@fns,@@fnn,@@fnb,@@fnt,@@flv,@@fnz=nil,nil,nil,nil,nil,nil,nil
- @@ad={}
- attr_accessor :rc,:fnn,:fnb,:fnt,:fnv,:fnz,:ad
- def initialize(fns='')
- @fns=fns
- @sys=InfoSystem.instance
- get_init=SiSU_Env::GetInit.new
- @rc=get_init.sisu_yaml.rc
- @ad=get_init.ads
- if @fns \
- and @fns != '' \
- and @fns !=@@fns
- @@fns,@@fnn,@@fnb,@@fnt,@@flv,@@fnz=@fns,nil,nil,nil,nil,nil
- end
- if @fns \
- and @fns != '' #watch
- m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm|ssi)$/
- @@fnn ||=@fns[m,1]
- @@fnb ||=@fns[m,2]
- @@fnt ||=@fns[m,3]
- @@flv ||=document_language_versions_found[:f]
- unless @@fns =~/\S+?\.txz/
- @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; @@fnb + '.ssm.txz'
- elsif @@fnb; @@fnb + '.sst.txz'
- else '' # e.g. termsheet
- end
- end
- end
- @fnn,@fnb,@fnt,@flv,@fnz=@@fnn,@@fnb,@@fnt,@@flv,@@fnz
- end
- def default_language?
- if @rc \
- && defined? @rc['language_default']
- if (@rc['language_default'].is_a?(String)) \
- && (@rc['language_default'] =~/#{Px[:lng_lst_rgx]}/)
- @rc['language_default']
- else 'en'
- end
- else 'en'
- end
- end
- def mono_multi_lingual?
- if @rc \
- && defined? @rc['lingual']
- if (@rc['lingual'].is_a?(String)) \
- && (@rc['lingual'] =~/mono(?:lingual)?/)
- :mono
- elsif (@rc['lingual'].is_a?(String)) \
- && (@rc['lingual'] =~/multi(?:lingual)?/)
- :multi
- else :multi
- end
- else :multi
- end
- end
- def output_dir_structure
- def by?
- output_structure=:filename #set default output structure
- if @rc \
- && defined? @rc['output_dir_structure_by']
- output_structure=if (@rc['output_dir_structure_by'] =~/dump/) \
- or ((defined? @rc['output_structure']['dump']) \
- && @rc['output_structure']['dump'] ==true)
- :dump
- elsif (@rc['output_dir_structure_by'] =~/redirect/) \
- or ((defined? @rc['output_structure']['redirect']) \
- && @rc['output_structure']['redirect'] ==true)
- :redirect
- elsif (@rc['output_dir_structure_by'] =~/language/) \
- or ((defined? @rc['output_structure']['by_language']) \
- && @rc['output_structure']['by_language'] ==true)
- :language
- elsif (@rc['output_dir_structure_by'] =~/filetype/) \
- or ((defined? @rc['output_structure']['by_filetype']) \
- && @rc['output_structure']['by_filetype'] ==true)
- :filetype
- elsif (@rc['output_dir_structure_by'] =~/filename/) \
- or ((defined? @rc['output_structure']['by_filename']) \
- && @rc['output_structure']['by_filename'] ==true)
- :filename
- else #set default
- :language
- end
- else #set default
- :language
- end
- end
- def dump?
- ((by?) ==:dump) \
- ? true
- : false
- end
- def redirect?
- ((by?) ==:redirect) \
- ? true
- : false
- end
- def by_language_code?
- ((by?) ==:language) \
- ? true
- : false
- end
- def by_filetype?
- ((by?) ==:filetype) \
- ? true
- : false
- end
- def by_filename?
- ((by?) ==:filename) \
- ? true
- : false
- end
- def multilingual?
- by_language_code?
- end
- self
- end
- def document_language_versions_found #REVISIT
- @fn={}
- filename=(@fns =~/\.ssm\.sst$/) \
- ? @fns.gsub(/\.ssm\.sst$/,'.ssm')
- : @fns
- if filename.is_a?(String) \
- and not filename.empty?
- if output_dir_structure.by_language_code?
- m=/((.+?)(?:\~\w{2,3})?)\.(sst|ssm)$/
- @fn[:b],@fn[:m],@fn[:t]=filename[m,1],filename[m,2],filename[m,3]
- else m=/(.+?)\.(sst|ssm)$/
- @fn[:b]=@fn[:m]=filename[m,1]
- @fn[:t]=filename[m,2]
- end
- end
- lng_base=SiSU_Env::InfoEnv.new.language_default_set
- lang=SiSU_Env::StandardiseLanguage.new
- langs=lang.codes
- x=[]
- if FileTest.file?("#{@fn[:m]}.#{@fn[:t]}")
- n=@fn[:m].gsub(/^.+?\//,'')
- n =n + '.' + @fn[:t]
- x << { f: "#{@fn[:m]}.#{@fn[:t]}", l: lng_base, n: n }
- end
- langs.each do |l|
- lng=SiSU_Env::StandardiseLanguage.new(l)
- if FileTest.file?("#{@fn[:m]}~#{lng.code}.#{@fn[:t]}")
- x << { f: "#{@fn[:m]}~#{lng.code}.#{@fn[:t]}", l: lng.code }
- elsif FileTest.file?("#{@fn[:m]}~#{lng.name}.#{@fn[:t]}")
- x << { f: "#{@fn[:m]}~#{lng.name}.#{@fn[:t]}", l: lng.code }
- end
- if FileTest.file?("#{lng.code}/#{@fn[:m]}~#{lng.code}.#{@fn[:t]}")
- if FileTest.file?("#{lng.code}/#{@fn[:m]}~#{lng.code}.#{@fn[:t]}")
- x << { f: "#{lng.code}/#{@fn[:m]}~#{lng.code}.#{@fn[:t]}", l: lng.code }
- elsif FileTest.file?("#{lng.code}/#{@fn[:m]}~#{lng.name}.#{@fn[:t]}")
- x << { f: "#{lng.code}/#{@fn[:m]}~#{lng.name}.#{@fn[:t]}", l: lng.code }
- end
- end
- if FileTest.file?("#{lng.code}/#{@fn[:m]}.#{@fn[:t]}")
- if FileTest.file?("#{lng.code}/#{@fn[:m]}.#{@fn[:t]}")
- x << { f: "#{lng.code}/#{@fn[:m]}.#{@fn[:t]}", l: lng.code }
- elsif FileTest.file?("#{lng.code}/#{@fn[:m]}.#{@fn[:t]}")
- x << { f: "#{lng.code}/#{@fn[:m]}.#{@fn[:t]}", l: lng.code }
- end
- end
- end
- @fn[:f]=x
- @fn
- end
- def published_manifests?(output_base)
- @fn={}
- @m=[]
- unless (@fns.nil? \
- or @fns.empty?)
- if output_dir_structure.by_language_code?
- m=/((.+?)(?:\~\w{2,3})?)\.((?:-|ssm\.)?sst$)/
- @fn[:b],@fn[:m],@fn[:t]=@fns[m,1],@fns[m,2],@fns[m,3]
- else m=/(.+?)\.((?:-|ssm\.)?sst$)/
- @fn[:b]=@fn[:m]=@fns[m,1]
- @fn[:t]=@fns[m,2]
- end
- end
- lang=SiSU_Env::StandardiseLanguage.new
- langs=lang.codes
- x=[]
- if FileTest.file?("#{@fn[:m]}.#{@fn[:t]}"); x << "#{@fn[:m]}.#{@fn[:t]}"
- end
- dir=SiSU_Env::InfoEnv.new(@fns)
- @m << { m: 'sisu_manifest.html', l: 'English' } #fix later, default language
- langs.each do |l|
- lng=SiSU_Env::StandardiseLanguage.new(l)
- fns_c="#{@fn[:m]}~#{lng.code}.#{@fn[:t]}"
- fns_l="#{@fn[:m]}~#{lng.name}.#{@fn[:t]}"
- if FileTest.file?(fns_c)
- fn_set_lang=SiSU_Env::StandardiseLanguage.new.file_to_language(fns_c) #reconsider file_to_language
- lng=fn_set_lang[:n]
- fn=SiSU_Env::EnvCall.new(fns_c).lang(fn_set_lang[:c])
- @m << { m: fn[:manifest], l: lng }
- elsif FileTest.file?(fns_l)
- fn_set_lang=SiSU_Env::StandardiseLanguage.new.file_to_language(fns_l) #reconsider file_to_language
- @fnl=dir.i18n.lang_filename(fn_set_lang[:c])
- fn=SiSU_Env::EnvCall.new(fns_l).lang(fn_set_lang[:c])
- @m << { m: fn[:manifest], l: lng }
- end
- end
- @m=@m.uniq
- end
- def filename(code,name,suffix)
- "#{name}#{suffix}"
- end
- def lang(code)
- {
- html: filename(code,'','.html'),
- book_index: filename(code,'book_index','.html'),
- concordance: filename(code,'concordance','.html'),
- sax: filename(code,'sax','.xml'),
- dom: filename(code,'dom','.xml'),
- docbook: filename(code,'docbook','.xml'),
- xhtml: filename(code,'scroll','.xhtml'),
- pdf_l: filename(code,'','.pdf'),
- pdf_p: filename(code,'','.pdf'),
- pdf_l_a4: filename(code,"a4",'.pdf'),
- pdf_p_a4: filename(code,"a4",'.pdf'),
- pdf_l_a5: filename(code,"a5",'.pdf'),
- pdf_p_a5: filename(code,"a5",'.pdf'),
- pdf_l_b5: filename(code,"b5",'.pdf'),
- pdf_p_b5: filename(code,"b5",'.pdf'),
- pdf_l_letter: filename(code,"letter",'.pdf'),
- pdf_p_letter: filename(code,"letter",'.pdf'),
- pdf_l_legal: filename(code,"legal",'.pdf'),
- pdf_p_legal: filename(code,"legal",'.pdf'),
- toc: filename(code,'toc','.html'),
- doc: filename(code,fnb,'.html'),
- index: filename(code,'index','.html'),
- po: filename(code,@fns,'.po'),
- pot: filename(code,@fns,'.pot'),
- odf: filename(code,'','.odt'),
- epub: filename(code,'','.epub'),
- plain: filename(code,'','.txt'),
- qrcode: filename(code,'','.jpg'),
- manpage: filename(code,'','.1'), #fix, section number
- wiki: filename(code,'wiki','.txt'),
- digest: filename(code,'digest','.txt'),
- metadata: filename(code,'metadata','.html'), #chk
- manifest: filename(code,'manifest','.html'),
- oai_pmh: filename(code,'oai_pmh','.xml'),
- sitemap: filename(code,'sitemap','.xml'),
- sitemap_touch: filename(code,"sitemap_#{fnb}",'.xml'),
- sxs: filename(code,fnb,'.sxs.xml'),
- sxd: filename(code,fnb,'.sxd.xml'),
- sxn: filename(code,fnb,'.sxn.xml'),
- sisupod: filename(nil,@fnz,''),
- book_idx_html: filename(code,'book_index','.html'),
- book_idx_epub: filename(code,'book_index','.xhtml'),
- epub_concord: filename(code,'concordance','.xhtml'),
- }
- end
+ class EnvCall < SiSU_Env_Call::EnvCall # se_envcall.rb
end
- class SystemCall
- @@locale_flag=false
- def initialize(input='',output='',opt_or_cmd='')
- @input,@output=input,output
- (opt_or_cmd.is_a?(SiSU_Commandline::Options)) \
- ? (@cmd,@opt=opt_or_cmd.cmd,opt_or_cmd)
- : (@cmd,@opt=opt_or_cmd,nil) #cmd.is_a?(String)
- @prog=SiSU_Env::InfoProgram.new
- @sys=InfoSystem.instance
- end
- def program_found?(program)
- found=`which #{program}` #`whereis #{program}`
- (found =~/bin\/#{program}\b/) ? true : false
- end
- def locale #locales utf8 or other
- unless @@locale_flag
- @@locale_flag=true
- end
- @sys.locale
- end
- def file_encoding(filename,cmd='') #file encoding
- program='file'
- fnsp=SiSU_Env::InfoEnv.new(filename).source_file_with_path
- if program_found?(program)
- encoding=%x{file -L #{fnsp}}.strip
- encoding=encoding.gsub(/#{fnsp}:(\s+|$)/,'')
- encoding=if encoding \
- and not encoding.empty?
- encoding
- else 'UTF-8 assumed, encoding undetermined'
- end
- puts encoding if cmd =~/[VM]/
- encoding
- else encoding='UTF-8 assumed, file encoding check program unavailable'
- end
- end
- def wc #word count
- program='wc'
- if program_found?(program) \
- and locale !~/utf-?8/i
- true
- else
- program_ref="(not available)" unless program_found?(program)
- program_ref="(UTF-8)" if locale =~/utf-?8/i
- false
- end
- end
- def rcs #rcs for document markup data
- program='rcs'
- program_ref="\n\t\tdocument version information requested"
- if program_found?(program); true
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def cvs #cvs for document markup data
- program='cvs'
- program_ref="\n\t\tdocument version information requested"
- if program_found?(program); true
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def zip #zip
- program='zip'
- program_ref="\n\t\tused to in the making of number of file formats, odf, epub"
- if program_found?(program); true
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).mark("*WARN* #{program} is not installed #{program_ref}")
- false
- end
- end
- def openssl #openssl for digests
- program='openssl'
- program_ref="\n\t\tused to generate requested source document identification digest"
- if program_found?(program); true
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def md5(filename) #md5 dgst
- program='openssl'
- program_ref="\n\t\tmd5 digest requested"
- if program_found?(program)
- pwd=Dir.pwd
- Dir.chdir(File.dirname(filename))
- dgst=%x{openssl dgst -md5 #{File.basename(filename)}}.strip #use file name without file path
- Dir.chdir(pwd)
- dgst.scan(/\S+/)
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def sha256(filename) #sha dgst
- program='openssl'
- program_ref="\n\t\tsha digest requested"
- if program_found?(program)
- pwd=Dir.pwd
- Dir.chdir(File.dirname(filename))
- dgst=%x{openssl dgst -sha256 #{File.basename(filename)}}.strip #use file name without file path
- Dir.chdir(pwd)
- dgst.scan(/\S+/)
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def sha512(filename) #sha dgst
- program='openssl'
- program_ref="\n\t\tsha digest requested"
- if program_found?(program)
- pwd=Dir.pwd
- Dir.chdir(File.dirname(filename))
- dgst=%x{openssl dgst -sha512 #{File.basename(filename)}}.strip #use file name without file path
- Dir.chdir(pwd)
- dgst.scan(/\S+/)
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def psql #psql
- program='psql'
- program_ref="\n\t\tpsql requested"
- if program_found?(program); true
- else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn("#{program} is not installed #{program_ref}")
- false
- end
- end
- def create_pg_db(dbname_stub=nil) #createdb
- unless dbname_stub
- @pwd ||=Dir.pwd
- m=/.+\/(?:src\/)?(\S+)/im # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m
- dbname_stub=@pwd[m,1]
- end
- program='createdb'
- db_name="#{Db[:name_prefix]}#{dbname_stub}"
- program_ref="\n\t\tcreatedb dbname #{db_name} #for postgresql database creation"
- (program_found?(program)) \
- ? system("#{program} #{dbname_name}")
- : (STDERR.puts "\t*WARN* #{program} is not available #{program_ref}")
- end
- def relaxng(cmd='') #trang - convert between different schema languages for XML
- program='trang'
- program_ref="\n\t\tsee <http://www.thaiopensource.com/relaxng/trang.html>"
- (program_found?(program)) \
- ? system("#{program} #{@input} #{@output}")
- : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" if cmd =~/V/)
- end
- def qrencode #qrcode - for generating QR code
- program='qrencode'
- program_ref="\n\t\tsee <http://megaui.net/fukuchi/works/qrencode/index.en.html>"
- found=(program_found?(program)) ? true : false
- found \
- ? (system(%{
- echo "#{@input}" | #{program} -s 3 -o #{@output}
- }))
- : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" if @cmd =~/V/)
- #found
- end
- def imagemagick #imagemagick is a image manipulation program
- program='identify'
- #program_ref="\n\t\tsee <http://www.imagemagick.org/>"
- found=(program_found?(program)) ? true : false
- #STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found
- found
- end
- def graphicksmagick #graphicsmagick is a image manipulation program
- program='gm'
- #program_ref="\n\t\tsee <http://www.graphicsmagick.org/>"
- found=(program_found?(program)) ? true : false
- #STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found
- found
- end
- def well_formed? #tidy - check for well formed xml xhtml etc.
- program=@prog.tidy
- program_ref="\n\t\tsee <http://tidy.sourceforge.net/>"
- (program_found?(program)) \
- ? system("#{@prog.tidy} -xml #{@input} > #{@output}")
- : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}")
- end
- def tex2pdf_engine
- progs=['xetex','xelatex','pdflatex','pdfetex','pdftex']
- @pdfetex_flag=false
- @cmd ||=''
- @texpdf=nil
- progs.each do |program|
- if program_found?(program)
- @texpdf=program if program =~/xetex|xelatex|pdftex|pdflatex/
- @pdfetex_flag=true
- break
- end
- end
- if @pdfetex_flag==false
- @texpdf=progs.join(', ')
- end
- @texpdf
- end
- def latex2pdf(md,papersize='a4') #convert from latex to pdf
- tell=if @cmd =~/[MV]/
- ''
- elsif @cmd =~/[v]/
- %q{2>&1 | grep -v ' WARNING '}
- else %q{2>&1 | grep -v '$'}
- end
- mode='batchmode' #mode='nonstopmode'
- texpdf=tex2pdf_engine
- if @pdfetex_flag
- texpdf_cmd=case texpdf
- when /xetex/
- %{#{texpdf} -interaction=#{mode} -fmt=xelatex -papersize="#{papersize}" #{@input} #{tell}\n}
- when /xelatex/
- %{#{texpdf} -interaction=#{mode} -papersize="#{papersize}" #{@input} #{tell}\n}
- when /pdftex/
- "#{texpdf} -interaction=#{mode} -fmt=pdflatex #{@input} #{tell}\n"
- when /pdflatex/
- "#{texpdf} -interaction=#{mode} #{@input} #{tell}\n"
- end
- system(texpdf_cmd)
- else STDERR.puts "\t*WARN* none of the following programs are installed: #{@texpdf}"
- end
- end
- def makeinfo #texinfo
- program='makeinfo'
- options='' #'--force' #''
- program_ref="\n\t\tsee http://www.gnu.org/software/texinfo/"
- (program_found?(program)) \
- ? system("#{program} #{options} #{@input}\n")
- : (STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}")
- end
- def scp
- puts "scp -Cr #{@input} #{@output}" if @cmd =~/[vVM]/
- puts "scp disabled"
- end
- def rsync(action='',chdir=nil)
- program='rsync'
- if program_found?(program)
- vb=if @cmd =~/q/; 'q'
- elsif @cmd =~/v/; 'v'
- else ''
- end
- cX=SiSU_Screen::Ansi.new(@cmd).cX
- msg=(@cmd =~/q/) ? '' : %{ && echo " #{cX.grey}OK: #{@input} -> #{@output}#{cX.off}"}
- amp=(@opt \
- && @opt.files.length > 1) \
- ? ''
- : ((@cmd =~/[vVM]/) ? '' : '&')
- rsync_cmd="rsync -az#{vb} #{action} #{@input} #{@output}"
- puts rsync_cmd if @cmd =~/[vVM]/
- dir_change,dir_return='',''
- if not chdir.nil? \
- && chdir != Dir.pwd
- dir_change=Dir.chdir(chdir)
- dir_return=Dir.pwd
- end
- dir_change #check
- system("
- #{rsync_cmd} #{msg} #{amp}
- ")
- dir_return
- else STDERR.puts "\t*WARN* #{program} not found"
- end
- end
- def rm
- if @cmd =~/^-Z[mMvVq]*$/; FileUtils::rm_rf(@input)
- elsif @cmd =~/V/; FileUtils::rm(@input)
- elsif @cmd !~/q/; FileUtils::rm(@input)
- elsif @cmd =~/q/; FileUtils::rm(@input)
- else STDERR.puts "\t*WARN* operation ignored"
- end
- end
+ class SystemCall < SiSU_Sys_Call::SystemCall # se_programs.rb
end
- class StandardiseLanguage
- require_relative 'i18n' # i18n.rb
- def initialize(l='')
- @language=(l.nil? || l.empty?) \
- ? SiSU_Env::InfoEnv.new.language_default_set
- : l
- @r=%{(?:#{Px[:lng_lst_rgx]})}
- @lang_info=SiSU_i18n::Languages.new
- end
- def lang_lst # from i18n
- @@lang_info ||=@lang_info.language.list
- end
- def lang(l='') # from i18n
- if l =~/^#{@r}$/
- @lang_info.language.list[l]
- elsif @language =~/^#{@r}$/
- @lang_info.language.list[@language]
- else nil
- end
- end
- def language
- lng={}
- case @language
- when /^am$|Amharic/i then d,c,l=false,lang_lst['am'][:c], lang_lst['am'][:n]
- when /^bg$|Bulgarian/i then d,c,l=false,lang_lst['bg'][:c], lang_lst['bg'][:n]
- when /^bn$|Bengali/i then d,c,l=false,lang_lst['bn'][:c], lang_lst['bn'][:n]
- when /^br$|Breton/i then d,c,l=false,lang_lst['br'][:c], lang_lst['br'][:n]
- when /^ca$|Catalan/i then d,c,l=false,lang_lst['ca'][:c], lang_lst['ca'][:n]
- when /^cs$|Czech/i then d,c,l=false,lang_lst['cs'][:c], lang_lst['cs'][:n]
- when /^cy$|Welsh/i then d,c,l=false,lang_lst['cy'][:c], lang_lst['cy'][:n]
- when /^da$|Danish|Dansk/i then d,c,l=false,lang_lst['da'][:c], lang_lst['da'][:n]
- when /^de$|German/i then d,c,l=false,lang_lst['de'][:c], lang_lst['de'][:n]
- when /^el$|Greek/i then d,c,l=false,lang_lst['el'][:c], lang_lst['el'][:n]
- when /^en$|English/i then d,c,l=false,lang_lst['en'][:c], lang_lst['en'][:n]
- when /^eo$|Esperanto/i then d,c,l=false,lang_lst['eo'][:c], lang_lst['eo'][:n]
- when /^es$|Spanish|Espanol/i then d,c,l=false,lang_lst['es'][:c], lang_lst['es'][:n]
- when /^et$|Estonian/i then d,c,l=false,lang_lst['et'][:c], lang_lst['et'][:n]
- when /^eu$|Basque/i then d,c,l=false,lang_lst['eu'][:c], lang_lst['eu'][:n]
- when /^fi$|Finnish|Finsk|Suomi/i then d,c,l=false,lang_lst['fi'][:c], lang_lst['fi'][:n]
- when /^fr$|French|Francais/i then d,c,l=false,lang_lst['fr'][:c], lang_lst['fr'][:n]
- when /^ga$|Irish/i then d,c,l=false,lang_lst['ga'][:c], lang_lst['ga'][:n]
- when /^gl$|Galician/i then d,c,l=false,lang_lst['gl'][:c], lang_lst['gl'][:n]
- when /^he$|Hebrew/i then d,c,l=false,lang_lst['he'][:c], lang_lst['he'][:n]
- when /^hi$|Hindi/i then d,c,l=false,lang_lst['hi'][:c], lang_lst['hi'][:n]
- when /^hr$|Croatian/i then d,c,l=false,lang_lst['hr'][:c], lang_lst['hr'][:n]
- when /^hy$|Armenian/i then d,c,l=false,lang_lst['hy'][:c], lang_lst['hy'][:n]
- when /^ia$|Interlingua/i then d,c,l=false,lang_lst['ia'][:c], lang_lst['ia'][:n]
- when /^is$|Icelandic/i then d,c,l=false,lang_lst['is'][:c], lang_lst['is'][:n]
- when /^it$|Italian/i then d,c,l=false,lang_lst['it'][:c], lang_lst['it'][:n]
- when /^la$|Latin/i then d,c,l=false,lang_lst['la'][:c], lang_lst['la'][:n]
- when /^lo$|Lao/i then d,c,l=false,lang_lst['lo'][:c], lang_lst['lo'][:n]
- when /^lt$|Lithuanian/i then d,c,l=false,lang_lst['lt'][:c], lang_lst['lt'][:n]
- when /^lv$|Latvian/i then d,c,l=false,lang_lst['lv'][:c], lang_lst['lv'][:n]
- when /^ml$|Malayalam/i then d,c,l=false,lang_lst['ml'][:c], lang_lst['ml'][:n]
- when /^mr$|Marathi/i then d,c,l=false,lang_lst['mr'][:c], lang_lst['mr'][:n]
- when /^nl$|Dutch/i then d,c,l=false,lang_lst['nl'][:c], lang_lst['nl'][:n]
- when /^no$|Norwegian|Norsk/i then d,c,l=false,lang_lst['no'][:c], lang_lst['no'][:n]
- when /^nn$|Norwegian Nynorsk/i then d,c,l=false,lang_lst['nn'][:c], lang_lst['nn'][:n]
- when /^oc$|Occitan/i then d,c,l=false,lang_lst['oc'][:c], lang_lst['oc'][:n]
- when /^pl$|Polish/i then d,c,l=false,lang_lst['pl'][:c], lang_lst['pl'][:n]
- when /^pt$|Portuguese/i then d,c,l=false,lang_lst['pt'][:c], lang_lst['pt'][:n]
- when /^pt_BR$|Portuguese Brazil/i then d,c,l=false,lang_lst['pt_BR'][:c], lang_lst['pt_BR'][:n]
- when /^ro$|Romanian/i then d,c,l=false,lang_lst['ro'][:c], lang_lst['ro'][:n]
- when /^ru$|Russian/i then d,c,l=false,lang_lst['ru'][:c], lang_lst['ru'][:n]
- when /^sa$|Sanskrit/i then d,c,l=false,lang_lst['sa'][:c], lang_lst['sa'][:n]
- when /^se$|Sami/i then d,c,l=false,lang_lst['se'][:c], lang_lst['se'][:n]
- when /^sk$|Slovak/i then d,c,l=false,lang_lst['sk'][:c], lang_lst['sk'][:n]
- when /^sl$|Slovenian/i then d,c,l=false,lang_lst['sl'][:c], lang_lst['sl'][:n]
- when /^sq$|Albanian/i then d,c,l=false,lang_lst['sq'][:c], lang_lst['sq'][:n]
- when /^sr$|Serbian/i then d,c,l=false,lang_lst['sr'][:c], lang_lst['sr'][:n]
- when /^sv$|Swedish|Svensk/i then d,c,l=false,lang_lst['sv'][:c], lang_lst['sv'][:n]
- when /^ta$|Tamil/i then d,c,l=false,lang_lst['ta'][:c], lang_lst['ta'][:n]
- when /^te$|Telugu/i then d,c,l=false,lang_lst['te'][:c], lang_lst['te'][:n]
- when /^th$|Thai/i then d,c,l=false,lang_lst['th'][:c], lang_lst['th'][:n]
- when /^tk$|Turkmen/i then d,c,l=false,lang_lst['tk'][:c], lang_lst['tk'][:n]
- when /^tr$|Turkish/i then d,c,l=false,lang_lst['tr'][:c], lang_lst['tr'][:n]
- when /^uk$|Ukranian/i then d,c,l=false,lang_lst['uk'][:c], lang_lst['uk'][:n]
- when /^ur$|Urdu/i then d,c,l=false,lang_lst['ur'][:c], lang_lst['ur'][:n]
- when /^us|American$|/i then d,c,l=false,lang_lst['en'][:c], lang_lst['en'][:n]
- when /^vi$|Vietnamese/i then d,c,l=false,lang_lst['vi'][:c], lang_lst['vi'][:n]
- else d,c,l=true, lang_lst['en'][:c], lang_lst['en'][:n] #default
- end
- lng[:d],lng[:c],lng[:n]=d,c,l
- lng
- end
- def name
- language[:n].downcase
- end
- def title
- language[:n]
- end
- def code
- language[:c]
- end
- def tex_name
- language[:xlp]
- end
- def file_to_language(file) # used, fix and remove
- m=/.+?\~(\w{2,3})\.(?:-|ssm\.)?sst$/
- @language=if file =~m ; file[m,1]
- else ''
- end
- language
- end
- def codes
- # Language List po4a
- # <http://www.debian.org/international/l10n/po/>
- # Px[:lng_lst] see constants.rb
- # see polyglossia for subset
- # <http://mirrors.ctan.org/macros/xetex/latex/polyglossia/polyglossia.pdf>
- # also note ISO_639-2
- # <http://en.wikipedia.org/wiki/ISO_639-2>
- # <http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes>
- Px[:lng_lst] # constants.rb
- end
+ class StandardiseLanguage < SiSU_Standardise_Lang::StandardiseLanguage # se_standardise_lang.rb
end
- class InfoEnv < EnvCall
- begin
- require 'pathname'
- require 'fileutils'
- include FileUtils
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('pathname or fileutils NOT FOUND (LoadError)')
- end
- attr_accessor :filename,:sys,:home,:hostname,:user,:env,:rc,:www,:fnb,:fnn,:fnt,:flv,:webserv_path,:base_markup_dir_stub,:stub_src,:webserv_host_cgi,:webserv_port_cgi,:processing,:processing_git,:etc,:yamlrc_dir
- @@image_flag,@@local_image=true,true #warning on @@image_flag
- @@fb,@@man_path=nil,nil
- def initialize(fns='',md=nil)
- super() #you may not want to re-execute this static info so frequently!
- @init=SiSU_Env::GetInit.new
- @fns,@md=fns,md
- @env=SiSU_Env::EnvCall.new(fns) if fns
- fnb=if @md \
- and defined? @md.fnb
- @md.fnb
- elsif defined? @env.fnb \
- and @env.fnb
- @env.fnb
- elsif @fns.is_a?(String) \
- and not @fns.empty?
- m=/(.+)?\.(?:(?:-|ssm\.)?sst|ssm)$/m
- @fns[m,1] if not @fns.empty?
- end
- if fnb; @@fb ||=fnb
- end
- @sys=InfoSystem.instance
- @fnb ||=@@fb #clean up this... used primarily for zap which is not passed normal parameters
- @fixed_websev_root='' # @home
- @pwd=@@pwd=Dir.pwd
- @base_markup_dir_stub=SiSU_Utils::Path.new.base_markup_stub
- @stub_src= @base_markup_dir_stub + '/src'
- @stub_pod= @base_markup_dir_stub + '/pod'
- @stub_epub= @base_markup_dir_stub + '/epub'
- pt=Pathname.new(Dir.pwd)
- stub=if output_dir_structure.by_language_code?
- r=Px[:lng_lst_rgx]
- stub=if Dir.pwd =~/.+?\/([^\/]+)(?:\/(#{r})$)/
- lng=pt.split[-1].to_s
- lng_part='/' + lng
- base=pt.split[0].split[-1].to_s
- else
- lng_part='/' + language_default_set
- base=pt.split[-1].to_s
- end
- base + lng_part
- elsif output_dir_structure.by_filetype?
- pt.split[-1].to_s
- elsif output_dir_structure.by_filename?
- ''
- else
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).warn('set output type, by: language, filetype or filename')
- end
- @stub_set_manifest=stub + '/manifest'
- end
- def user
- @sys.user
- end
- def hostname
- @sys.hostname
- end
- def host
- @sys.host
- end
- def arch
- @sys.arch
- end
- def rbver
- @sys.rbver
- end
- def locale
- @sys.locale
- end
- def concord_max
- ((defined? @rc['processing']['concord_max']) \
- && @rc['processing']['concord_max']) \
- ? @rc['processing']['concord_max']
- : (defaults[:concord_max])
- end
- def language_default_set #set directory (default) language
- ((defined? @rc['default']['language']) \
- && @rc['default']['language'] =~/\S+/) \
- ? @rc['default']['language']
- : 'en'
- end
- def markup_emphasis
- if defined? @rc['default']['emphasis'] \
- and @rc['default']['emphasis'] \
- and @rc['default']['emphasis']=~/bold/
- 'bold'
- elsif defined? @rc['default']['emphasis'] \
- and @rc['default']['emphasis'] \
- and @rc['default']['emphasis']=~/italic/
- 'italics'
- elsif defined? @rc['default']['emphasis'] \
- and @rc['default']['emphasis'] \
- and @rc['default']['emphasis']=~/underscore/
- 'underscore'
- else 'bold'
- end
- end
- def plaintext_wrap
- ((defined? @rc['default']['text_wrap']) \
- && (@rc['default']['text_wrap']) \
- && (@rc['default']['text_wrap'].to_s=~/\d\d+/) \
- && (@rc['default']['text_wrap'].to_i > 19) \
- && (@rc['default']['text_wrap'].to_i < 201)) \
- ? @rc['default']['text_wrap'].to_i
- : 78
- end
- def current_document
- @@current_document||=Dir.pwd
- @@current_document
- end
- def base_markup_dir_stub #200412
- @base_markup_dir_stub
- end
- def stub_md_harvest #watch
- @stub_set_manifest
- end
- def stub_src
- @stub_src
- end
- def stub_pod
- @stub_pod
- end
- def sisupod_v4(opt)
- #processing_path.processing
- # sisupod
- # doc/
- # manifest.txt
- # en/content.sst [file content]
- # fr/content.sst
- # _sisu
- # sisu_document_make
- # image@ (ln -s ../../image)
- # audio@ (ln -s ../../audio)
- # video@ (ln -s ../../video)
- # image/ [all images for specific document gathered here]
- # audio/
- # video/
- spp="#{processing_path.processing}/#{Gt[:sisupod]}"
- sppc="#{spp}/doc/_sisu"
- lng_dirs=[]
- if FileTest.directory?(spp) \
- or FileTest.file?(spp)
- FileUtils::rm_rf(spp)
- end
- paths=[]
- flv=SiSU_Env::EnvCall.new(opt.fns).document_language_versions_found
- flv[:f].each {|l| lng_dirs << l[:l] }
- lng_dirs.uniq.each do |lng|
- paths << "#{spp}/doc/#{lng}"
- end
- paths \
- << "#{spp}/image"
- #<< "#{spp}/audio" \
- #<< "#{spp}/video" \
- paths.each do |x|
- unless FileTest.directory?(x)
- FileUtils::mkdir_p(x)
- end
- end
- if FileTest.directory?(sppc)
- pwd=Dir.pwd
- Dir.chdir(sppc)
- FileUtils::ln_s('../../image', 'image')
- #FileUtils::ln_s('../../audio', 'audio')
- #FileUtils::ln_s('../../video', 'video')
- Dir.chdir(pwd)
- end
- end
- def sisupod_v3(opt)
- #processing_path.processing
- # sisupod
- # doc/
- # manifest.txt
- # en/content.sst [file content]
- # fr/content.sst
- # _sisu
- # skin/
- # doc [relevant skin if any other than default]
- # image@ (ln -s ../../image)
- # audio@ (ln -s ../../audio)
- # video@ (ln -s ../../video)
- # image/ [all images for specific document gathered here]
- # audio/
- # video/
- spp="#{processing_path.processing}/#{Gt[:sisupod]}"
- sppc="#{spp}/doc/_sisu"
- lng_dirs=[]
- if FileTest.directory?(spp) \
- or FileTest.file?(spp)
- FileUtils::rm_rf(spp)
- end
- paths=[]
- flv=SiSU_Env::EnvCall.new(opt.fns).document_language_versions_found
- flv[:f].each {|l| lng_dirs << l[:l] }
- lng_dirs.uniq.each do |lng|
- paths << "#{spp}/doc/#{lng}"
- end
- paths \
- << "#{spp}/image" \
- << "#{sppc}/skin/doc" \
- << "#{sppc}/skin/dir" \
- << "#{sppc}/skin/site"
- #<< "#{spp}/audio" \
- #<< "#{spp}/video" \
- paths.each do |x|
- unless FileTest.directory?(x)
- FileUtils::mkdir_p(x)
- end
- end
- if FileTest.directory?(sppc)
- pwd=Dir.pwd
- Dir.chdir(sppc)
- FileUtils::ln_s('../../image', 'image')
- #FileUtils::ln_s('../../audio', 'audio')
- #FileUtils::ln_s('../../video', 'video')
- Dir.chdir(pwd)
- end
- end
- def sisupod_v2
- #processing_path.processing
- # sisupod
- # content.sst [file content]
- # filename.sst [link to content.sst]
- # _sisu
- # skin/
- # doc [relevant skin if any other than default]
- # image [all images for specific document gathered here]
- sisupod_processing_path="#{processing_path.processing}/#{Gt[:sisupod]}"
- if FileTest.directory?(sisupod_processing_path) \
- or FileTest.file?(sisupod_processing_path)
- FileUtils::rm_rf(sisupod_processing_path)
- end
- paths=[]
- paths=[
- "#{processing_path.processing}/#{Gt[:sisupod]}/_sisu/skin/doc",
- "#{processing_path.processing}/#{Gt[:sisupod]}/_sisu/skin/dir",
- "#{processing_path.processing}/#{Gt[:sisupod]}/_sisu/skin/site",
- "#{processing_path.processing}/#{Gt[:sisupod]}/_sisu/image"
- ]
- paths.each {|x| FileUtils::mkdir_p(x) unless FileTest.directory?(x) }
- end
- def defaults #multiple default directories
- @default_dir ||=@sys.default_dir #DEFAULT_DIR
- end
- def html_seg_title_banner?
- ((defined? @rc['html']['seg_title_banner']) \
- && @rc['html']['seg_title_banner']==true) \
- ? @rc['html']['seg_title_banner']
- : false
- end
- def html_quick_ref?
- ((defined? @rc['html']['quick_ref']) \
- && @rc['html']['quick_ref']==true) \
- ? @rc['html']['quick_ref']
- : false
- end
- def html_minitoc?
- if defined? @rc['html']['minitoc'] \
- and @rc['html']['minitoc'].is_a?(String)
- @rc['html']['minitoc']
- else false
- end
- end
- def manifest_minitoc?
- if defined? @rc['manifest']['minitoc'] \
- and @rc['manifest']['minitoc'].is_a?(String)
- @rc['manifest']['minitoc']
- else false
- end
- end
- def build
- def omit_list
- @off_list ||=if defined? @rc['omit_list'] \
- and @rc['omit_list'].is_a?(String)
- @rc['omit_list']
- elsif defined? @rc['omit']['list'] \
- and @rc['omit']['list'].is_a?(String)
- @rc['omit']['list']
- else
- nil
- end
- end
- def listed?(test) #fix
- listed=if omit_list
- x=(omit_list.scan(/\b#{test}\b/)).join
- test==x \
- ? true
- : false
- else
- false
- end
- listed
- end
- def ocn?
- if (defined? @rc['omit']['ocn'] \
- and not @rc['omit']['ocn'].nil?) \
- or listed?('ocn')
- :off
- else
- :na
- end
- end
- def toc?
- if (defined? @rc['omit']['toc'] \
- and not @rc['omit']['toc'].nil?) \
- or listed?('toc')
- :off
- else
- :na
- end
- end
- def manifest?
- if (defined? @rc['omit']['manifest'] \
- and not @rc['omit']['manifest'].nil?) \
- or listed?('manifest')
- :off
- else
- :na
- end
- end
- def links_to_manifest?
- if (defined? @rc['omit']['links_to_manifest'] \
- and not @rc['omit']['links_to_manifest'].nil?) \
- or (listed?('links_to_manifest') \
- || listed?('manifest_links'))
- :off
- else
- :na
- end
- end
- def metadata?
- if (defined? @rc['omit']['metadata'] \
- and not @rc['omit']['metadata'].nil?) \
- or listed?('metadata')
- :off
- else
- :na
- end
- end
- def minitoc?
- if (defined? @rc['omit']['minitoc'] \
- and not @rc['omit']['minitoc'].nil?) \
- or (listed?('minitoc'))
- :off
- else
- :na
- end
- end
- def manifest_minitoc?
- if (defined? @rc['omit']['manifest_minitoc'] \
- and not @rc['omit']['manifest_minitoc'].nil?) \
- or listed?('manifest_minitoc')
- :off
- else
- :na
- end
- end
- def html_minitoc?
- if (defined? @rc['omit']['html_minitoc'] \
- and not @rc['omit']['html_minitoc'].nil?) \
- or (listed?('html_minitoc') \
- || listed?('minitoc'))
- :off
- else
- :na
- end
- end
- def html_navigation?
- if (defined? @rc['omit']['html_navigation'] \
- and not @rc['omit']['html_navigation'].nil?) \
- or listed?('html_navigation')
- :off
- else
- :na
- end
- end
- def html_navigation_bar?
- if (defined? @rc['omit']['html_navigation_bar'] \
- and not @rc['omit']['html_navigation_bar'].nil?) \
- or listed?('html_navigation_bar')
- :off
- else
- :na
- end
- end
- def segsubtoc?
- if (defined? @rc['omit']['segsubtoc'] \
- and not @rc['omit']['segsubtoc'].nil?) \
- or listed?('segsubtoc')
- :off
- else
- :na
- end
- end
- def html_right_pane?
- if (defined? @rc['omit']['html_right_pane'] \
- and not @rc['omit']['html_right_pane'].nil?) \
- or listed?('html_right_pane')
- :off
- else
- :na
- end
- end
- def html_top_band?
- if (defined? @rc['omit']['html_top_band'] \
- and not @rc['omit']['html_top_band'].nil?) \
- or listed?('html_top_band')
- :off
- else
- :na
- end
- end
- def search_form? #decide later, as is configured here (in sisurc) and can be turned off on command line
- if (defined? @rc['omit']['search_form'] \
- and not @rc['omit']['search_form'].nil?) \
- or listed?('search_form')
- :off
- else
- :na
- end
- end
- def html_search_form? #decide later, as is configured here (in sisurc) and can be turned off on command line
- if (defined? @rc['omit']['html_search_form'] \
- and not @rc['omit']['html_search_form'].nil?) \
- or listed?('html_search_form')
- :off
- else
- :na
- end
- end
- self
- end
- def odt_ocn?
- ((defined? @rc['odt']['ocn']) \
- && @rc['odt']['ocn']==false) \
- ? @rc['odt']['ocn']
- : true
- end
- def xml_docbook_ocn?
- ((defined? @rc['xml_docbook']['ocn']) \
- && @rc['xml_docbook']['ocn']==false) \
- ? @rc['xml_docbook']['ocn']
- : true
- end
- def xml_fictionbook_ocn?
- ((defined? @rc['xml_fictionbook']['ocn']) \
- && @rc['xml_fictionbook']['ocn']==false) \
- ? @rc['xml_fictionbook']['ocn']
- : true
- end
- def xml_scaffold_ocn?
- ((defined? @rc['xml_scaffold']['ocn']) \
- && @rc['xml_scaffold']['ocn']==false) \
- ? @rc['xml_scaffold']['ocn']
- : true
- end
- def plaintext_ocn?
- ((defined? @rc['plaintext']['ocn']) \
- && @rc['plaintext']['ocn']==false) \
- ? @rc['plaintext']['ocn']
- : true
- end
- def textile_ocn?
- ((defined? @rc['textile']['ocn']) \
- && @rc['textile']['ocn']==true) \
- ? @rc['textile']['ocn']
- : false
- end
- def asciidoc_ocn?
- ((defined? @rc['asciidoc']['ocn']) \
- && @rc['asciidoc']['ocn']==true) \
- ? @rc['asciidoc']['ocn']
- : false
- end
- def markdown_ocn?
- ((defined? @rc['markdown']['ocn']) \
- && @rc['markdown']['ocn']==true) \
- ? @rc['markdown']['ocn']
- : false
- end
- def rst_ocn?
- ((defined? @rc['rst']['ocn']) \
- && @rc['rst']['ocn']==true) \
- ? @rc['rst']['ocn']
- : false
- end
- def widget #needs (md) #move
- @rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- @ad=SiSU_Env::GetInit.new.ads
- @vz=SiSU_Viz::Defaults.new
- @flag={ ad: false, md: false, sk: false, rc: false }
- def promo?
- @flag[:ad]=if @md.flag_promo && @ad[:flag_promo]
- @flag[:md]=true
- true
- elsif defined? @vz.widget_promo \
- and not @vz.widget_promo.nil? \
- and @vz.widget_promo.is_a?(Array) \
- and @vz.widget_promo.length > 0
- @flag[:sk]=true
- true
- elsif defined? @rc['html']['promo'] \
- and not @rc['html']['promo'].nil? \
- and @rc['html']['promo'].length > 0
- @flag[:rc]=true
- true
- else false
- end
- @flag
- end
- def search?
- searches=['sisu']
- flag=false
- if defined? @rc['search']
- searches.each do |type|
- flag=if defined? @rc['search'][type] \
- and defined? @rc['search'][type]['action'] \
- and @rc['search'][type]['flag']==true \
- and @rc['search'][type]['action'] =~/https?:\/\//
- flag=if promo?[:ad]
- false
- elsif defined? @vz.widget_search \
- and @vz.widget_search==true
- true
- elsif defined? @rc['search'][type]['flag'] \
- and @rc['search'][type]['flag']==true
- true
- else false
- end
- else false
- end
- end
- else false
- end
- flag
- end
- def search_fixed?
- searches=['sisu','hyperestraier']
- flag=if defined? @rc['search']
- searches.each do |type|
- if defined? @rc['search'][type] \
- and defined? @rc['search'][type]['action'] \
- and @rc['search'][type]['action'] =~/https?:\/\// \
- and defined? @rc['search'][type]['db'] \
- and @rc['search'][type]['db'] =~/\S+/
- flag=if promo?[:ad]
- false
- elsif defined? @vz.widget_search \
- and @vz.widget_search==true
- true
- elsif defined? @rc['search'][type]['flag'] \
- and @rc['search'][type]['flag']==true
- true
- else false
- end
- else false
- end
- end
- else false
- end
- end
- def search_form(type='sisusearch',action=nil,db=nil,table=false)
- rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- create_form_sisu=if action \
- and db \
- and action =~/https?:\/\// \
- and db =~/\S+/
- true
- elsif widget.search?
- db=if rc['search']['sisu']['flag']==true \
- and rc['search']['sisu']['db']=~/\S+/
- (rc['search']['sisu']['db']=~/^#{Db[:name_prefix]}\S+/) \
- ? rc['search']['sisu']['db']
- : "#{Db[:name_prefix]}#{rc['search']['sisu']['db']}"
- else nil
- end
- action=rc['search']['sisu']['action']
- true
- elsif defined? rc['search']['sisu']['flag'] \
- and defined? rc['search']['sisu']['action'] \
- and rc['search']['sisu']['flag']==true \
- and rc['search']['sisu']['action'] =~/https?:\/\//
- true
- else false
- end
- if table
- table_open='<td align="center" bgcolor="#ffffff">'
- table_close='</td>'
- else
- table_open=''
- table_close='<br />'
- end
- form=if create_form_sisu \
- and type=~/sisusearch/ \
- and defined? rc['search']['sisu'] \
- and defined? rc['search']['sisu']['action']
- <<WOK
-<!-- SiSU Search -->
-#{table_open}
-<a name="search"></a>
-<form method="get" action="#{rc['search']['sisu']['action']}" target="_top">
-<font size="2">
-<input type="text" name="s1" size="24" maxlength="255" />
-<input type="hidden" name="db" value="#{db}" />
-<input type="hidden" name="ltd" value="1000" />
-<input type="hidden" name="off" value="0" />
-<input type="hidden" name="doc" value="#{@md.fnb}" /><br />
-<input type="submit" name="search" value="search doc" />
-<input type="submit" name="search" value="search db" />
-</font></form>
-#{table_close}
-<!-- SiSU Search -->
-WOK
- else ''
- end
- form
- end
- def search_form_static(action=nil,db=nil)
- rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- create_form=if rc['search']['sisu']['flag']==true \
- and action \
- and db \
- and action =~/https?:\/\// \
- and db =~/\S+/
- true
- elsif widget.search_fixed?
- db=if rc['search']['sisu']['flag']==true \
- and rc['search']['sisu']['db']=~/\S+/
- (rc['search']['sisu']['db']=~/^#{Db[:name_prefix]}\S+/) \
- ? rc['search']['sisu']['db']
- : "#{Db[:name_prefix]}#{rc['search']['sisu']['db']}"
- else nil
- end
- action=rc['search']['sisu']['action']
- true
- else false
- end
- if create_form
- %{<td align="center" bgcolor="#ffffff">
-<!-- SiSU Search -->
-<a name="search"></a>
-<form method="get" action="#{rc['search']['sisu']['action']}" target="_top">
-<font size="2">
-<input type="text" name="s1" size="24" maxlength="255" />
-<br />
-<input type="hidden" name="db" value="#{db}" />
-<input type="hidden" name="ltd" value="1000" />
-<input type="hidden" name="off" value="0" />
-<input type="hidden" name="doc" value="#{@md.fnb}" />
-<input type="submit" name="search" value="search doc" />
-<input type="submit" name="search" value="search db" />
-</font>
-</form>
-<!-- SiSU Search -->
-</td> }
- else ''
- end
- end
- def search_action #check
- if search?
- else ''
- end
- end
- self
- end
- def widget_static
- @rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- @vz=SiSU_Viz::Defaults.new
- @flag={ ad: false, md: false, sk: false, rc: false }
- def search?
- flag=if defined? @rc['search'] \
- and defined? @rc['search']['sisu'] \
- and defined? @rc['search']['sisu']['action'] \
- and @rc['search']['sisu']['action'] =~/https?:\/\// \
- and defined? @rc['search']['sisu']['db'] \
- and @rc['search']['sisu']['db'] =~/\S+/
- flag=if defined? @vz.widget_search \
- and @vz.widget_search==true
- true
- elsif defined? @rc['search']['sisu']['flag'] \
- and @rc['search']['sisu']['flag']==true
- true
- else
- false
- end
- else
- false
- end
- end
- def search_fixed?
- flag=if defined? @rc['search'] \
- and defined? @rc['search']['sisu'] \
- and defined? @rc['search']['sisu']['action'] \
- and @rc['search']['sisu']['action'] =~/https?:\/\// \
- and defined? @rc['search']['sisu']['db'] \
- and @rc['search']['sisu']['db'] =~/\S+/ \
- and defined? @rc['search']['sisu']['db'] \
- and @rc['search']['sisu']['db'] =~/\S+/
- flag=if defined? @vz.widget_search \
- and @vz.widget_search==true
- true
- elsif defined? @rc['search']['sisu']['flag'] \
- and @rc['search']['sisu']['flag']==true
- true
- else
- false
- end
- else
- false
- end
- end
- def search_form(action=nil,db=nil)
- rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- create_form=if defined? rc['search']['sisu']['flag'] \
- and rc['search']['sisu']['flag']==true \
- and action \
- and db \
- and action =~/https?:\/\// \
- and db =~/\S+/
- true
- elsif widget_static.search? \
- and rc['search']['sisu']['flag']==true
- db=if rc['search']['sisu']['db']=~/\S+/
- (rc['search']['sisu']['db']=~/^#{Db[:name_prefix]}\S+/) \
- ? rc['search']['sisu']['db']
- : "#{Db[:name_prefix]}#{rc['search']['sisu']['db']}"
- else nil
- end
- action=rc['search']['sisu']['action']
- true
- else false
- end
- if create_form \
- and @fnb \
- and @fnb=~/\S+/
- %{<!-- SiSU Search -->
-<a name="search"></a>
-<form method="get" action="#{rc['search']['sisu']['action']}" target="_top">
-<font size="2">
-<input type="text" name="s1" size="24" maxlength="255" />
-<br />
-<input type="hidden" name="db" value="#{db}" />
-<input type="hidden" name="doc" value="#{@fnb}" />
-<input type="submit" name="search" value="search doc" />
-<input type="submit" name="search" value="search db" />
-</font>
-</form>
-<!-- SiSU Search --> }
- elsif create_form
- %{<!-- SiSU Search -->
-<a name="search"></a>
-<form method="get" action="#{rc['search']['sisu']['action']}" target="_top">
-<font size="2">
-<input type="text" name="s1" size="24" maxlength="255" />
-<br />
-<input type="hidden" name="db" value="#{db}" />
-<input type="submit" name="search" value="search db" />
-</font>
-</form>
-<!-- SiSU Search --> }
- else ''
- end
- end
- def search_action #check
- if search?
- else ''
- end
- end
- self
- end
- def source_file_path
- file=@fns.gsub(/\.ssm(?:\.sst)?/,'.ssm.sst')
- unless file =~/\.ssm\.sst$/; "#{Dir.pwd}"
- else "#{processing_path.composite_file}"
- end
- end
- def source_file_with_path
- file=@fns.gsub(/\.ssm(?:\.sst)?/,'.ssm.sst')
- "#{source_file_path}/#{file}"
- end
- def texpdf_hyperlinks(cli)
- @cli=cli
- @hyplnks=if cli != :na
- cli
- elsif (defined? @rc['default']['pdf_hyperlinks']) \
- && (@rc['default']['pdf_hyperlinks']=~/color/)
- :color
- elsif (defined? @rc['default']['pdf_hyperlinks']) \
- && (@rc['default']['pdf_hyperlinks']=~/(?:no-color|color-off|mono(?:chrome)?)/)
- :mono
- else :na
- end
- def landscape
- if @cli != :na
- @cli
- elsif (defined? @rc['default']['pdf_hyperlinks_landscape']) \
- && (@rc['default']['pdf_hyperlinks_landscape']=~/color/)
- :color
- elsif (defined? @rc['default']['pdf_hyperlinks_landscape']) \
- && (@rc['default']['pdf_hyperlinks_landscape']=~/(?:no-color|color-off|mono(?:chrome)?)/)
- :mono
- elsif @hyplnks != :na
- @hyplnks
- else :na
- end
- end
- def portrait
- if @cli != :na
- @cli
- elsif (defined? @rc['default']['pdf_hyperlinks_portrait']) \
- && (@rc['default']['pdf_hyperlinks_portrait']=~/color/)
- :color
- elsif (defined? @rc['default']['pdf_hyperlinks_portrait']) \
- && (@rc['default']['pdf_hyperlinks_portrait']=~/(?:no-color|color-off|mono(?:chrome)?)/)
- :mono
- elsif @hyplnks != :na
- @hyprlnks
- else :na
- end
- end
- self
- end
- def font
- def size(pt=nil)
- if pt && pt != :na
- pt
- elsif defined? @rc['default']['fontsize'] \
- && @rc['default']['fontsize']=~/\d{1,2}/
- @rc['default']['fontsize']
- else :na
- end
- end
- def texpdf
- # you may wish to check selected font against available fonts:
- # fc-list :outline -f "%{family}\n"
- # fc-list :lang=ja
- def main
- (defined? @rc['default']['texpdf_fontface']) \
- && (@rc['default']['texpdf_fontface']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface']
- : 'Liberation Sans'
- end
- def sans # not used
- (defined? @rc['default']['texpdf_fontface_sans']) \
- && (@rc['default']['texpdf_fontface_sans']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_sans']
- : 'Liberation Sans'
- end
- def serif # not used
- (defined? @rc['default']['texpdf_fontface_serif']) \
- && (@rc['default']['texpdf_font_serif']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_serif']
- : 'Liberation Serif'
- end
- def mono
- (defined? @rc['default']['texpdf_fontface_mono']) \
- && (@rc['default']['texpdf_fontface_mono']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_mono']
- : 'Liberation Mono'
- end
- def cjk
- (defined? @rc['default']['texpdf_fontface_cjk']) \
- && (@rc['default']['texpdf_fontface_cjk']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_cjk']
- : 'IPAGothic' # 'IPAGothic' # 'IPAMincho' # 'TakaoMincho' # 'VL Gothic'
- end
- def cjk_zh
- (defined? @rc['default']['texpdf_fontface_cjk_zh']) \
- && (@rc['default']['texpdf_fontface_cjk_zh']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_cjk_zh']
- : 'IPAGothic'
- end
- def cjk_ja
- (defined? @rc['default']['texpdf_fontface_cjk_ja']) \
- && (@rc['default']['texpdf_fontface_cjk_ja']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_cjk_ja']
- : 'IPAGothic'
- end
- def cjk_ko
- (defined? @rc['default']['texpdf_fontface_cjk_ko']) \
- && (@rc['default']['texpdf_fontface_cjk_ko']=~/\S{3,}/) \
- ? @rc['default']['texpdf_fontface_cjk_ko']
- : 'IPAGothic'
- end
- def size(pt=nil)
- if pt && pt != :na
- pt
- elsif (defined? @rc['default']['texpdf_fontsize']) \
- && (@rc['default']['texpdf_fontsize']=~/\d{1,2}/)
- @rc['default']['texpdf_fontsize']
- elsif (defined? @rc['default']['fontsize']) \
- && (@rc['default']['fontsize']=~/\d{1,2}/)
- @rc['default']['fontsize']
- else
- :na
- end
- end
- self
- end
- self
- end
- def path_rel_links
- def html_scroll_2
- if @env.output_dir_structure.by_language_code?
- '../../'
- elsif @env.output_dir_structure.by_filetype?
- '../'
- else
- '../'
- end
- end
- def html_seg_2
- if @env.output_dir_structure.by_language_code?
- '../../../'
- elsif @env.output_dir_structure.by_filetype?
- '../../'
- else
- '../'
- end
- end
- def html_scroll_1
- if @env.output_dir_structure.by_language_code?
- '../'
- elsif @env.output_dir_structure.by_filetype?
- '../'
- else
- './'
- end
- end
- def html_seg_1
- if @env.output_dir_structure.by_language_code?
- '../../'
- elsif @env.output_dir_structure.by_filetype?
- '../../'
- else
- './'
- end
- end
- self
- end
- def read_source_file_array(fns)
- (fns !~/\.ssm.sst$/) \
- ? (IO.readlines(fns, mode: 'r:utf-8', cr_newline: true))
- : (IO.readlines("#{processing_path.composite_file}/#{fns}", mode: 'r:utf-8', cr_newline: true))
- end
- def read_source_file(fns)
- read_source_file_array(fns)
- end
- def read_source_file_string(fns)
- (fns !~/\.ssm.sst$/) \
- ? (IO.read(fns, mode: 'r:utf-8', cr_newline: true))
- : (IO.read("#{processing_path.composite_file}/#{fns}", mode: 'r:utf-8', cr_newline: true))
- end
- def source_file_processing_array(fns)
- read_source_file_string(fns).split(/\s*\n\s*\n/m)
- end
- def path #dir
- def home
- @sys.home
- end
- def sisurc_path
- GetInit.new.sisu_yaml.rc_path
- end
- def pwd
- @sys.pwd
- end
- def base_markup_dir_stub
- @base_markup_dir_stub
- end
- def stub_epub
- @stub_epub
- end
- def stub_src
- @stub_src
- end
- def stub_pod
- @stub_pod
- end
- def etc
- defaults[:sisu_etc] #live/dynamic
- end
- def arch
- @sys.dir_arch
- end
- def sitearch
- @sys.dir_sitearch
- end
- def bin
- @sys.dir_bin
- end
- def share #shared data repository source directory
- defaults[:sisu_share] #; p __LINE__.to_s + ':' + __FILE__ + ' ' + defaults[:sisu_share]
- end
- def style
- if @md \
- && ((@md.opt.opt_act[:dump][:bool] \
- && @md.opt.opt_act[:dump][:inst]) \
- || (@md.opt.opt_act[:redirect][:bool] \
- && @md.opt.opt_act[:redirect][:inst]))
- 'css'
- else
- defaults[:stylesheet_stub]
- end
- end
- def sample_data #sample data repository source directory
- defaults[:sample_data_path]
- end
- def rc
- @init.rc_path
- end
- def yamlrc
- GetInit.new.sisu_yaml.rc_path
- end
- def man #check use
- (defined? @rc['webserv']['man']) \
- ? "#{webserv}/#{@rc['webserv']['man']}"
- : defaults[:webserv_man]
- end
- def webserv_path #testing, check need, remove
- webserv
- end
- def webserv #separation required for webrick which cannot use path.output (different requirements as no file is passed)
- man_path=if @@man_path.nil?
- man_path=if defined? @rc['webserv']['path'] \
- and @rc['webserv']['path'] =~/\S\S+/
- pwd=Dir.pwd
- Dir.chdir(SiSU_Utils::Path.new.base_markup)
- man_path=@@man_path=File.expand_path(@rc['webserv']['path'])
- Dir.chdir(pwd)
- man_path
- else defaults[:webserv_path]
- end
- else @@man_path
- end
- man_path_head=man_path.gsub(/(\S+)\/[^\/\s]+$/,'\1')
- unless FileTest.directory?(man_path)
- FileUtils::mkdir_p(man_path) if File.writable?("#{man_path_head}/.")
- end
- @webserv_path=if defined? man_path \
- and File.writable?("#{man_path}/.")
- man_path #web server path as configured in rc file
- elsif FileTest.directory?(defaults[:webserv_path]) \
- and File.writable?("#{defaults[:webserv_path]}/.") #web server path default
- defaults[:webserv_path]
- else #create default directory under home and place output there
- unless FileTest.directory?(defaults[:output_local])
- FileUtils::mkdir_p(defaults[:output_local])
- end
- defaults[:output_local]
- end
- end
- def webserv_stub_ensure
- FileUtils::mkdir_p(path.webserv) unless FileTest.directory?(path.webserv)
- FileUtils::mkdir_p("#{path.webserv}/#{@base_markup_dir_stub}") \
- unless FileTest.directory?("#{path.webserv}/#{@base_markup_dir_stub}")
- end
- def webserv_map_pwd #dir
- "#{path.webserv}/#{base_markup_dir_stub}"
- end
- def webserv_dir #fixed/hard path to /www web/presentation directory, on Debian /var/www subdirectories are created within it, depending on markup directory stub-name (last segment of markup directory name)
- defaults[:webserv_dir]
- end
- def webserv_image #web/presentation directory, subdirectories are created within it, depending on markup directory stub-name (last segment of markup directory name)
- images=if defined? @rc['webserv']['images']
- @rc['webserv']['images']
- else defaults[:images]
- end
- "#{path.webserv}/#{images}"
- end
- def output #web/webserv output directory... subdirectory into which further subdirectories are made based on file names
- r=Px[:lng_lst_rgx]
- u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/
- base_stub=@sys.pwd.gsub(u,'\1')
- if Dir.pwd =~/\/#{Gt[:sisupod]}\/[^\/]+\/#{Gt[:pod]}\/#{Gt[:doc]}/
- "#{path.webserv}/#{Gt[:doc]}"
- else
- "#{path.webserv}/#{base_stub}"
- end
- end
- def feed
- (defined? @rc['webserv']['feed']) \
- ? ("#{public_output}/#{@rc['webserv']['feed']}")
- : (defaults[:webserv_feed])
- end
- def feed_home
- "#{public_output}/#{@rc['webserv']['feed_home']}"
- end
- def scripts #used previously only to include tla version info
- if defined? @rc['project']['path']; "#{home}/#{@rc['project']['path']}"
- end
- end
- def cgi
- (defined? @rc['webserv']['cgi']) \
- ? "#{@rc['webserv']['cgi']}"
- : (defaults[:webserv_cgi])
- end
- def php
- (defined? @rc['webserv']['php']) \
- ? "#{public_output}/#{@rc['webserv']['php']}"
- : (defaults[:webserv_php])
- end
- # programs
- def output_tell
- url.webserv_map_pwd
- end
- def image_source #image repository source directory
- if defined? @rc['image']['path'] \
- and defined? @rc['image']['public']
- pth="#{@rc['image']['path']}"
- "#{pth}/#{@rc['image']['public']}"
- else
- "#{share}/image"
- end
- end
- def image_source_sisu_includes
- "#{share}/image"
- end
- def image_source_include #image repository source directory
- if defined? @rc['image']['path'] \
- and defined? @rc['image']['public'] \
- and FileTest.directory?("#{@rc['image']['path']}/#{@rc['image']['public']}")==true
- "#{@rc['image']['path']}/#{@rc['image']['public']}"
- elsif FileTest.directory?("#{@@pwd}/#{defaults[:image_stub]}")==true
- "#{@@pwd}/#{defaults[:image_stub]}"
- elsif FileTest.directory?("#{SiSU_Utils::Path.new.base_markup}/#{defaults[:image_stub]}")==true
- "#{SiSU_Utils::Path.new.base_markup}/#{defaults[:image_stub]}"
- else
- "#{share}/image"
- end
- end
- def image_external
- "#{processing}/external_document/image"
- end
- def image_source_include_local
- if FileTest.directory?(defaults[:image_local]); defaults[:image_local]
- end
- end
- def image_source_include_remote
- if FileTest.directory?(image_external); image_external
- end
- end
- self
- end
- def processing_path
- def encoding
- pth="#{processing}/#{defaults[:processing_encoding]}"
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def processing_base_tmp
- defaults[:processing_path_tmp_base]
- end
- def tmp_root_dir
- defaults[:processing_dir_tmp_root]
- end
- def root_dir
- proposed_path_base=if defined? @rc['processing']['path'] \
- and not @rc['processing']['path'].nil? \
- and not @rc['processing']['path'].empty?
- x=if @rc['processing']['path'] =~/^(?:~|home)$/
- home #fix
- else @rc['processing']['path']
- end
- else nil
- end
- proposed_dir=if defined? @rc['processing']['dir'] \
- and not @rc['processing']['dir'].nil? \
- and not @rc['processing']['dir'].empty?
- @rc['processing']['dir']
- else defaults[:processing_dir]
- end
- v=SiSU_Env::InfoVersion.instance.get_version
- v_dev=(DEVELOPER[:maintenance]==:true) \
- ? "_#{v[:version]}"
- : ''
- path=if proposed_path_base \
- and FileTest.directory?(proposed_path_base) \
- and File.writable?("#{proposed_path_base}/.")
- x=proposed_dir \
- ? "#{proposed_path_base}/#{proposed_dir}"
- : "#{proposed_path_base}/#{defaults[:processing_dir]}"
- else defaults[:processing_dir_tmp_root]
- end
- path = path + v_dev
- end
- def usr_dir?
- case root_dir
- when /^\/home/ then false
- else true
- end
- end
- def stub_dir
- (usr_dir?) \
- ? ("#{root_dir}/#{user}/#{base_markup_dir_stub}")
- : ("#{root_dir}/#{base_markup_dir_stub}") # see defaults[:processing_path]
- end
- def stub_dir_orig # ends up with lang, if lang dir
- (usr_dir?) \
- ? ("#{root_dir}/#{user}/#{base_markup_dir_stub}")
- : ("#{root_dir}/#{base_markup_dir_stub}") # see defaults[:processing_path]
- end
- def processing_sisupod(opt=nil) #processing directory, used/needed for sisu work files, has sub-directories (ao,tex etc)
- @opt=opt
- def paths
- processing_path_usr="#{root_dir}/#{user}"
- processing_path_fnb=processing_path_usr + '/' + Gt[:pods] + '/' + @opt.fng
- processing_path_sisupod=processing_path_fnb + '/' + Gt[:sisupod]
- { fnb: processing_path_fnb, sisupod: processing_path_sisupod }
- end
- def make
- unless FileTest.directory?(root_dir)
- FileUtils::mkdir_p(root_dir)
- File.chmod(0777,root_dir)
- end
- if usr_dir?
- processing_path_usr="#{root_dir}/#{user}"
- FileUtils::mkdir_p(processing_path_usr) unless FileTest.directory?(processing_path_usr)
- File.chmod(0700,processing_path_usr)
- end
- sisupod_processing_path=paths[:sisupod]
- FileUtils::mkdir_p(sisupod_processing_path) unless FileTest.directory?(sisupod_processing_path)
- sisupod_processing_path_lng=if defined? @opt.lng
- sisupod_processing_path + '/' + Gt[:doc] + '/' + @opt.lng
- else
- sisupod_processing_path + '/' + Gt[:doc]
- end
- unless FileTest.directory?(sisupod_processing_path_lng)
- #puts "a processing directory (#{sisupod_processing_path_lng}) is being created for use by sisu"
- FileUtils::mkdir_p(sisupod_processing_path_lng)
- File.chmod(0700,sisupod_processing_path_lng)
- end
- sisupod_processing_path
- end
- self
- end
- def processing #processing directory, used/needed for sisu work files, has sub-directories (ao,tex etc)
- unless FileTest.directory?(root_dir)
- FileUtils::mkdir_p(root_dir)
- File.chmod(0777,root_dir)
- end
- if usr_dir?
- processing_path_usr="#{root_dir}/#{user}"
- FileUtils::mkdir_p(processing_path_usr) unless FileTest.directory?(processing_path_usr)
- File.chmod(0700,processing_path_usr)
- end
- FileUtils::mkdir_p(stub_dir) unless FileTest.directory?(stub_dir)
- File.chmod(0700,stub_dir)
- path_processing=[stub_dir,defaults[:processing_path],defaults[:processing_path_home]]
- processing=nil
- path_processing.each do |v| #
- processing=v
- unless FileTest.directory?(processing)
- FileUtils::mkdir_p(processing)
- File.chmod(0700,processing)
- end
- break
- end
- processing
- end
- def ao
- pth=if defined? @rc['processing']['dal'] \
- and @rc['processing']['dal'].is_a?(String)
- "#{processing}/#{@rc['processing']['dal']}"
- else "#{processing}/#{defaults[:processing_ao]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def tune
- pth=if defined? @rc['processing']['tune'] \
- and @rc['processing']['tune'].is_a?(String)
- "#{processing}/#{@rc['processing']['tune']}"
- else "#{processing}/#{defaults[:processing_tune]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def composite_file
- pth=processing_path.ao #"#{processing}/composite"
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def git
- pth=if defined? @rc['git']['dir'] \
- and @rc['git']['dir'].is_a?(String)
- (@rc['git']['dir'] =~/^(?:~|home)$/) \
- ? home + '/' + Gt[:git]
- : @rc['git']['dir'] + '/' + Gt[:git]
- else defaults[:processing_git]
- end
- unless FileTest.directory?(pth)
- FileUtils::mkdir_p(pth)
- File.chmod(0700,pth)
- end
- pth
- end
- def odf_pth
- pth="#{processing}/odf/#{@fns}"
- pth
- end
- def odf
- odt
- end
- def odt
- pth=odf_pth + '/odt'
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def odf
- pth="#{processing}/odf"
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def odt_bld
- FileUtils::rm_rf(processing_path.odt)
- FileUtils::mkdir_p(processing_path.odt) unless FileTest.directory?(processing_path.odt)
- FileUtils::mkdir_p("#{processing_path.odt}/Configurations2") unless FileTest.directory?("#{processing_path.odt}/Configurations2")
- FileUtils::mkdir_p("#{processing_path.odt}/META-INF") unless FileTest.directory?("#{processing_path.odt}/META-INF")
- FileUtils::mkdir_p("#{processing_path.odt}/Pictures") unless FileTest.directory?("#{processing_path.odt}/Pictures")
- FileUtils::mkdir_p("#{processing_path.odt}/Thumbnails") unless FileTest.directory?("#{processing_path.odt}/Thumbnails")
- processing_path.odt
- end
- def epub
- "#{processing}/epub/#{@fnb}"
- end
- def epub_bld #(md)
- FileUtils::rm_rf(processing_path.epub) if FileTest.directory?(processing_path.epub)
- FileUtils::mkdir_p(processing_path.epub) unless FileTest.directory?(processing_path.epub)
- FileUtils::mkdir_p("#{processing_path.epub}/META-INF") unless FileTest.directory?("#{processing_path.epub}/META-INF")
- FileUtils::mkdir_p("#{processing_path.epub}/#{Ep[:d_oebps]}/image") unless FileTest.directory?("#{processing_path.epub}/#{Ep[:d_oebps]}/image")
- FileUtils::mkdir_p("#{processing_path.epub}/#{Ep[:d_oebps]}/css") unless FileTest.directory?("#{processing_path.epub}/#{Ep[:d_oebps]}/css")
- processing_path.epub
- end
- def epub_cp_images(md)
- pth="#{processing_path.epub}/#{Ep[:d_oebps]}/image"
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- src="#{path.share}/image"
- images=%W[bullet_09.png arrow_next_red.png arrow_prev_red.png arrow_up_red.png]
- images.each do |i| #move to avoid repeated tests
- if FileTest.file?("#{src}/#{i}")
- FileUtils::cp("#{src}/#{i}","#{pth}/#{i}") unless FileTest.file?("#{pth}/#{i}")
- else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]}
- end
- end
- pth
- end
- def tex
- pth=if defined? @rc['processing']['latex'] \
- and @rc['processing']['latex'].is_a?(String)
- "#{processing}/#{@rc['processing']['latex']}"
- else "#{processing}/#{defaults[:processing_latex]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def texi
- pth=if defined? @rc['processing']['texinfo'] \
- and @rc['processing']['texinfo'].is_a?(String)
- "#{processing}/#{@rc['processing']['texinfo']}"
- else "#{processing}/#{defaults[:processing_texinfo]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def texinfo #texinfo webserv, check
- "#{processing}/#{defaults[:processing_texinfo]}"
- end
- def manpage
- "#{path.output}/man"
- end
- def lout
- pth=if defined? @rc['processing']['lout'] \
- and @rc['processing']['lout'].is_a?(String)
- "#{processing}/#{@rc['processing']['lout']}"
- else "#{processing}/#{defaults[:processing_lout]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def sql
- pth="#{processing}/sql"
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def sqlite
- pth=if defined? @rc['processing']['sqlite'] \
- and @rc['processing']['sqlite'].is_a?(String)
- "#{processing}/#{@rc['processing']['sqlite']}"
- else "#{processing}/#{defaults[:processing_sqlite]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- def postgresql
- pth=if defined? @rc['processing']['postgresql'] \
- and @rc['processing']['postgresql'].is_a?(String)
- "#{processing}/#{@rc['processing']['postgresql']}"
- else "#{processing}/#{defaults[:processing_postgresql]}"
- end
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- self
- end
- def url
- def hostname
- "http://#{@sys.hostname}"
- end
- def dir_url
- "file://#{path.webserv}/#{base_markup_dir_stub}"
- end
- def localhost
- "http://localhost/#{base_markup_dir_stub}"
- end
- def local
- "http://#{hostname}/#{@base_markup_dir_stub}"
- end
- def root
- if defined? @rc['webserv']['url_root'] \
- and @rc['webserv']['url_root'] =~/https?:\/\//
- "#{@rc['webserv']['url_root']}/#{@base_markup_dir_stub}"
- elsif defined? @rc['webserv']['url_root'] \
- and @rc['webserv']['url_root'] =~/localhost/
- "http://localhost/#{@base_markup_dir_stub}"
- else "file://#{path.output}"
- end
- end
- def remote
- root
- end
- def txt
- "#{root}/txt"
- end
- def html
- "#{root}/html"
- end
- def epub
- "#{root}/epub"
- end
- def odt
- "#{root}/odt"
- end
- def pdf
- "#{root}/pdf"
- end
- def src_txt
- "#{root}/src"
- end
- def src_pod
- "#{root}/pod"
- end
- def pot
- "#{root}/po4a/pot"
- end
- def po
- "#{root}/po4a/po"
- end
- def webserv_host_base(opt=nil)
- if defined? @rc['webserv']['host']
- case @rc['webserv']['host']
- when /https?:\/\// then @rc['webserv']['host']
- when /\S+/ then "http://#{@rc['webserv']['host']}"
- else defaults[:webserv_host_cgi]
- end
- else defaults[:webserv_host_cgi]
- end
- end
- def webserv_cgi(opt=nil) #web url for local webserv (localhost, or hostname)
- http=if defined? @rc['webserv_cgi']['host'] \
- and @rc['webserv_cgi']['host'].is_a?(String)
- http=((@rc['webserv_cgi']['host'] =~ /https?:\/\//) ? '' : 'http://') #check https? missing
- if port.webserv_port_cgi
- "#{http}#{@rc['webserv_cgi']['host']}:#{port.webserv_port_cgi}/#{@base_markup_dir_stub}"
- else "#{http}#{@rc['webserv_cgi']['host']}/#{@base_markup_dir_stub}"
- end
- else
- http=((webserv_host_base=~/https?:\/\//) ? '' : 'http://')
- if port.webserv_port_cgi(opt)
- "#{http}#{webserv_host_base}:#{port.webserv_port_cgi(opt)}/#{@base_markup_dir_stub}"
- else "#{http}#{webserv_host_base}/#{@base_markup_dir_stub}"
- end
- end
- 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+)["']+/
- m=$1
- (m=~/http\/\/:/) ? m : %{http://#{m}}
- elsif defined? @rc['webserv_cgi']['host'] \
- and @rc['webserv_cgi']['host'].is_a?(String)
- http=((@rc['webserv_cgi']['host'] =~ /https?:\/\//) ? '' : 'http://')
- if port.webserv_port_cgi(opt)
- "#{http}#{@rc['webserv_cgi']['host']}:#{port.webserv_port_cgi(opt)}"
- else "#{http}#{@rc['webserv_cgi']['host']}"
- end
- else
- http=((webserv_host_base=~/https?:\/\//) ? '' : 'http://')
- if port.webserv_port_cgi(opt)
- "#{http}#{webserv_host_base}:#{port.webserv_port_cgi(opt)}"
- else "#{http}#{webserv_host_base}"
- end
- end
- http=http.strip
- #%q{http://#{ENV['HTTP_HOST']}}
- end
- def webrick #must have a port #REMOVE
- if defined? @rc['webserv_cgi']['host'] \
- and @rc['webserv_cgi']['host'].is_a?(String)
- http=if @rc['webserv_cgi']['host'] =~/http:\/\//
- 'http://'
- elsif @rc['webserv_cgi']['host'] =~/https:\/\//
- 'https://'
- else defaults
- end
- "#{http}#{@rc['webserv_cgi']['host']}"
- elsif webserv_host_base \
- and webserv_host_base.is_a?(String)
- "#{http}#{webserv_host_base}"
- else "#{http}localhost" end
- end
- def webserv #web url for local webserv (localhost, or hostname)
- if defined? @rc['webserv']['url_root'] \
- and @rc['webserv']['url_root'] =~/http/
- # needed for alternative output dir structures, fixes manifest url links, check may cause problems elsewhere
- @rc['webserv']['url_root']
- elsif path.webserv_dir \
- and path.webserv =~ /#{path.webserv_dir}/ #revisit
- "#{path.webserv}/#{@base_markup_dir_stub}".gsub(/#{path.webserv_dir}/,"#{url.hostname}/#{@base_markup_dir_stub}")
- elsif defined? @rc['webserv']['webrick_url'] \
- and @rc['webserv']['webrick_url']==false
- "file://#{path.webserv}"
- elsif port.webserv_port_cgi =~/\S+/
- "#{url.hostname}:#{port.webserv_port_cgi}"
- else
- url.hostname
- end
- end
- def webserv_base #web url for local webserv (localhost, or hostname)
- if path.webserv_dir \
- and path.webserv =~ /#{path.webserv_dir}/ #revisit
- "#{path.webserv}/#{@base_markup_dir_stub}".gsub(/#{path.webserv_dir}/,"#{url.hostname}")
- elsif defined? @rc['webserv']['webrick_url'] \
- and @rc['webserv']['webrick_url']==false
- "file://#{path.webserv}"
- else "#{url.webrick_base}"
- end
- end
- def webserv_files_from_db(opt=nil) #sort this out, messy
- if opt.mod.inspect =~/--webserv-output[=-]["']?(\S+)["']+/
- m=$1
- (m=~/(?:http|file\/)\/\/:/) ? m : %{http://#{m}}
- else
- show_output_on=if defined? @rc['webserv_cgi']['show_output_on']
- @rc['webserv_cgi']['show_output_on']
- elsif defined? @rc['webserv_cgi']['file_links']
- @rc['webserv_cgi']['file_links']
- else ''
- end
- m=case show_output_on
- when /webserv_cgi/ then url.webserv_base_cgi(opt)
- when /webserv/ then @rc['webserv']['url_root']
- when /https?:\/\// then @rc['webserv_cgi']['file_links']
- when /\S+/ then "http://#{@rc['webserv_cgi']['file_links']}"
- else webserv_base_cgi(opt)
- end
- end
- #%q{http://#{ENV['HTTP_HOST']}/cgi-bin}
- end
- def cgi_sample_search_form_name(opt=nil)
- if opt.mod.inspect =~/--(?:cgi-)?search-form-name[=-]["']?(\S+?\.cgi)/
- $1
- elsif not opt.mod.inspect =~/--db[=-]["']?sqlite/ \
- and defined? @rc['search'] \
- and defined? @rc['search']['sisu'] \
- and defined? @rc['search']['sisu']['action'] \
- and @rc['search']['sisu']['action'] =~/https?:\/\/\S+?\.cgi/
- /(?:https?:\/\/\S+?)\/([^\/]+?\.cgi)$/.match(@rc['search']['sisu']['action'])[1]
- else
- (opt.mod.inspect =~/--db[=-]["']?sqlite/) \
- ? "#{Db[:name_prefix_db]}sqlite.cgi" \
- : "#{Db[:name_prefix_db]}pg.cgi"
- end
- end
- def sample_search_form_title(organised_by=:language)
- title=if defined? @rc['search']['sisu']['title'] \
- and @rc['search']['sisu']['title'] =~/\S+/
- @rc['search']['sisu']['title']
- else %{SiSU (generated sample) search form}
- end
- title=title + " (content organised by #{organised_by})"
- end
- def output_tell #BROKEN Revisit 2011-02
- output_type=if defined? @rc['show_output_on'] \
- and @rc['show_output_on'] =~/^(?:filesystem|webserv|(?:local|remote)(?:_webserv)?|webrick)/
- @rc['show_output_on']
- else 'filesystem'
- end
- case output_type
- when /^filesystem(?:_url)?/ then url.dir_url
- when /^remote(?:_webserv)?/ then url.remote
- when /^(?:webserv|local_webserv)/ then url.local
- when /^local(:\d+)/ then url.hostname + $1 + '/' + base_markup_dir_stub
- when /^localhost(:\d+)/ then url.localhost + $1 + '/' + base_markup_dir_stub
- when /^localhost/ then url.localhost
- when /^webrick/ then url.webrick
- when /^path/ then url.webserv_map_pwd
- else url.webserv_map_pwd
- end
- end
- def images
- "#{Xx[:html_relative2]}/_sisu/image"
- end
- #def images
- # '../_sisu/image'
- #end
- def images_local
- if FileTest.directory?(path.image_source_include)
- path.image_source_include
- else
- if @@local_image==true
- cmd=@cmd ? @cmd : ''
- SiSU_Screen::Ansi.new(
- cmd,
- "WARNING - no local image directory or images:",
- defaults[:image_local]
- ).warn unless cmd =~/q/
- @@local_image=false
- end
- url.images
- end
- end
- def images_external
- if FileTest.directory?(image_external)
- if @@image_flag
- images=Dir.glob("#{image_external}/*.{png,jpg,gif}")
- pth="#{path.webserv}/#{@base_markup_dir_stub}"
- FileUtils::mkdir_p("#{pth}/_sisu/image_external") \
- unless FileTest.directory?("#{pth}/_sisu/image_external")
- images.each { |i| File.install(i,"#{pth}/#{i}") } \
- unless images.length > 0
- @@image_flag=false
- end
- "#{Xx[:html_relative2]}/_sisu/image_external"
- else
- if @@local_image==true
- SiSU_Screen::Ansi.new(
- @cmd,
- "WARNING - image directory for external images or no such images:",
- :image_external
- ).warn unless @cmd =~/q/
- @@local_image=false
- end
- url.images_external
- end
- end
- def images_epub
- './image'
- end
- self
- end
- def port
- def webrick_port
- if @md \
- and @md.opt.cmd.inspect=~/-F/ \
- and @md.opt.mod.inspect=~/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/)
- defaults[:webserv_port_cgi]
- elsif not @rc['webserv_cgi']['port'].nil?
- @rc['webserv_cgi']['port']
- else defaults[:webserv_port_cgi]
- end
- else defaults[:webserv_port_cgi]
- end
- end
- end
- def webserv_port_cgi(opt=nil)
- port=if opt \
- and opt.cmd.inspect=~/-F/ \
- and opt.mod.inspect=~/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/)
- defaults[:webserv_port_cgi]
- elsif not @rc['webserv_cgi']['port'].nil?
- @rc['webserv_cgi']['port']
- else nil
- end
- else
- if (defined? opt.mod \
- and not opt.mod.nil? \
- and opt.mod.inspect=~/webrick/)
- defaults[:webserv_port_cgi]
- else nil
- end
- end
- end
- end
- self
- end
- def digest_conf?
- if defined? @rc['default']['digest'] \
- and @rc['default']['digest'] != nil
- case @rc['default']['digest']
- when /^sha(?:5|512)?$/ then :sha512
- when /^sha(?:2|256)?$/ then :sha256
- when /^md5$/ then :md5
- else :sha256
- end
- else :sha256
- end
- end
- def digest(opt=nil)
- @opt=opt
- def type
- if @opt
- case @opt.act[:hash_digest_algo]
- when :sha512 then :sha512
- when :sha256 then :sha256
- when :md5 then :md5
- else digest_conf?
- end
- else digest_conf?
- end
- end
- def length
- case digest(@opt).type
- when :sha512 then 128
- when :sha256 then 64
- when :md5 then 32
- else 64
- end
- end
- def pattern
- "[0-9a-f]{#{digest(@opt).length}}" #/[0-9a-f]{#{digest.length}}/
- end
- self
- end
- def program
- def text_editor
- if defined? @rc['program_select']['editor'] \
- and @rc['program_select']['editor'] =~/\S\S+/
- @rc['program_select']['editor']
- elsif defined? @rc['program_select']['text_editor'] \
- and @rc['program_select']['text_editor'] =~/\S\S+/
- @rc['program_select']['text_editor']
- else 'editor' #'gvim -c :R -c :S'
- end
- end
- def pdf_viewer
- ((defined? @rc['program_select']['pdf_viewer']) \
- && @rc['program_select']['pdf_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['pdf_viewer']
- : 'pdf-viewer' #'evince'
- end
- def web_browser
- if defined? @rc['program_select']['www_browser'] \
- and @rc['program_select']['www_browser'] =~/\S\S+/
- @rc['program_select']['www_browser']
- elsif defined? @rc['program_select']['web_browser'] \
- and @rc['program_select']['web_browser'] =~/\S\S+/
- @rc['program_select']['web_browser']
- else 'x-www-browser' #'firefox' 'iceweasel' 'kazehakase' 'galeon'
- end
- end
- def www_browser
- web_browser
- end
- def console_web_browser
- if defined? @rc['program_select']['console_www_browser'] \
- and @rc['program_select']['console_www_browser'] =~/\S\S+/
- @rc['program_select']['console_www_browser']
- elsif defined? @rc['program_select']['console_web_browser'] \
- and @rc['program_select']['console_web_browser'] =~/\S\S+/
- @rc['program_select']['console_web_browser']
- else 'console-www-browser' #'lynx' 'links' 'links2' 'elinks' 'w3m'
- end
- end
- def console_www_browser
- web_browser
- end
- def epub_viewer
- ((defined? @rc['program_select']['epub_viewer']) \
- && @rc['program_select']['epub_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['epub_viewer']
- : 'ebook-viewer' #'calibre' 'fbreader'
- end
- def xml_viewer
- ((defined? @rc['program_select']['xml_viewer']) \
- && @rc['program_select']['xml_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['xml_viewer']
- : text_editor
- end
- def docbook_viewer
- ((defined? @rc['program_select']['xml_viewer']) \
- && @rc['program_select']['xml_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['xml_viewer']
- : text_editor
- end
- def fictionbook_viewer
- ((defined? @rc['program_select']['xml_viewer']) \
- && @rc['program_select']['xml_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['xml_viewer']
- : text_editor
- end
- def xml_editor
- xml_viewer
- end
- def odf_viewer
- ((defined? @rc['program_select']['odf_viewer']) \
- && @rc['program_select']['odf_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['odf_viewer']
- : 'lowriter' #'odf-viewer','oowriter'
- end
- def manpage_viewer
- 'man'
- end
- def manpage_generator
- ((defined? @rc['program_select']['man']) \
- && @rc['program_select']['man'] =~/\S\S+/) \
- ? @rc['program_select']['man']
- : 'nroff -man' #'nroff -man' #'groff -man -Tascii'
- end
- def texinfo
- ((defined? @rc['program_select']['info_viewer']) \
- && @rc['program_select']['info_viewer'] =~/\S\S+/) \
- ? @rc['program_select']['info_viewer']
- : 'pinfo -f' #'pinfo -f' 'info' 'tkinfo'
- end
- def file_encoding
- is=(defined? @rc['program_set']['file_encoding']) ? @rc['program_set']['encoding'] : ''
- (is.nil? || is==true) ? 'encoding' : is
- end
- def wc #wordcount
- is=(defined? @rc['program_set']['wc']) ? @rc['program_set']['wc'] : ''
- (is.nil? || is==true) ? 'wc' : is
- end
- def tidy
- is=(defined? @rc['program_set']['tidy']) ? @rc['program_set']['tidy'] : nil
- (is.nil? || is==true) ? 'tidy' : is
- end
- def rmagick
- is=(defined? @rc['program_set']['rmagick']) ? @rc['program_set']['rmagick'] : nil
- (is.nil? || is==true) ? 'rmagick' : is
- end
- def rexml #should be part of ruby 1.8 but apparently not always
- is=(defined? @rc['program_set']['rexml']) ? @rc['program_set']['rexml'] : ''
- (is.nil? || is==true) ? 'rexml' : is
- end
- def pdflatex
- is=(defined? @rc['program_set']['pdflatex']) ? @rc['program_set']['pdflatex'] : ''
- (is.nil? || is==true) ? 'pdflatex' : is
- end
- def postgresql
- is=(defined? @rc['program_set']['postgresql']) ? @rc['program_set']['postgresql'] : ''
- (is.nil? || is==true) ? 'postgresql' : is
- end
- def sqlite
- is=(defined? @rc['program_set']['sqlite']) ? @rc['program_set']['sqlite'] : ''
- (is.nil? || is==true) ? 'sqlite' : is
- end
- self
- end
- def i18n
- def language # language settings
- m=/.+\/\S+?\~(\S+)/
- pwd=Dir.pwd
- conf=(defined? @rc['default']['language']) ? @rc['default']['language'] : nil
- l=if pwd=~ m; pwd[m,1] #2 directory: by visible directory name
- elsif conf; @rc['default']['language'] #3 config: from sisurc.yaml
- else defaults[:language] #4 sisu: program default
- end #1 document: param gets
- SiSU_Env::StandardiseLanguage.new(l)
- end
- #def multilingual
- # x=(defined? @rc['output_structure']['multilingual'] \
- # && @rc['output_structure']['multilingual'] ==true) \
- # ? true : false
- #end
- #def bundle
- # x=(defined? @rc['output_structure']['bundle'] \
- # && @rc['output_structure']['bundle'] ==true) \
- # ? true : false
- #end
- def lang_filename(l)
- @lang={}
- x=if output_dir_structure.by_language_code?
- (( defined? @rc['default']['language_file']) \
- && @rc['default']['language_file'] != nil) \
- ? @rc['default']['language_file']
- : 1
- else 0
- end
- if (l != defaults[:language_code]) \
- or (language.code != defaults[:language_code]) #watch
- if x==1; @lang[:pre],@lang[:mid],@lang[:post]="#{l}.",'',''
- elsif x==2; @lang[:pre],@lang[:mid],@lang[:post]='',".#{l}",''
- elsif x==3; @lang[:pre],@lang[:mid],@lang[:post]='','',".#{l}"
- else @lang[:pre],@lang[:mid],@lang[:post]='','',''
- end
- else @lang[:pre],@lang[:mid],@lang[:post]='','',''
- end
- @lang
- end
- self
- end
- def file_encoding
- is=''
- if defined? @rc['program_set']['file_encoding']; is=@rc['program_set']['encoding']
- end
- if is.nil? \
- or is==true
- is='encoding'
- end
- is
- end
- def papersize # paper settings, default overidden in param if set within document
- (defined? @rc['default']['papersize']) \
- ? @rc['default']['papersize'].downcase
- : (defaults[:papersize].downcase)
- end
- def odf_structure
- FileUtils::rm_rf(processing_path.processing_path.odf_pth)
- FileUtils::mkdir_p(processing_path.processing_path.odf_pth)
- system("unzip -q #{path.share}/#{SiSU_is[:version_dir]}/odf/odt.zip -d #{processing_path.odf_pth}")
- end
- def sisupod_gen(fns_pod)
- sisupod_gen_v3(fns_pod)
- end
- def sisupod_gen_v3(fns_pod)
- pwd=Dir.pwd
- sisupod_processing_path="#{processing_path.processing}/#{Gt[:sisupod]}"
- if FileTest.directory?(sisupod_processing_path) \
- or FileTest.file?(sisupod_processing_path)
- FileUtils::rm_rf(sisupod_processing_path)
- end
- unless FileTest.directory?(sisupod_processing_path)
- FileUtils::mkdir_p(sisupod_processing_path)
- end
- f_pod=if FileTest.file?("#{Dir.pwd}/#{fns_pod}")
- "#{Dir.pwd}/#{fns_pod}"
- elsif FileTest.file?(fns_pod)
- fns_pod
- end
- if f_pod \
- && FileTest.file?(f_pod)
- (SiSU_Env::SystemCall.new.program_found?('tree')) \
- ? "tree #{processing_path.processing}/#{Gt[:sisupod]}"
- : ''
- if FileTest.directory?(processing_path.processing)
- Dir.chdir(processing_path.processing)
- system(%{tar xJf #{f_pod}})
- Dir.chdir(pwd)
- end
- #system(tree) #enable if (/[vVM]/)
- else
- SiSU_Screen::Ansi.new('',"*WARN* file not found: #{fns_pod}").warn unless @cmd=~/q/
- end
- sisupod_processing_path
- end
- def sisupod_gen_v2(fns_pod)
- sisupod_processing_path="#{processing_path.processing}/#{Gt[:sisupod]}"
- if FileTest.directory?(sisupod_processing_path) \
- or FileTest.file?(sisupod_processing_path)
- FileUtils::rm_rf(sisupod_processing_path)
- end
- unless FileTest.directory?(sisupod_processing_path)
- FileUtils::mkdir_p(sisupod_processing_path)
- end
- (FileTest.file?(fns_pod)) \
- ? system("unzip -q #{fns_pod} -d #{processing_path.processing}")
- : (SiSU_Screen::Ansi.new('',"*WARN* file not found: #{fns_pod}").warn unless @cmd=~/q/)
- sisupod_processing_path
- end
+ class InfoEnv < SiSU_Info_Env::InfoEnv # se_info_env.rb
end
- class InfoProcessingFlag
- attr_accessor :color,:cf_0,:cf_1,:cf_2,:cf_3,:cf_4,:cf_5
- def initialize
- @rc=GetInit.new.sisu_yaml.rc
- end
- def color #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'
- end
- end
- def cf_1 #processing flag shortcuts
- if defined? @rc['flag']['i'] \
- and @rc['flag']['i'].is_a?(String)
- @rc['flag']['i']
- else '-Qhewpoty'
- end
- end
- def cf_2 #processing flag shortcuts
- if defined? @rc['flag']['ii'] \
- and @rc['flag']['ii'].is_a?(String)
- @rc['flag']['ii']
- else '-NQhewpotbxXdy'
- end
- end
- def cf_3 #processing flag shortcuts
- if defined? @rc['flag']['iii'] \
- and @rc['flag']['iii'].is_a?(String)
- @rc['flag']['iii']
- else '-NQhewpotbxXdyY'
- end
- 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'
- end
- end
- def cf_5 #processing flag shortcuts
- if defined? @rc['flag']['v'] \
- and @rc['flag']['v'].is_a?(String)
- @rc['flag']['v']
- else '-NQhewpotbxXdDyYv --update'
- end
- end
+ class InfoProcessingFlag < SiSU_Info_Processing_Flag::InfoProcessingFlag # se_processing.rb
end
- class InfoSettings < InfoEnv
- def permission?(prog) #program defaults
- (defined? @rc['permission_set'][prog]) \
- ? @rc['permission_set'][prog]
- : false
- end
- def program?(prog) #program defaults
- (defined? @rc['program_set'][prog]) \
- ? @rc['program_set'][prog]
- : false
- end
+ class InfoSettings < SiSU_Info_Set::InfoSettings # se_programs.rb
end
- class FileMap < InfoEnv
- attr_accessor :local_sisu_source
- def initialize(opt='') #watch / REVIEW
- super()
- @opt=opt #,opt.fns,opt.cmd
- @env=(@opt.fns && !(@opt.fns.empty?) \
- ? (SiSU_Env::InfoEnv.new(@opt.fns))
- : (SiSU_Env::InfoEnv.new('dummy.sst')))
- ft=[]
- if @opt.act[:ao][:set]==:on
- @md=SiSU_Param::Parameters.new(@opt).get
- if @md \
- and defined? @md.fn \
- and @md.fn # used for by_language_code?
- if @md.opt.act[:html][:set]==:on #% --html, -h -H
- ft << @md.fn[:html]
- end
- if @md.opt.act[:concordance][:set]==:on #% --concordance, -w
- ft << @md.fn[:concordance]
- end
- if @md.opt.act[:manifest][:set]==:on #% --manifest, -y
- ft << @md.fn[:manifest]
- end
- if @md.opt.act[:txt][:set]==:on #% --txt, -t -a
- ft << @md.fn[:plain]
- end
- if @md.opt.act[:txt_textile][:set]==:on #% --textile
- ft << @md.fn[:txt_textile]
- end
- if @md.opt.act[:txt_asciidoc][:set]==:on #% --asciidoc
- ft << @md.fn[:txt_asciidoc]
- end
- if @md.opt.act[:txt_markdown][:set]==:on #% --markdown
- ft << @md.fn[:txt_markdown]
- end
- if @md.opt.act[:txt_rst][:set]==:on #% --rst, --rest
- ft << @md.fn[:txt_rst]
- end
- if @md.opt.act[:xhtml][:set]==:on #% --xhtml, -b xhtml
- ft << @md.fn[:xhtml]
- end
- if @md.opt.act[:epub][:set]==:on #% --epub, -e
- ft << @md.fn[:epub]
- end
- if @md.opt.act[:manpage][:set]==:on #% --manpage, -i
- ft << @md.fn[:manpage]
- end
- if @md.opt.act[:hash_digests][:set]==:on #% --hash-digests, -N digest tree
- ft << @md.fn[:digest]
- end
- if @md.opt.act[:odt][:set]==:on #% --odt, -o opendocument
- ft << @md.fn[:odf]
- end
- if @md.opt.act[:pdf][:set]==:on #% --pdf-l --pdf, -p latex/ texpdf
- ft << @md.fn[:pdf_l] << @md.fn[:pdf_p]
- end
- if @md.opt.act[:share_source][:set]==:on
- ft << @md.fns
- end
- if @md.opt.act[:sisupod][:set]==:on #% --sisupod, -S make sisupod
- ft << @md.fn[:sisupod]
- end
- if @md.opt.act[:xml_sax][:set]==:on #% --xml-sax, -x xml sax type
- ft << @md.fn[:sax]
- end
- if @md.opt.act[:xml_dom][:set]==:on #% --xml-dom, -X xml dom type
- ft << @md.fn[:dom]
- end
- if @md.opt.act[:xml_docbook_book][:set]==:on #% --xml-docbook-book
- ft << @md.fn[:xml_docbook_book]
- end
- if @md.opt.act[:xml_fictionbook][:set]==:on #% --xml-fictionbook
- ft << @md.fn[:xml_fictionbook]
- end
- if @md.opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu
- ft << @md.fn[:xml_scaffold_structure_sisu]
- end
- if @md.opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse
- ft << @md.fn[:xml_scaffold_structure_collapse]
- end
- @fnb=@md.fnb
- else # still needed where/when param is not parsed
- if @opt.act[:html][:set]==:on #% --html, -h -H
- ft << '.html' << '.html.??'
- end
- if @opt.act[:concordance][:set]==:on #% --concordance, -w
- ft << 'concordance.html' << '??.concordance.html' << 'concordance.??.html'
- end
- if @opt.act[:manifest][:set]==:on #% --manifest, -y
- ft << 'sisu_manifest.html' << '??.sisu_manifest.html' << 'sisu_manifest.??.html'
- end
- if @opt.act[:txt][:set]==:on #% --txt, -t -a
- ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt'
- end
- if @opt.act[:txt_textile][:set]==:on #% --textile
- ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt'
- end
- if @opt.act[:txt_asciidoc][:set]==:on #% --asciidoc
- ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt'
- end
- if @opt.act[:txt_markdown][:set]==:on #% --markdown
- ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt'
- end
- if @opt.act[:txt_rst][:set]==:on #% --rst, --rest
- ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt'
- end
- if @opt.act[:xhtml][:set]==:on #% --xhtml, -b xhtml
- ft << 'scroll.xhtml' << '??.scroll.xhtml' << 'scroll.??.xhtml'
- end
- if @opt.act[:epub][:set]==:on #% --epub, -e
- ft << @fnb << '.epub'
- end
- if @opt.act[:manpage][:set]==:on #% --manpage, -i
- ft << '.1' << '??.man.1' << 'man.??.1'
- end
- if @opt.act[:hash_digests][:set]==:on #% --hash-digests, -N digest tree
- ft << 'digest.txt' << '??.digest.txt' << 'digest.??.txt'
- end
- if @opt.act[:odt][:set]==:on #% --odt, -o opendocument
- ft << 'opendocument.odt' << '??.opendocument.odt' << 'opendocument.??.odt'
- end
- if @opt.act[:pdf][:set]==:on #% --pdf-l --pdf, -p latex/ texpdf
- ft << 'landscape.pdf' << 'portrait.pdf' << '.pdf'
- end
- if @opt.act[:share_source][:set]==:on
- ft << '.sst' << '.ssi' << '.ssm'
- end
- if @opt.act[:sisupod][:set]==:on #% --sisupod, -S make sisupod
- ft << '.zip'
- end
- if @opt.act[:xml_sax][:set]==:on #% --xml-sax, -x xml sax type
- ft << 'sax.xml' << '??.sax.xml' << 'sax.??.xml'
- end
- if @opt.act[:xml_dom][:set]==:on #% --xml-dom, -X xml dom type
- ft << 'dom.xml' << '??.dom.xml' << 'dom.??.xml'
- end
- if @opt.act[:xml_docbook_book][:set]==:on #% --xml-docbook-book
- ft << 'docbook.xml' << '??.docbook.xml' << 'docbook.??.xml'
- end
- if @opt.act[:xml_fictionbook][:set]==:on #% --xml-fictionbook
- ft << 'fictionbook.xml' << '??.fictionbook.xml' << 'fictionbook.??.xml'
- end
- if @opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu
- ft << 'scaffold.xml' << '??.scaffold.xml' << 'scaffold.??.xml'
- end
- if @opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse
- ft << 'scaffold.xml' << '??.scaffold.xml' << 'scaffold.??.xml'
- end
- end
- ft=ft.uniq
- filetypes=ft.join(',')
- @filetypes=if filetypes !~/..+/; '' # -r called alone, copy all
- elsif @opt.cmd =~/u/; '' # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u
- elsif filetypes =~/\S+?,\S+/; '*{' + filetypes + '}' # more than one relevant file type
- else '*' + filetypes # one relevant file type
- end
- @source_path=(@fnb && !(@fnb.empty?) \
- ? "#{@env.path.output}/#{@fnb}"
- : @env.path.output)
- @source_path_epub=(@fnb && !(@fnb.empty?) \
- ? "#{@env.path.output}/epub"
- : @env.path.output_epub)
- @source_path_src=(@fnb && !(@fnb.empty?) \
- ? "#{@env.path.output}/src"
- : @env.path.output_src)
- @source_path_pod=(@fnb && !(@fnb.empty?) \
- ? "#{@env.path.output}/pod"
- : @env.path.output_pod)
- @source_path_harvest=(@fnb && !(@fnb.empty?) \
- ? "#{@env.path.output}/manifest"
- : @env.path.output_harvest)
- @local_sisu_source=(@filetypes =~/\S/) \
- ? "#{@source_path}/#{@filetypes}"
- : @source_path
- end
- if @opt.act[:rsync][:set]==:on
- end
- end
+ class FileMap < SiSU_File_Map::FileMap # se_filemap.rb
end
- class CleanOutput
- begin
- require 'fileutils'
- include FileUtils::Verbose
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('fileutils NOT FOUND (LoadError)')
- end
- def initialize(opt)
- @opt=opt
- z=SiSU_Env::FileMap.new(opt)
- zap=z.local_sisu_source
- if opt.cmd =~ /h/i
- zap=Dir.glob(zap).join(' ')
- @zap=if opt.cmd !~ /w/
- zap.gsub(/#{@source_path}\/concordance.html/,'')
- else zap
- end
- end
- @env=SiSU_Env::InfoEnv.new
- end
- def zap
- def deletion(fn)
- if FileTest.file?(fn)==true
- File.delete(fn)
- tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns, 'remove: ' + fn)
- tell.warn unless @opt.cmd =~/q/
- end
- end
- def remove_output
- if @opt.act[:maintenance][:set] == :on
- m=InfoFile.new(@opt.fnc)
- tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns, 'remove maintenance files from: ' + @env.processing_path.ao)
- tell.warn unless @opt.cmd =~/q/
- deletion(m.marshal.ao_content)
- deletion(m.marshal.ao_idx_sst_rel_html_seg)
- deletion(m.ao_idx_sst_rel)
- deletion(m.ao_idx_html)
- deletion(m.ao_idx_xhtml)
- deletion(m.ao_metadata)
- deletion(m.ao_map_nametags)
- deletion(m.ao_map_ocn_htmlseg)
- deletion(m.html_tune)
- end
- md=SiSU_Param::Parameters.new(@opt).get
- f=SiSU_Env::FileOp.new(md)
- deletion(f.place_file.html_segtoc.dir)
- deletion(f.place_file.html_scroll.dir)
- deletion(f.place_file.html_book_index.dir)
- deletion(f.place_file.html_concordance.dir)
- deletion(f.place_file.epub.dir)
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_letter}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_letter}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_a4}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_a4}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_a5}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_a5}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_b5}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_b5}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_legal}")
- deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_legal}")
- deletion(f.place_file.odt.dir)
- deletion(f.place_file.xhtml.dir)
- deletion(f.place_file.xml_sax.dir)
- deletion(f.place_file.xml_dom.dir)
- deletion(f.place_file.xml_scaffold_structure_sisu.dir)
- deletion(f.place_file.xml_scaffold_structure_collapse.dir)
- deletion(f.place_file.info.dir)
- deletion(f.place_file.manpage.dir)
- deletion(f.place_file.sqlite_discrete.dir)
- deletion(f.place_file.txt.dir)
- deletion(f.place_file.hash_digest.dir)
- deletion(f.place_file.manifest.dir)
- deletion(f.place_file.qrcode_md.dir)
- deletion(f.place_file.qrcode_title.dir)
- deletion(f.place_file.src.dir)
- deletion(f.place_file.sisupod.dir)
- end
- self
- end
+ class CleanOutput < SiSU_Clean_Output::CleanOutput # se_cleanoutput.rb
end
- class InfoRemoteHost
- def initialize
- @rc=GetInit.new.sisu_yaml.rc
- end
- def remote_host #see InfoRemote remote_host_base_general
- r=[]
- r=if (defined? @rc['remote'] \
- and @rc['remote'].is_a?(Array))
- r_array=@rc['remote']
- r_array.each_with_index do |renv,i|
- r[i]={}
- if defined? renv['user'] \
- and defined? renv['host']
- end
- r[i][:user]=renv['user']
- r[i][:host]=renv['host']
- r[i][:path]=if defined? renv['path']
- renv['path']
- else ''
- end
- r[i][:name]="#{r[i][:user]}@#{r[i][:host]}:#{r[i][:path]}"
- end
- r
- elsif (defined? @rc['remote'] \
- and @rc['remote'].is_a?(Hash) \
- and defined? @rc['remote']['user'] \
- and defined? @rc['remote']['host'])
- r[0]={}
- r[0][:user]=@rc['remote']['user']
- r[0][:host]=@rc['remote']['host']
- r[0][:path]=if defined? @rc['remote']['path']
- @rc['remote']['path']
- else ''
- end
- r[0][:name]="#{r[0][:user]}@#{r[0][:host]}:#{r[0][:path]}"
- r
- else
- r[0]={}
- r[0][:name]='.'
- r[0][:user]=''
- r[0][:host]=''
- r[0][:path]=''
- #puts "no remote host or user"
- r
- end
- end
- def rhost
- def r1
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[0][:name]) \
- ? (SiSU_Env::InfoRemoteHost.new.remote_host[0][:name])
- : nil
- end
- def r2
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[1][:name]) \
- ? (SiSU_Env::InfoRemoteHost.new.remote_host[1][:name])
- : nil
- end
- def r3
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[2][:name]) \
- ? (SiSU_Env::InfoRemoteHost.new.remote_host[2][:name])
- : nil
- end
- def r4
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[3][:name]) \
- ? (SiSU_Env::InfoRemoteHost.new.remote_host[3][:name])
- : nil
- end
- def r5
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[4][:name]) \
- ? (SiSU_Env::InfoRemoteHost.new.remote_host[4][:name])
- : nil
- end
- def r6
- (defined? SiSU_Env::InfoRemoteHost.new.remote_host[5][:name]) \
- ? (@ls + SiSU_Env::InfoRemoteHost.new.remote_host[5][:name])
- : nil
- end
- self
- end
+ class InfoRemoteHost < SiSU_Info_Remote_Host::InfoRemoteHost # se_remotes.rb
end
- class InfoRemote < FileMap
- @@flag_remote=false
- begin
- require 'socket'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('socket NOT FOUND (LoadError)')
- end
- def initialize(opt)
- super(opt) #
- @opt=opt
- @rc=GetInit.new.sisu_yaml.rc
- end
- def remote_host_base_general
- SiSU_Env::InfoRemoteHost.new.remote_host
- end
- def remote_host_base
- remote_host_base_general.each do |remote_conn|
- @@flag_remote=true if remote_conn[:name] =~/\S+?@\S+/
- end
- remote_host_base_general
- end
- def scp #sort out later using ruby libraries #not ideal, first time each file is sent, -r must be called separately for subdir to be built
- def document
- self.remote_host_base.each do |remote_conn|
- local_gen=@source_path
- remote_gen=case @opt.cmd
- when /u/ then "#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/." #creates remote directory tree, this is not the usual function of u
- when /[abhHNopwxXy]/ then "#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/#{@fnb}/."
- else "#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- end
- local_epub=@source_path_epub
- local_src=@source_path_src
- local_pod=@source_path_pod
- remote_epub="#{remote_conn[:name]}/#{@env.path.stub_epub}/."
- remote_src="#{remote_conn[:name]}/#{@env.path.stub_src}/."
- remote_pod="#{remote_conn[:name]}/#{@env.path.stub_pod}/."
- src_txt=@opt.fnc
- src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.txz')
- if (local_gen =~/\S/ \
- and local_gen !~/\/\//) \
- and (remote_gen =~/\S/ \
- and remote_gen !~/\/\//) \
- and @@flag_remote==true \
- and @opt.cmd !~/U/
- SiSU_Env::SystemCall.new(local_gen,remote_gen).scp
- if FileTest.file?("#{local_src}/#{src_txt}")
- SiSU_Env::SystemCall.new("#{local_src}/#{src_txt}",remote_src).scp
- end
- if FileTest.file?("#{local_pod}/#{src_pod}")
- SiSU_Env::SystemCall.new("#{local_src}/#{src_pod}",remote_pod).scp
- end
- if FileTest.file?("#{local_epub}/#{@opt.fnb}.epub")
- SiSU_Env::SystemCall.new("#{local_epub}/#{@opt.fnb}.epub",remote_epub,@opt.cmd).scp
- end
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "#{local_gen} -> #{remote_gen}"
- if FileTest.file?("#{local_src}/#{src_doc}")
- puts "#{local_src}/#{src_doc}* -> #{remote_src}"
- end
- if FileTest.file?("#{local_pod}/#{src_doc}.txz")
- puts "#{local_pod}/#{src_doc}* -> #{remote_pod}"
- end
- else
- puts 'suspect scp request, ignored'
- puts "#{local_gen} -> #{remote_gen} remote flag: #{@@flag_remote}"
- puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- def site_base #base site
- self.remote_host_base.each do |remote_conn|
- local=@source_path
- remote="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- if defined? @rc['permission_set']['remote_base_site'] \
- and @rc['permission_set']['remote_base_site'] \
- and @@flag_remote==true \
- and @opt.cmd !~/U/
- puts "begin scp_base: #{local} -> #{remote}"
- SiSU_Env::SystemCall.new("#{local}/#{@env.path.style}/",remote).scp
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "begin scp_base: #{local} -> #{remote}"
- puts "#{local}/#{@env.path.style}/ -> #{remote}"
- else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- def site_base_all #base site
- self.remote_host_base.each do |remote_conn|
- local=@source_path
- remote="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- if defined? @rc['permission_set']['remote_base_site'] \
- and @rc['permission_set']['remote_base_site'] \
- and @@flag_remote==true \
- and @opt.cmd !~/U/
- puts "begin scp_base_all: #{local} -> #{remote}"
- SiSU_Env::SystemCall.new("#{local}/_sisu/image_sys/",remote).scp
- SiSU_Env::SystemCall.new("#{local}/_sisu/image/",remote).scp
- SiSU_Env::SystemCall.new("#{local}/#{@env.path.style}/",remote).scp
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "scp_base_all: #{local} -> #{remote}"
- puts "#{local}/_sisu/image_sys/ -> #{remote}"
- puts "#{local}/_sisu/image/ -> #{remote}"
- puts "#{local}/#{@env.path.style}/ -> #{remote}"
- else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- self
- end
- def rsync
- def document
- f=(@opt.act[:ao][:set]==:on) \
- ? SiSU_Env::FileOp.new(@md)
- : nil
- if f
- self.remote_host_base.each do |remote_conn|
- local_gen=@source_path
- #local_gen_image="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image"
- #local_gen_image_external="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image_external"
- remote_gen="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- remote_rel=remote_conn[:name] + '/' + f.output_path.stub.rcp
- @opt.fnc
- if (local_gen =~/\S/ \
- and local_gen !~/\/\//) \
- and (remote_gen =~/\S/ \
- and remote_gen !~/\/\//) \
- and @@flag_remote==true \
- and @opt.cmd !~/U/
-# SiSU_Env::SystemCall.new("#{local_src}/#{src_txt}",remote_src,@opt.cmd).rsync
- #delete_extra_files='--delete' # '--delete-after'
- inp=[]
- if (@opt.act[:html][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.html_scroll.dir)
- inp << f.output_path.html_seg.rel << f.place_file.html_scroll.rel
- end
- if (@opt.act[:concordance][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.html_concordance.dir)
- inp << f.place_file.html_concordance.rel
- end
- if (@opt.act[:epub][:set]==:on \
- || @opt.cmd =~/^-R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.epub.dir)
- inp << f.place_file.epub.rel
- end
- if (@opt.act[:odt][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.odt.dir)
- inp << f.place_file.odt.rel
- end
- if (@opt.act[:xhtml][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.xhtml.dir)
- inp << f.place_file.xhtml.rel
- end
- if (@opt.act[:xml_sax][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.xml_sax.dir)
- inp << f.place_file.xml_sax.rel
- end
- if (@opt.act[:xml_dom][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.xml_dom.dir)
- inp << f.place_file.xml_dom.rel
- end
- if (@opt.act[:xml_scaffold_structure_sisu][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.xml_scaffold_structure_sisu.dir)
- inp << f.place_file.xml_scaffold_structure_sisu.rel
- end
- if (@opt.act[:xml_scaffold_structure_collapse][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.xml_scaffold_structure_collapse.dir)
- inp << f.place_file.xml_scaffold_structure_collapse.rel
- end
- if (@opt.act[:txt][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.txt.dir)
- inp << f.place_file.txt.rel
- end
- if (@opt.act[:manpage][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*i[mqvVM]*$/) \
- && FileTest.file?(f.place_file.manpage.dir)
- inp << f.place_file.manpage.rel
- end
- if (@opt.act[:texinfo][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*I[mqvVM]*$/) \
- && FileTest.file?(f.place_file.info.dir)
- inp << f.place_file.info.rel
- end
- if (@opt.act[:hash_digests][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.hash_digest.dir)
- inp << f.place_file.hash_digest.rel
- end
- if (@opt.act[:share_source][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.src.dir)
- inp << f.place_file.src.rel
- end
- if (@opt.act[:sisupod][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.sisupod.dir)
- inp << f.place_file.sisupod.rel
- end
- if (@opt.act[:pdf][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/)
- inp <<=(@opt.dir_structure_by == :filename) \
- ? (f.output_path.pdf.rel + '/*.pdf')
- : (f.output_path.pdf.rel + '/' + @opt.fnb + '*.pdf')
- end
- if (@opt.act[:sqlite_discrete][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.sqlite_discrete.dir)
- inp << f.place_file.sqlite_discrete.rel
- end
- if (@opt.act[:qrcode][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.qrcode_md.dir)
- inp << f.place_file.qrcode_md.rel << f.place_file.qrcode_title.rel
- end
- if (@opt.act[:manifest][:set]==:on \
- || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \
- && FileTest.file?(f.place_file.manifest.dir)
- inp << f.place_file.manifest.rel
- end
- local_gen=if inp.length > 0
- inp.join(' ')
- else ''
- end
- local_css,images,images_system='','',''
- images=images_skin=images_system=local_css=''
- if @opt.cmd =~/[hwbxX]/ \
- && (defined? @md.ec[:image]) \
- && (@md.ec[:image].length > 0)
- images=f.place_file.images.rel + '/' + @md.ec[:image].join(" #{f.output_path.images.rel}/")
- end
- if @opt.cmd =~/[yhwbxX]/ \
- && (defined? @md.ec[:image]) \
- && (@md.ec[:image].length > 0)
- local_css=f.output_path.css.rel
- images_system='_sisu/image_sys'
- end
- begin
- ##create file structure without copying files?:
- ##rsync -av -f"+ */" -f"- *" f.output_path.base.dir remote:./path/.
- #local_dirs=%{-f"+ */" -f"- *" #{f.output_path.base.dir}/*}
- #SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync
- local=local_gen + ' ' + images + ' ' + images_skin + ' ' + images_system + ' ' + local_css
- SiSU_Env::SystemCall.new(local,remote_rel,@opt.cmd).rsync('--relative',f.output_path.base.dir)
- rescue
- p __LINE__.to_s + ':' + __FILE__
- local_dirs=%{--include='*/' --exclude='*' #{f.output_path.base.dir}}
- SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync
- end
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "#{local_gen} -> #{remote_gen}"
- if FileTest.file?("#{local_src}/#{src_doc}") \
- or FileTest.file?("#{local_src}/#{src_doc}.txz")
- puts "#{local_src}/#{src_doc}* -> #{remote_src}"
- end
- else
- puts 'suspect rsync request, ignored'
- puts "#{local_gen} -> #{remote_gen} remote flag: #{@@flag_remote}"
- puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- end
- def site_harvest
- self.remote_host_base.each do |remote_conn|
- local=@source_path_harvest
- l_rel="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}"
- lng='en'
- if @env.output_dir_structure.by? == :language
- ldest="#{lng}/manifest"
- files="#{ldest}/authors.html #{ldest}/topics.html"
- elsif @env.output_dir_structure.by? == :filetype
- ldest="manifest"
- files="#{ldest}/authors.#{lng}.html #{ldest}/topics.#{lng}.html"
- elsif @env.output_dir_structure.by? == :filename
- files="#{l_rel}/authors.#{lng}.html #{l_rel}/topics.#{lng}.html"
- end
- remote="#{remote_conn[:name]}/#{@opt.base_stub}"
- if @opt.act[:harvest][:set] \
- && @opt.act[:rsync][:set]
- (@env.output_dir_structure.by? == :filename) \
- ? (SiSU_Env::SystemCall.new(files,remote).rsync)
- : (SiSU_Env::SystemCall.new(ldest,remote).rsync('--relative',l_rel))
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "rsync_harvest: #{local} -> #{remote}"
- else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- def site_base #base site
- ldest='_sisu/*'
- l_rel="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}"
- image_sys="#{@env.path.webserv}/_sisu/image_sys"
- self.remote_host_base.each do |remote_conn|
- remote="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}"
- remote_conf="#{remote_conn[:name]}/_sisu"
- SiSU_Env::SystemCall.new(image_sys,remote_conf).rsync
- SiSU_Env::SystemCall.new(ldest,remote).rsync('--relative',l_rel)
- end
- end
- def site_base_sync
- self.remote_host_base.each do |remote_conn|
- local=@source_path
- remote="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- if defined? @rc['permission_set']['remote_base_site'] \
- and @rc['permission_set']['remote_base_site'] \
- and @@flag_remote==true \
- and @opt.cmd !~/U/
- delete_extra_files='--delete' # '--delete-after'
- puts "begin rsync_base_sync: #{local} -> #{remote}"
- SiSU_Env::SystemCall.new("#{local}/_sisu/image_sys/",remote).rsync(delete_extra_files)
- SiSU_Env::SystemCall.new("#{local}/_sisu/image/",remote).rsync(delete_extra_files)
- SiSU_Env::SystemCall.new("#{local}/#{@env.path.style}/",remote).rsync(delete_extra_files)
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "rsync_base_sync: #{local} -> #{remote}"
- puts "#{local}/_sisu/image_sys/ -> #{remote}"
- puts "#{local}/_sisu/image/ -> #{remote}"
- puts "#{local}/#{@env.path.style}/ -> #{remote}"
- else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
- self
- end
- def rsync_sitemaps #sitemap directory
- self.remote_host_base.each do |remote_conn|
- local="#{@source_path}/sitemapindex.xml"
- remote="#{remote_conn[:name]}/#{@env.path.base_markup_dir_stub}/."
- if @@flag_remote
- delete_extra_files='--delete' # '--delete-after'
- SiSU_Env::SystemCall.new(local,remote).rsync(delete_extra_files)
- elsif @opt.cmd =~/U/
- puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- puts "rsync_sitemaps: #{local} -> #{remote}"
- else puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/
- end
- end
- end
+ class InfoRemote < SiSU_Info_Remote::InfoRemote # se_remotes.rb
end
- class InfoVersion <InfoEnv
- include Singleton
- begin
- require 'rbconfig'
- require 'yaml'
- rescue LoadError
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('rbconfig or yaml NOT FOUND (LoadError)')
- end
- @@lib_path=nil
- def get_version
- @version={}
- @pwd=ENV['PWD']
- lib_path=@@lib_path ? @@lib_path : `echo $RUBYLIB`.split(':')
- @@lib_path ||=lib_path
- if File.exist?(SiSU_is[:version_info_path])
- @version=YAML::load(File::open(SiSU_is[:version_info_path])) #unless @@noyaml
- end
- @version[:install_method]=if SiSU_is[:run_from]==:gem_install
- spec = Gem::Specification.find_by_name("sisu")
- gem_root = spec.gem_dir
- (File.dirname(__FILE__.gsub(/\/lib\/sisu\/#{SiSU_is[:version_dir]}/,'')) == gem_root) \
- ? ' (ruby gem install)' : ''
- else ''
- end
- @version
- end
- def rbversion
- %x{ruby -v}.strip
- end
+ class InfoVersion < SiSU_Info_Version::InfoVersion # se_version.rb
end
- class InfoAbout
- def initialize(color='')
- @color=color
- end
- def sisu_version
- version=SiSU_Env::InfoVersion.instance.get_version
- rb_ver=SiSU_Env::InfoVersion.instance.rbversion
- if version[:version]
- opt_cmd=if defined? @color.cmd \
- and @color.cmd =~/[ck]/
- @color.cmd
- else '-v'
- end
- SiSU_Screen::Ansi.new(opt_cmd,version[:project],version[:version],version[:date_stamp],version[:date],version[:install_method],rb_ver).version
- else puts 'SiSU (version information not available)'
- end
- end
- def sisu_about
- puts <<-WOK
- sisu: documents; markup, structuring, publishing in multiple standard formats, & search
- most (not all) useful commands (are made in a directory containing a sisu markup file &) take the form:
- sisu [action(s)] [filename(s)]
- where filename refers to a valid sisu marked up file, e.g.:
- cd /usr/share/doc/sisu/markup-samples/sisu_manual
- sisu --html --verbose sisu_commands.sst
- sisu --txt --html --epub --odt --pdf --sqlite --manpage --texinfo --concordance --qrcode --verbose sisu.ssm
- cd -
- See output produced, or see man pages: man sisu
- <http://www.sisudoc.org/> <http://www.jus.uio.no/sisu/>
- WOK
- end
+ class InfoAbout < SiSU_Info_About::InfoAbout # se_version.rb
end
- class InfoFile <InfoEnv #todo unify with FileOp
- def initialize(fns)
- begin
- super(fns)
- @fns=fns
- @env=SiSU_Env::InfoEnv.new(@fns)
- m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm)$/ #watch added match for sss
- @fnn,@fnb,@fnt=@fns[m,1],@fns[m,2],@fns[m,3]
- rescue
- SiSU_Screen::Ansi.new('',$!,$@).rescue do
- __LINE__.to_s + ':' + __FILE__
- end
- ensure
- end
- end
- def basefilename #Remove if possible
- m=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/m
- @fns[m,1]
- end
- def make_file(path,filename)
- (File.writable?("#{path}/.")) \
- ? File.new("#{path}/#{filename}",'w+')
- : (SiSU_Screen::Ansi.new('',"*WARN* is the file or directory writable?, could not create #{filename}").warn)
- end
- def touch_file(path,filename)
- if File.writable?("#{path}/.");
- FileUtils::touch("#{path}/#{filename}")
- else SiSU_Screen::Ansi.new('',"*WARN* is the file or directory writable?, could not create #{filename}").warn
- end
- end
- def make_path(path)
- FileUtils::mkdir_p(path) unless FileTest.directory?(path)
- end
- def marshal
- def ao_content
- "#{@env.processing_path.ao}/#{@fns}.content.rbm"
- end
- def ao_idx_sst_rel_html_seg
- "#{@env.processing_path.ao}/#{@fns}.idx_sst.rbm"
- end
- def ao_idx_sst_rel #used by tex & odf
- "#{@env.processing_path.ao}/#{@fns}.idx_raw.rbm"
- end
- def ao_idx_html
- "#{@env.processing_path.ao}/#{@fns}.idx_html.rbm"
- end
- def ao_idx_xhtml
- "#{@env.processing_path.ao}/#{@fns}.idx_xhtml.rbm"
- end
- def ao_metadata
- "#{@env.processing_path.ao}/#{@fns}.metadata.rbm"
- end
- def ao_map_nametags
- "#{@env.processing_path.ao}/#{@fns}.map_name_tags.rbm"
- end
- def ao_map_ocn_htmlseg
- "#{@env.processing_path.ao}/#{@fns}.map_ocn_htmlseg.rbm"
- end
- def html_tune
- "#{@env.processing_path.tune}/#{@fns}.marshal_tune"
- end
- self
- end
- def write_file_processing
- def html_tune
- File.new("#{@env.processing_path.tune}/#{@fns}.tune",'w+')
- end
- self
- end
- def mkdir #check moved from FileOp, existing mkdir
- def processing
- def ao
- FileUtils::mkdir_p(@env.processing_path.ao) unless FileTest.directory?(@env.processing_path.ao)
- end
- def tune
- FileUtils::mkdir_p(@env.processing_path.tune) unless FileTest.directory?(@env.processing_path.tune)
- end
- self
- end
- end
+ class InfoFile < SiSU_Info_File::InfoFile # se_file_op.rb
end
- class ProcessingSettings
- def initialize(md)
- @md=md
- end
- def cnf_rc #sisurc.yml
- @rc=SiSU_Env::GetInit.new.sisu_yaml.rc
- end
- def env_rc #env rc (including sisurc.yml)
- @env_rc ||=SiSU_Env::InfoEnv.new(@md.fns)
- end
- def doc_rc #document rc, make instructions
- (defined? @md.make) \
- ? @md.make
- : nil
- end
- def cmd_rc_act #command-line rc
- @cmd_rc_act=@md.opt.opt_act
- end
- def build
- def ocn?
- if cmd_rc_act[:ocn][:set]==:on
- true
- elsif cmd_rc_act[:ocn][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.ocn? \
- and doc_rc.toc? ==:off
- false
- elsif env_rc.build.ocn? ==:off
- false
- else
- true
- end
- end
- def plaintext_ocn?
- if cmd_rc_act[:txt_ocn][:set]==:on \
- or cmd_rc_act[:ocn][:set]==:on
- true
- elsif cmd_rc_act[:txt_ocn][:set]==:off \
- or cmd_rc_act[:ocn][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.ocn? \
- and doc_rc.toc? ==:off
- false
- elsif env_rc.build.ocn? ==:off
- false
- else
- true
- end
- end
- def odt_ocn?
- if cmd_rc_act[:odt_ocn][:set]==:on \
- or cmd_rc_act[:ocn][:set]==:on
- true
- elsif cmd_rc_act[:odt_ocn][:set]==:off \
- or cmd_rc_act[:ocn][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.ocn? \
- and doc_rc.toc? ==:off
- false
- elsif env_rc.build.ocn? ==:off
- false
- else
- true
- end
- end
- def html_strict?
- if cmd_rc_act[:html_strict][:set]==:on
- true
- elsif cmd_rc_act[:html_strict][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_strict? \
- and doc_rc.html_strict? ==:on
- true
- else
- false
- end
- end
- def toc?
- if cmd_rc_act[:toc][:set]==:on
- true
- elsif cmd_rc_act[:toc][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.toc? \
- and doc_rc.toc? ==:off
- false
- elsif env_rc.build.toc? ==:off
- false
- else
- true
- end
- end
- def manifest?
- if cmd_rc_act[:manifest][:set]==:on
- true
- elsif cmd_rc_act[:manifest][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.manifest? \
- and doc_rc.manifest? ==:off
- false
- elsif env_rc.build.manifest? ==:off
- false
- else
- true
- end
- end
- def links_to_manifest?
- if cmd_rc_act[:links_to_manifest][:set]==:on
- true
- elsif cmd_rc_act[:links_to_manifest][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.links_to_manifest? \
- and doc_rc.links_to_manifest? ==:off
- false
- elsif env_rc.build.links_to_manifest? ==:off
- false
- else
- true
- end
- end
- def metadata?
- if cmd_rc_act[:metadata][:set]==:on
- true
- elsif cmd_rc_act[:metadata][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.metadata? \
- and doc_rc.metadata? ==:off
- false
- elsif env_rc.build.metadata? ==:off
- false
- else
- true
- end
- end
- def minitoc?
- if html_top_band? == false #one form of navigation necessary
- true
- elsif cmd_rc_act[:minitoc][:set]==:on
- true
- elsif cmd_rc_act[:minitoc][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.minitoc? \
- and doc_rc.minitoc? ==:off
- false
- elsif env_rc.build.minitoc? ==:off
- false
- else
- true
- end
- end
- def manifest_minitoc?
- if html_top_band? == false #one form of navigation necessary
- true
- elsif cmd_rc_act[:manifest_minitoc][:set]==:on \
- || cmd_rc_act[:minitoc][:set]==:on
- true
- elsif cmd_rc_act[:manifest_minitoc][:set]==:off \
- || cmd_rc_act[:minitoc][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.manifest_minitoc? \
- and (doc_rc.manifest_minitoc? ==:off \
- || doc_rc.minitoc? ==:off)
- false
- elsif env_rc.build.manifest_minitoc? ==:off \
- || env_rc.build.minitoc? ==:off
- false
- elsif minitoc? == false
- false
- else
- true
- end
- end
- def html_minitoc?
- if html_top_band? == false #one form of navigation necessary
- true
- elsif cmd_rc_act[:html_minitoc][:set]==:on \
- || cmd_rc_act[:minitoc][:set]==:on
- true
- elsif cmd_rc_act[:html_minitoc][:set]==:off \
- || cmd_rc_act[:minitoc][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_minitoc? \
- and (doc_rc.html_minitoc? ==:off \
- || doc_rc.minitoc? ==:off)
- false
- elsif env_rc.build.html_minitoc? ==:off \
- || env_rc.build.minitoc? ==:off
- false
- elsif minitoc? == false
- false
- else
- true
- end
- end
- def html_top_band?
- if cmd_rc_act[:html_top_band][:set]==:on
- true
- elsif cmd_rc_act[:html_top_band][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_top_band? \
- and doc_rc.html_top_band? ==:off
- false
- elsif env_rc.build.html_top_band? ==:off
- false
- else
- true
- end
- end
- def html_navigation?
- if cmd_rc_act[:html_navigation][:set]==:on
- true
- elsif cmd_rc_act[:html_navigation][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_navigation? \
- and doc_rc.html_navigation? ==:off
- false
- elsif env_rc.build.html_navigation? ==:off
- false
- else
- true
- end
- end
- def html_navigation_bar?
- if cmd_rc_act[:html_navigation_bar][:set]==:on
- true
- elsif cmd_rc_act[:html_navigation_bar][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_navigation_bar? \
- and doc_rc.html_navigation_bar? ==:off
- false
- elsif env_rc.build.html_navigation_bar? ==:off
- false
- else
- true
- end
- end
- def search_form?
- if cmd_rc_act[:search_form][:set]==:on
- true
- elsif cmd_rc_act[:search_form][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_search_form? \
- and doc_rc.search_form? ==:off
- false
- elsif env_rc.build.search_form? ==:off
- false
- else
- true
- end
- end
- def html_search_form?
- if cmd_rc_act[:html_search_form][:set]==:on \
- || cmd_rc_act[:search_form][:set]==:on
- true
- elsif cmd_rc_act[:html_search_form][:set]==:off \
- || cmd_rc_act[:search_form][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_search_form? \
- and (doc_rc.html_search_form? ==:off \
- || doc_rc.search_form? ==:off)
- false
- elsif env_rc.build.html_search_form? ==:off \
- || env_rc.build.search_form? ==:off
- false
- elsif search_form? == false
- false
- else
- true
- end
- end
- def html_right_pane?
- if cmd_rc_act[:html_right_pane][:set]==:on
- true
- elsif cmd_rc_act[:html_right_pane][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.html_right_pane? \
- and doc_rc.html_right_pane? ==:off
- false
- elsif env_rc.build.html_right_pane? ==:off
- false
- else
- true
- end
- end
- def segsubtoc?
- if cmd_rc_act[:segsubtoc][:set]==:on
- true
- elsif cmd_rc_act[:segsubtoc][:set]==:off
- false
- elsif doc_rc.is_a?(Method) \
- and defined? doc_rc.segsubtoc? \
- and doc_rc.segsubtoc? ==:off
- false
- elsif env_rc.build.segsubtoc? ==:off
- false
- else
- true
- end
- end
- self
- end
- def ocn_html_identifier
- (build.html_strict?) \
- ? Mx[:ocn_id_char]
- : ''
- end
- def output_dir_structure
- def by_language_code?
- if cmd_rc_act[:output_by][:set] == :language
- true
- elsif cmd_rc_act[:output_by][:set] == :filetype \
- or cmd_rc_act[:output_by][:set] == :filename
- false
- elsif cmd_rc_act[:output_by][:set] == :language
- true
- else
- env_rc.output_dir_structure.by_language_code?
- end
- end
- def by_filetype?
- if cmd_rc_act[:output_by][:set] == :filetype
- true
- elsif cmd_rc_act[:output_by][:set] == :language \
- or cmd_rc_act[:output_by][:set] == :filename
- false
- elsif cmd_rc_act[:output_by][:set] == :filetype
- true
- else
- env_rc.output_dir_structure.by_filetype?
- end
- end
- def by_filename?
- if cmd_rc_act[:output_by][:set] == :filename
- true
- elsif cmd_rc_act[:output_by][:set] == :language \
- or cmd_rc_act[:output_by][:set] == :filetype
- false
- elsif cmd_rc_act[:output_by][:set] == :filename
- true
- else
- env_rc.output_dir_structure.by_filename?
- end
- end
- def multilingual?
- by_language_code?
- end
- def dump?
- ((cmd_rc_act[:dump][:bool] \
- && cmd_rc_act[:dump][:inst]) \
- || (env_rc.output_dir_structure.dump?)) \
- ? true
- : false
- end
- def redirect?
- ((cmd_rc_act[:redirect][:bool] \
- && cmd_rc_act[:redirect][:inst]) \
- || (env_rc.output_dir_structure.redirect?)) \
- ? true
- : false
- end
- def dump_or_redirect?
- ((dump?) || (redirect?)) \
- ? true
- : false
- end
- def by?
- if dump?
- :dump
- elsif redirect?
- :redirect
- elsif by_language_code?
- :language
- elsif by_filetype?
- :filetype
- elsif by_filename?
- :filename
- else #recheck current default
- :language
- end
- end
- self
- end
+ class ProcessingSettings < SiSU_Processing_Settings::ProcessingSettings # se_processing.rb
end
- class InfoDb < InfoEnv
- @@rc=nil
- def initialize
- @@pwd=@pwd=SiSU_Utils::Path.new.base_markup
- @env=SiSU_Env::InfoEnv.new
- pt=Pathname.new(@pwd)
- r=Px[:lng_lst_rgx]
- u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/
- @pwd_stub=pt.realpath.to_s[u,1]
- @rc=@@rc ||=GetInit.new.sisu_yaml.rc
- @defaults=SiSU_Env::InfoEnv.new.defaults
- end
- def share_source?
- ((defined? @rc['db']['share_source']) \
- && @rc['db']['share_source']==true) \
- ? @rc['db']['share_source']
- : false
- end
- def engine
- def default
- ((defined? @rc['db']['engine']['default']) \
- && @rc['db']['engine']['default']=~/postgresql|sqlite/) \
- ? @rc['db']['engine']['default']
- : 'sqlite'
- end
- self
- end
- def psql
- def user(opt=nil)
- if opt \
- and opt.mod.inspect =~/--db-user[=-]["']?(\S+)["']+/
- $1
- elsif opt \
- and opt.mod =~/--webserv[=-]webrick/
- @env.user
- else
- ((defined? @rc['db']['postgresql']['user']) \
- && @rc['db']['postgresql']['user']=~/\S+/) \
- ? @rc['db']['postgresql']['user']
- : @env.user
- end
- end
- def db #db_name
- "#{Db[:name_prefix]}#{@pwd_stub}"
- end
- def port #PGPORT
- ((defined? @rc['db']['postgresql']['port']) \
- && ( @rc['db']['postgresql']['port'] =~/\d+/ \
- || @rc['db']['postgresql']['port'].is_a?(Fixnum))) \
- ? @rc['db']['postgresql']['port']
- : (@defaults[:postgresql_port])
- end
- def password
- ((defined? @rc['db']['postgresql']['password']) \
- && @rc['db']['postgresql']['password']=~/\S+/) \
- ? @rc['db']['postgresql']['password']
- : ''
- end
- def host
- ((defined? @rc['db']['postgresql']['host']) \
- && @rc['db']['postgresql']['host']=~/(?:\S{1,3}\.){3}\S{1,3}|\S+?\.\S+/) \
- ? @rc['db']['postgresql']['host']
- : ''
- end
- def dbi
- PG::Connection.open(:dbname => psql.db)
- end
- def dbi_
- (psql.host =~/(?:\S{1,3}\.){3}\S{1,3}|\S+?\.\S+/) \
- ? "DBI:Pg:database=#{psql.db};host=#{psql.host};port=#{psql.port}"
- : "DBI:Pg:database=#{psql.db};port=#{psql.port}"
- end
- def conn_dbi
- DBI.connect(psql.dbi,psql.user,psql.db)
- end
- def conn_pg
- require 'pg'
- PG::Connection.new(dbname: psql.db, port: psql.port)
- end
- self
- end
- def sqlite
- def db
- "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db"
- end
- def db_discrete(md)
- # "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db"
- end
- def dbi
- "DBI:SQLite3:#{sqlite.db}" #sqlite3 ?
- end
- def sqlite3
- sqlite.db #sqlite3 ?
- end
- def conn_dbi
- DBI.connect(sqlite.dbi)
- end
- def conn_sqlite3
- SQLite3::Database.new(sqlite.sqlite3)
- end
- self
- end
+ class InfoDb < SiSU_Info_Db::InfoDb # se_db.rb
end
- class DbOp <InfoDb
- def initialize(md)
- begin
- @md=md
- rescue
- SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do
- __LINE__.to_s + ':' + __FILE__
- end
- ensure
- end
- end
- def sqlite_discrete
- def db
- "#{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}"
- end
- def dbi
- "DBI:SQLite3:#{sqlite_discrete.db}"
- end
- def sqlite3
- sqlite_discrete.db
- end
- def conn_dbi
- DBI.connect(sqlite_discrete.dbi)
- end
- def conn_sqlite3
- begin
- $sqlite3=:yes
- require 'sqlite3'
- SQLite3::Database.new(sqlite_discrete.sqlite3)
- rescue LoadError
- $sqlite3=:no
- SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('sqlite3 NOT FOUND (LoadError)')
- end
- end
- self
- end
+ class DbOp < SiSU_Db_Op::DbOp # se_db.rb
end
- class FileOp <InfoFile #todo unify with CreateFile
- def initialize(md,fno='')
- begin
- @md,@fno=md,fno
- @env=SiSU_Env::InfoEnv.new(@md.fns)
- rescue
- SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do
- __LINE__.to_s + ':' + __FILE__
- end
- ensure
- end
- end
- def output_dir_structure
- ProcessingSettings.new(@md).output_dir_structure
- end
- def mkdir_initialize # not used but consider using
- FileUtils::mkdir_p(output_path.base.dir) unless FileTest.directory?(output_path.base.dir)
- FileUtils::mkdir_p("#{output_path.base.dir}/#{@md.fnb}") unless FileTest.directory?("#{output_path.base.dir}/#{@md.fnb}")
- FileUtils::mkdir_p("#{output_path.base.dir}/#{@env.path.style}") unless FileTest.directory?("#{output_path.base.dir}/#{@env.path.style}")
- FileUtils::mkdir_p(@env.processing_path.ao) unless FileTest.directory?(@env.processing_path.ao)
- FileUtils::mkdir_p(@env.processing_path.tune) unless FileTest.directory?(@env.processing_path.tune)
- end
- def path_rel_links
- def html_scroll_2
- if output_dir_structure.by_language_code?
- '../../'
- elsif output_dir_structure.by_filetype?
- '../'
- else
- '../'
- end
- end
- def html_seg_2
- if output_dir_structure.by_language_code?
- '../../../'
- elsif output_dir_structure.by_filetype?
- '../../'
- else
- '../'
- end
- end
- def html_scroll_1
- if output_dir_structure.by_language_code?
- '../'
- elsif output_dir_structure.by_filetype?
- '../'
- else
- './'
- end
- end
- def html_seg_1
- if output_dir_structure.by_language_code?
- '../../'
- elsif output_dir_structure.by_filetype?
- '../../'
- else
- './'
- end
- end
- def default_output_css
- if (@md.opt.opt_act[:dump][:bool] \
- && @md.opt.opt_act[:dump][:inst]) \
- || (@md.opt.opt_act[:redirect][:bool] \
- && @md.opt.opt_act[:redirect][:inst])
- './'
- elsif output_dir_structure.by_language_code?
- '../../'
- elsif output_dir_structure.by_filetype?
- '../'
- else
- '../'
- end
- end
- def html_scroll_css
- default_output_css
- end
- def xhtml_css
- default_output_css
- end
- def xml_css
- default_output_css
- end
- def html_seg_css
- if output_dir_structure.by_language_code?
- '../../../'
- elsif output_dir_structure.by_filetype?
- '../../'
- else
- '../'
- end
- end
- def manifest_css
- if output_dir_structure.by_language_code?
- '../../_sisu/css'
- elsif output_dir_structure.by_filetype?
- ''
- else
- '../'
- end
- end
- self
- end
- def mkdir
- def output
- def base
- FileUtils::mkdir_p(output_path.base.dir) unless FileTest.directory?(output_path.base.dir)
- end
- def css
- FileUtils::mkdir_p("#{output_path.base.dir}/#{@env.path.style}") unless FileTest.directory?("#{output_path.base.dir}/#{@env.path.style}")
- end
- def epub
- path=output_path.epub.dir
- make_path(path)
- end
- self
- end
- self
- end
- def mkfile #consider using more
- path="#{output_path.base.dir}/#{@md.fnb}"
- make_path(path)
- filename=@fno
- make_file(path,filename)
- end
- def mkfile_pwd
- path=Dir.pwd
- filename=@fno
- make_file(path,filename)
- end
- def write_file
- def txt
- path=output_path.txt.dir
- make_path(path)
- fn=base_filename.txt
- make_file(path,fn)
- end
- def textile
- path=output_path.textile.dir
- make_path(path)
- fn=base_filename.textile
- make_file(path,fn)
- end
- def asciidoc
- path=output_path.asciidoc.dir
- make_path(path)
- fn=base_filename.asciidoc
- make_file(path,fn)
- end
- def markdown
- path=output_path.markdown.dir
- make_path(path)
- fn=base_filename.markdown
- make_file(path,fn)
- end
- def rst
- path=output_path.rst.dir
- make_path(path)
- fn=base_filename.rst
- make_file(path,fn)
- end
- def html_scroll
- pth=output_path.html.dir
- make_path(pth)
- p_fn=place_file.html_scroll.dir
- @@filename_html_scroll=File.new(p_fn,'w+')
- end
- def html_seg_index
- pth=((output_dir_structure.by_filename?) \
- || (output_dir_structure.dump?)) \
- ? "#{output_path.html.dir}"
- : "#{output_path.html.dir}/#{@md.fnb}"
- make_path(pth)
- p_fn=place_file.html_seg_index.dir
- @@filename_html_index=File.new(p_fn,'w+')
- end
- def html_segtoc
- pth=((output_dir_structure.by_filename?) \
- || (output_dir_structure.dump?) \
- || (output_dir_structure.redirect?)) \
- ? "#{output_path.html.dir}"
- : "#{output_path.html.dir}/#{@md.fnb}"
- make_path(pth)
- p_fn=place_file.html_segtoc.dir
- @@filename_html_index=File.new(p_fn,'w+')
- end
- def xhtml
- path=output_path.xhtml.dir
- make_path(path)
- fn=base_filename.xhtml
- make_file(path,fn)
- end
- def xml_sax
- path=output_path.xml.dir
- make_path(path)
- fn=base_filename.xml_sax
- make_file(path,fn)
- end
- def xml_dom
- path=output_path.xml.dir
- make_path(path)
- fn=base_filename.xml_dom
- make_file(path,fn)
- end
- def xml_docbook_book
- path=output_path.xml_docbook_book.dir
- make_path(path)
- fn=base_filename.xml_docbook_book
- make_file(path,fn)
- end
- def xml_fictionbook
- path=output_path.xml_fictionbook.dir
- make_path(path)
- fn=base_filename.xml_fictionbook
- make_file(path,fn)
- end
- def xml_scaffold_structure_sisu
- path=output_path.xml_scaffold_structure_sisu.dir
- make_path(path)
- fn=base_filename.xml_scaffold_structure_sisu
- make_file(path,fn)
- end
- def xml_scaffold_structure_collapse
- path=output_path.xml_scaffold_structure_collapse.dir
- make_path(path)
- fn=base_filename.xml_scaffold_structure_collapse
- make_file(path,fn)
- end
- def manpage
- path=output_path.manpage.dir
- make_path(path)
- fn=base_filename.manpage
- make_file(path,fn)
- end
- def texinfo
- path=output_path.texinfo.dir
- make_path(path)
- fn=base_filename.texinfo
- make_file(path,fn)
- end
- def info
- path=output_path.texinfo.dir
- make_path(path)
- fn=base_filename.info
- make_file(path,fn)
- end
- def hash_digest
- path=output_path.hash_digest.dir
- make_path(path)
- fn=base_filename.hash_digest
- make_file(path,fn)
- end
- def qrcode
- path=output_path.qrcode.dir
- make_path(path)
- fn=base_filename.qrcode
- make_file(path,fn)
- end
- def manifest
- path=output_path.manifest.dir
- make_path(path)
- fn=base_filename.manifest
- make_file(path,fn)
- end
- def manifest_txt
- path=output_path.manifest.dir
- make_path(path)
- fn=base_filename.manifest_txt
- make_file(path,fn)
- end
- def pot
- path=output_path.pot.dir
- make_path(path)
- fn=base_filename.pot
- make_file(path,fn)
- end
- def po
- path=output_path.po.dir
- make_path(path)
- fn=base_filename.po
- make_file(path,fn)
- end
- self
- end
- def place_file
- def txt
- def dir
- output_path.txt.dir + '/' + base_filename.txt
- end
- def rel
- output_path.txt.rel + '/' + base_filename.txt
- end
- self
- end
- def textile
- def dir
- output_path.textile.dir + '/' + base_filename.textile
- end
- def rel
- output_path.textile.rel + '/' + base_filename.textile
- end
- self
- end
- def asciidoc
- def dir
- output_path.asciidoc.dir + '/' + base_filename.asciidoc
- end
- def rel
- output_path.asciidoc.rel + '/' + base_filename.asciidoc
- end
- self
- end
- def markdown
- def dir
- output_path.markdown.dir + '/' + base_filename.markdown
- end
- def rel
- output_path.markdown.rel + '/' + base_filename.markdown
- end
- self
- end
- def rst
- def dir
- output_path.rst.dir + '/' + base_filename.rst
- end
- def rel
- output_path.rst.rel + '/' + base_filename.rst
- end
- self
- end
- def html_scroll
- def dir
- output_path.html_scroll.dir + '/' + base_filename.html_scroll
- end
- def rel
- output_path.html_scroll.rel + '/' + base_filename.html_scroll
- end
- self
- end
- def html_seg_index
- def dir
- output_path.html_seg.dir + '/' + base_filename.html_seg_index
- end
- def rel
- output_path.html_seg.rel + '/' + base_filename.html_seg_index
- end
- self
- end
- def html_segtoc
- def dir
- output_path.html_seg.dir + '/' + base_filename.html_segtoc
- end
- def rel
- output_path.html_seg.rel + '/' + base_filename.html_segtoc
- end
- self
- end
- def html_book_index
- def dir
- output_path.html_seg.dir + '/' + base_filename.html_book_index
- end
- def rel
- output_path.html_seg.rel + '/' + base_filename.html_book_index
- end
- self
- end
- def html_concordance
- def dir
- output_path.html_seg.dir + '/' + base_filename.html_concordance
- end
- def rel
- output_path.html_seg.rel + '/' + base_filename.html_concordance
- end
- self
- end
- def odt
- def dir
- output_path.odt.dir + '/' + base_filename.odt
- end
- def rel
- output_path.odt.rel + '/' + base_filename.odt
- end
- self
- end
- def epub
- def dir
- output_path.epub.dir + '/' + base_filename.epub
- end
- def rel
- output_path.epub.rel + '/' + base_filename.epub
- end
- self
- end
- def pdf_p
- STDERR.puts 'ERROR not available due to multiple page format sizes'
- end
- def pdf_l
- STDERR.puts 'ERROR not available due to multiple page format sizes'
- end
- def xhtml
- def dir
- output_path.xhtml.dir + '/' + base_filename.xhtml
- end
- def rel
- output_path.xhtml.rel + '/' + base_filename.xhtml
- end
- self
- end
- def xml_sax
- def dir
- output_path.xml.dir + '/' + base_filename.xml_sax
- end
- def rel
- output_path.xml.rel + '/' + base_filename.xml_sax
- end
- self
- end
- def xml_dom
- def dir
- output_path.xml.dir + '/' + base_filename.xml_dom
- end
- def rel
- output_path.xml.rel + '/' + base_filename.xml_dom
- end
- self
- end
- def xml_docbook_book
- def dir
- output_path.xml_docbook.dir + '/' + base_filename.xml_docbook_book
- end
- def rel
- output_path.xml_docbook.rel + '/' + base_filename.xml_docbook_book
- end
- self
- end
- def xml_fictionbook
- def dir
- output_path.xml_fictionbook.dir + '/' + base_filename.xml_fictionbook
- end
- def rel
- output_path.xml_fictionbook.rel + '/' + base_filename.xml_fictionbook
- end
- self
- end
- def xml_scaffold_structure_sisu
- def dir
- output_path.xml.dir + '/' + base_filename.xml_scaffold_structure_sisu
- end
- def rel
- output_path.xml.rel + '/' + base_filename.xml_scaffold_structure_sisu
- end
- self
- end
- def xml_scaffold_structure_collapse
- def dir
- output_path.xml.dir + '/' + base_filename.xml_scaffold_structure_collapse
- end
- def rel
- output_path.xml.rel + '/' + base_filename.xml_scaffold_structure_collapse
- end
- self
- end
- def sqlite_discrete
- def dir
- output_path.sqlite_discrete.dir + '/' + base_filename.sqlite_discrete
- end
- def rel
- output_path.sqlite_discrete.rel + '/' + base_filename.sqlite_discrete
- end
- self
- end
- def hash_digest
- def dir
- output_path.hash_digest.dir + '/' + base_filename.hash_digest
- end
- def rel
- output_path.hash_digest.rel + '/' + base_filename.hash_digest
- end
- self
- end
- def src
- def dir
- output_path.src.dir + '/' + base_filename.src
- end
- def rel
- output_path.src.rel + '/' + base_filename.src
- end
- self
- end
- def sisupod
- def dir
- output_path.sisupod.dir + '/' + base_filename.sisupod
- end
- def rel
- output_path.sisupod.rel + '/' + base_filename.sisupod
- end
- self
- end
- def po
- def dir
- output_path.po.dir + '/' + base_filename.po
- end
- def rel
- output_path.po.rel + '/' + base_filename.po
- end
- self
- end
- def pot
- def dir
- output_path.pot.dir + '/' + base_filename.pot
- end
- def rel
- output_path.pot.rel + '/' + base_filename.pot
- end
- self
- end
- def po_git
- def dir
- output_path.po_git + '/' + base_filename.po
- end
- def rel
- #output_path.po_git + '/' + base_filename.po
- end
- self
- end
- def pot_git
- def dir
- output_path.pot_git + '/' + base_filename.pot
- end
- def rel
- #output_path.pot_git + '/' + base_filename.pot
- end
- self
- end
- def manpage
- def dir
- output_path.manpage.dir + '/' + base_filename.manpage
- end
- def rel
- output_path.manpage.rel + '/' + base_filename.manpage
- end
- self
- end
- def texinfo
- def dir
- output_path.texinfo.dir + '/' + base_filename.texinfo
- end
- def rel
- output_path.texinfo.rel + '/' + base_filename.texinfo
- end
- self
- end
- def info
- def dir
- output_path.texinfo.dir + '/' + base_filename.info
- end
- def rel
- output_path.texinfo.rel + '/' + base_filename.info
- end
- self
- end
- def qrcode_title
- def dir
- output_path.qrcode.dir + '/' + base_filename.qrcode_title
- end
- def rel
- output_path.qrcode.rel + '/' + base_filename.qrcode_title
- end
- self
- end
- def qrcode_md
- def dir
- output_path.qrcode.dir + '/' + base_filename.qrcode_md
- end
- def rel
- output_path.qrcode.rel + '/' + base_filename.qrcode_md
- end
- self
- end
- def manifest
- def dir
- output_path.manifest.dir + '/' + base_filename.manifest
- end
- def rel
- output_path.manifest.rel + '/' + base_filename.manifest
- end
- self
- end
- self
- end
- def base_filename
- def i18n(f)
- f=default_hash.merge(f)
- f[:lng] ||=@md.lang_code_insert
- f[:fn] + f[:lng] + f[:ft]
- end
- def default_hash
- {
- fn: @md.fnb,
- lng: @md.lang_code_insert,
- }
- end
- def default_hash_build(fh,sfx)
- if fh.is_a?(Hash)
- fh[:fn] ||=@md.fnb
- fh[:lng] ||= @md.lang_code_insert
- fh[:ft]=sfx
- fh
- else
- {
- fn: @md.fnb,
- lng: @md.lang_code_insert,
- ft: sfx,
- }
- end
- end
- def lang_code?(lng)
- (output_dir_structure.by_language_code?) \
- ? ''
- : (lng ||=@md.lang_code_insert)
- end
- def txt(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'plain',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def textile(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt_textile])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'plain',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def asciidoc(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt_asciidoc])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'plain',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def markdown(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt_markdown])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'plain',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def rst(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt_rst])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'plain',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def html_scroll(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def html_seg_index(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: 'index',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def html_segtoc(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fnh=if output_dir_structure.dump_or_redirect?
- {
- fn: fh[:fn] + '.toc',
- ft: fh[:ft],
- }
- else
- {
- fn: 'toc',
- ft: fh[:ft],
- lng: lang_code?(fh[:lng]),
- }
- end
- i18n(fnh)
- end
- def html_seg(fh)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def html_book_index(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: 'book_index',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def html_concordance(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.dump_or_redirect?
- {
- fn: 'concordance',
- ft: fh[:ft],
- }
- else
- {
- fn: 'concordance',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xhtml(fh=nil)
- fh=default_hash_build(fh,Sfx[:xhtml])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def epub(fh=nil)
- fh=default_hash_build(fh,Sfx[:epub])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def odt(fh=nil)
- fh=default_hash_build(fh,Sfx[:odt])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'opendocument',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_sax(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_sax])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_dom(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_dom])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_docbook_book(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_docbook_book])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_fictionbook(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_fictionbook])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_scaffold_structure_sisu(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_scaffold_structure_sisu])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def xml_scaffold_structure_collapse(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml_scaffold_structure_collapse])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'scroll',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def pdf_p(fh=nil)
- fh=default_hash_build(fh,Sfx[:pdf])
- fh[:lng]=lang_code?(fh[:lng])
- if output_dir_structure.by_filename?
- 'portrait' + fh[:lng] + '.'
- else
- fh[:fn] + '.portrait' + fh[:lng] + '.'
- end
- end
- def pdf_l(fh=nil)
- fh=default_hash_build(fh,Sfx[:pdf])
- fh[:lng]=lang_code?(fh[:lng])
- if output_dir_structure.by_filename?
- 'landscape' + fh[:lng] + '.'
- else
- fh[:fn] + '.landscape' + fh[:lng] + '.'
- end
- end
- def pdf_p_a4(fh=nil)
- pdf_p(fh) + @md.fn[:pdf_p_a4]
- end
- def pdf_p_a5(fh=nil)
- pdf_p(fh) + @md.fn[:pdf_p_a5]
- end
- def pdf_p_b5(fh=nil)
- pdf_p(fh) + @md.fn[:pdf_p_b5]
- end
- def pdf_p_letter(fh=nil)
- pdf_p(fh) + @md.fn[:pdf_p_letter]
- end
- def pdf_p_legal(fh=nil)
- pdf_p(fh) + @md.fn[:pdf_p_legal]
- end
- def pdf_l_a4(fh=nil)
- pdf_l(fh) + @md.fn[:pdf_l_a4]
- end
- def pdf_l_a5(fh=nil)
- pdf_l(fh) + @md.fn[:pdf_l_a5]
- end
- def pdf_l_b5(fh=nil)
- pdf_l(fh) + @md.fn[:pdf_l_b5]
- end
- def pdf_l_letter(fh=nil)
- pdf_l(fh) + @md.fn[:pdf_l_letter]
- end
- def pdf_l_legal(fh=nil)
- pdf_l(fh) + @md.fn[:pdf_l_legal]
- end
- def manpage(fh=nil)
- fh=default_hash_build(fh,Sfx[:manpage])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def info(fh=nil)
- fh=default_hash_build(fh,Sfx[:info])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def texinfo(fh=nil)
- fh=default_hash_build(fh,Sfx[:texinfo])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def sqlite_discrete(fh=nil)
- fh=default_hash_build(fh,Sfx[:sql])
- fh[:lng]=lang_code?(fh[:lng])
- fnh={
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- i18n(fnh)
- end
- def hash_digest(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_language_code?
- {
- fn: fh[:fn] + '.hash_digest',
- ft: fh[:ft],
- }
- elsif output_dir_structure.by_filetype?
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: 'digest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def sitemap(fh=nil)
- fh=default_hash_build(fh,Sfx[:xml])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_language_code?
- {
- fn: fh[:fn] + '.sitemap',
- ft: fh[:ft],
- }
- elsif output_dir_structure.by_filetype?
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: 'sitemap',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def qrcode_title(fh=nil)
- fh=default_hash_build(fh,'.title.png')
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'sisu_manifest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def qrcode_md #check name below
- fh=default_hash_build(fh,'.md.png')
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'sisu_manifest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def manifest_txt(fh=nil)
- fh=default_hash_build(fh,Sfx[:txt])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.by_filename?
- {
- fn: 'sisu_manifest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def manifest(fh=nil)
- fh=default_hash_build(fh,Sfx[:html])
- fh[:lng]=lang_code?(fh[:lng])
- fnh=if output_dir_structure.dump_or_redirect?
- {
- fn: fh[:fn] + '.manifest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- elsif output_dir_structure.by_filename?
- {
- fn: 'sisu_manifest',
- ft: fh[:ft],
- lng: fh[:lng],
- }
- else
- {
- fn: fh[:fn],
- ft: fh[:ft],
- lng: fh[:lng],
- }
- end
- i18n(fnh)
- end
- def src
- @md.fno
- end
- def po #check
- (@fno.empty?) \
- ? (@md.fn[:po])
- : (@fno + '.po')
- end
- def pot
- (@fno.empty?) \
- ? (@md.fn[:pot])
- : (@fno + '.pot')
- end
- def sisupod
- (@md.fns =~/\.ssm\.sst$/) \
- ? @md.fns.gsub(/(?:\~\S{2,3})?\.ssm\.sst$/,'.ssm.txz')
- : @md.fns.gsub(/(?:\~\S{2,3})?(\.sst)$/,'\1.txz')
- end
- self
- end
- def set_path(ft)
- @ft=ft
- def dir
- def abc
- if output_dir_structure.redirect?
- "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
- elsif output_dir_structure.dump?
- @md.opt.opt_act[:dump][:inst]
- elsif output_dir_structure.by_language_code?
- "#{output_path.base.dir}/#{@md.opt.lng}/#{@ft}"
- elsif output_dir_structure.by_filetype?
- "#{output_path.base.dir}/#{@ft}"
- else
- "#{output_path.base.dir}/#{@md.fnb}"
- end
- end
- def ab
- if output_dir_structure.redirect?
- "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
- elsif output_dir_structure.dump?
- @md.opt.opt_act[:dump][:inst]
- elsif output_dir_structure.by_language_code?
- "#{output_path.base.dir}/#{@md.opt.lng}/#{@ft}"
- else
- "#{output_path.base.dir}/#{@ft}"
- end
- end
- def ab_src
- if output_dir_structure.redirect?
- "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
- elsif output_dir_structure.dump?
- @md.opt.opt_act[:dump][:inst]
- else
- "#{output_path.base.dir}/#{@ft}/#{@md.opt.fng}/#{Gt[:sisupod]}/#{Gt[:doc]}/#{@md.opt.lng}"
- end
- end
- def ab_pod
- if output_dir_structure.redirect?
- "#{@md.opt.opt_act[:redirect][:inst]}/#{@md.fnb}"
- elsif output_dir_structure.dump?
- @md.opt.opt_act[:dump][:inst]
- else
- "#{output_path.base.dir}/#{@ft}"
- end
- end
- self
- end
- def url
- def abc
- if output_dir_structure.by_language_code?
- "#{output_path.base.url}/#{@md.opt.lng}/#{@ft}"
- elsif output_dir_structure.by_filetype?
- "#{output_path.base.url}/#{@ft}"
- else
- "#{output_path.base.url}/#{@md.fnb}"
- end
- end
- def ab
- if output_dir_structure.by_language_code?
- "#{output_path.base.url}/#{@md.opt.lng}/#{@ft}"
- else
- "#{output_path.base.url}/#{@ft}"
- end
- end
- def ab_src
- "#{output_path.base.url}/#{@ft}/#{@md.opt.fng}/#{Gt[:sisupod]}/#{Gt[:doc]}/#{@md.opt.lng}"
- end
- def ab_pod
- "#{output_path.base.url}/#{@ft}"
- end
- self
- end
- def rel
- def abc
- if output_dir_structure.by_language_code?
- "#{@md.opt.lng}/#{@ft}"
- elsif output_dir_structure.by_filetype?
- "#{@ft}"
- else
- "#{@md.fnb}"
- end
- end
- def ab
- if output_dir_structure.by_language_code?
- "#{@md.opt.lng}/#{@ft}"
- else
- "#{@ft}"
- end
- end
- def ab_src
- @ft
- end
- def ab_pod
- @ft
- end
- self
- end
- def rel_sm
- def abc
- if output_dir_structure.by_language_code?
- "#{@md.opt.lng}/#{@ft}"
- elsif output_dir_structure.by_filetype?
- "#{@ft}"
- else
- "#{@md.fnb}"
- end
- end
- def ab
- if output_dir_structure.dump_or_redirect?
- '.'
- elsif output_dir_structure.by_language_code? \
- or output_dir_structure.by_filetype?
- '../' + @ft
- else '.'
- end
- end
- def ab_src
- locate="#{@ft}/#{@md.opt.fng}/#{Gt[:sisupod]}/#{Gt[:doc]}/#{@md.opt.lng}"
- if output_dir_structure.dump_or_redirect?
- '.'
- elsif output_dir_structure.by_language_code?
- "../../#{locate}"
- else
- "../#{locate}"
- end
- end
- def ab_pod
- if output_dir_structure.dump_or_redirect?
- '.'
- elsif output_dir_structure.by_language_code?
- "../../#{@ft}"
- else
- "../#{@ft}"
- end
- end
- self
- end
- def rcp
- def abc
- if output_dir_structure.by_language_code?
- "#{output_path.stub.rcp}/#{@md.opt.lng}/#{@ft}"
- elsif output_dir_structure.by_filetype?
- "#{output_path.stub.rcp}/#{@ft}"
- else
- "#{output_path.stub.rcp}/#{@md.fnb}"
- end
- end
- def ab
- if output_dir_structure.by_language_code?
- "#{output_path.stub.rcp}/#{@md.opt.lng}/#{@ft}"
- else
- "#{output_path.stub.rcp}/#{@ft}"
- end
- end
- self
- end
- self
- end
- def output_path
- def web_base
- def dir
- @env.path.webserv
- end
- def url
- #"#{@env.url.root}"
- end
- def rel
- '.'
- end
- def rcp
- '.'
- end
- self
- end
- def stub
- def dir
- "#{@md.opt.f_pth[:pth_stub]}"
- end
- #def url
- # "#{@env.url.root}"
- #end
- def rel
- "./#{@md.opt.f_pth[:pth_stub]}"
- end
- def rcp
- "#{@md.opt.f_pth[:pth_stub]}"
- end
- self
- end
- def webserver_path
- if output_dir_structure.dump?
- @md.opt.opt_act[:dump][:inst]
- elsif output_dir_structure.redirect?
- @md.opt.opt_act[:redirect][:inst]
- else
- @env.path.webserv
- end
- end
- def base
- def dir
- "#{webserver_path}/#{@md.opt.f_pth[:pth_stub]}"
- end
- def url
- "#{@env.url.webserv}/#{@md.opt.f_pth[:pth_stub]}"
- end
- def rel
- "./#{@md.opt.f_pth[:pth_stub]}"
- end
- def rcp
- "./#{@md.opt.f_pth[:pth_stub]}"
- end
- self
- end
- def sisugit
- def dir
- "#{output_path.base.dir}/git"
- end
- def url
- "#{output_path.base.url}/git"
- end
- def rel
- "#{output_path.base.rel}/git"
- end
- def rcp
- "#{output_path.base.rcp}/git"
- end
- self
- end
- #def pod
- # ft='pod'
- # path=set_path(ft).dir.ab
- #end
- def src
- def ft
- Gt[:src]
- end
- def dir
- set_path(ft).dir.ab_src
- end
- def url
- set_path(ft).url.ab_src
- end
- def rel
- set_path(ft).rel.ab_src
- end
- def rcp
- set_path(ft).rcp.ab_src
- end
- def rel_sm
- set_path(ft).rel_sm.ab_src
- end
- self
- end
- def sisupod
- def ft
- Gt[:src]
- end
- def dir
- set_path(ft).dir.ab_pod
- end
- def url
- set_path(ft).url.ab_pod
- end
- def rel
- set_path(ft).rel.ab_pod
- end
- def rcp
- set_path(ft).rcp.ab_pod
- end
- def rel_sm
- set_path(ft).rel_sm.ab_pod
- end
- self
- end
- def po
- def dir
- "#{output_path.base.dir}/#{Gt[:src]}/#{@md.opt.fng}/po4a/po/#{@md.opt.lng}"
- end
- def url
- "#{output_path.base.url}/po4a/#{@md.fnb}/po/#{@md.opt.lng}"
- end
- self
- end
- def pot
- def dir
- "#{output_path.base.dir}/#{Gt[:src]}/#{@md.opt.fng}/po4a/pot"
- end
- def url
- "#{output_path.base.url}/po4a/#{@md.fnb}/pot"
- end
- def rcp
- #p "#{output_path.base.dir}/po4a/#{@md.fnb}/pot"
- end
- self
- end
- def po_git # consider !!!
- def ft
- Gt[:po]
- end
- def dir
- pth=@env.processing_path.git + '/' + @md.fnb + '/' + ft + '/' + @md.opt.lng
- FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- pth
- end
- self
- end
- def pot_git # consider !!!
- def ft
- Gt[:pot]
- end
- def dir
- @env.processing_path.git + '/' + @md.fnb + '/' + ft
- end
- self
- end
- def md_harvest
- manifest
- self
- end
- def txt
- def ft
- 'txt'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def textile
- def ft
- 'textile' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def asciidoc
- def ft
- 'asciidoc' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def markdown
- def ft
- 'markdown' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def rst
- def ft
- 'rst' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def html_scroll
- def ft
- 'html'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- if output_dir_structure.dump_or_redirect?
- './image'
- elsif output_dir_structure.by_language_code?
- '../../_sisu/image'
- elsif output_dir_structure.by_filetype?
- '../_sisu/image'
- else
- '../_sisu/image'
- end
- end
- self
- end
- def html_seg
- def ft
- "html/#{@md.fnb}"
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- if output_dir_structure.dump_or_redirect?
- './image'
- elsif output_dir_structure.by_language_code?
- '../../../_sisu/image'
- elsif output_dir_structure.by_filetype?
- '../../_sisu/image'
- else
- '../_sisu/image'
- end
- end
- self
- end
- def html_concordance
- html_seg
- self
- end
- def html
- def ft
- 'html'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).url.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- if output_dir_structure.by_language_code?
- '../../_sisu/image'
- elsif output_dir_structure.by_filetype?
- '../_sisu/image'
- else
- '../_sisu/image'
- end
- end
- self
- end
- def xhtml
- def ft
- 'xhtml'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def epub
- def ft
- 'epub'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- './image'
- end
- self
- end
- def odt
- def ft
- 'odt'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def xml
- def ft
- 'xml'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_sax
- xml
- self
- end
- def xml_dom
- xml
- self
- end
- def xml_docbook
- def ft
- 'docbook'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_docbook_article
- def ft
- 'docbook' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_docbook_book
- def ft
- 'docbook'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_fictionbook
- def ft
- 'fictionbook' + DEVELOPER[:under_construction]
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_scaffold_structure_sisu
- def ft
- 'sisu.scaffold.xml'
- #'xml'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def xml_scaffold_structure_collapse
- def ft
- 'collapsed.scaffold.xml'
- #'xml'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- def rel_image
- '../../_sisu/image'
- end
- self
- end
- def pdf
- def ft
- 'pdf'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def sqlite_discrete
- def ft
- 'sql'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def hash_digest
- def ft
- 'hashes'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def manifest
- def ft
- 'manifest'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rel_image
- if output_dir_structure.dump_or_redirect?
- './image'
- elsif output_dir_structure.by_language_code?
- '../../_sisu/image'
- elsif output_dir_structure.by_filetype?
- '../_sisu/image'
- else
- '../_sisu/image'
- end
- end
- def rcp
- set_path(ft).rcp.abc
- end
- self
- end
- def qrcode
- def ft
- 'manifest/qrcode'
- end
- def dir
- set_path(ft).dir.abc
- end
- def url
- set_path(ft).url.abc
- end
- def rel
- set_path(ft).rel.abc
- end
- def rcp
- set_path(ft).rcp.abc
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def harvest
- def ft
- 'site_metadata'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- def rel_sm
- if output_dir_structure.by_language_code?
- ''
- elsif output_dir_structure.by_filetype?
- ''
- else
- ''
- end
- end
- self
- end
- def manpage
- def ft
- 'man'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def texinfo
- def ft
- 'texinfo'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- def rel_sm
- set_path(ft).rel_sm.ab
- end
- self
- end
- def sitemaps
- def ft
- 'sitemaps'
- end
- def dir
- set_path(ft).dir.ab
- end
- def url
- set_path(ft).url.ab
- end
- def rel
- set_path(ft).rel.ab
- end
- def rcp
- set_path(ft).rcp.ab
- end
- self
- end
- def sqlite #check url
- def dir
- output_path.base.dir
- end
- def url
- output_path.base.url
- end
- def rel
- output_path.base.rel
- end
- def rcp
- output_path.base.rcp
- end
- self
- end
- #def cgi
- #end
- def css
- @d='_sisu/css'
- def dir
- output_path.base.dir + '/' + @d
- end
- def url
- output_path.base.url + '/' + @d
- end
- def rel
- @d
- #output_path.base.rel + '/' + @d
- end
- def rcp
- output_path.stub.rcp + '/' + @d
- end
- self
- end
- def images
- @d='_sisu/image'
- def dir
- output_path.base.dir + '/' + @d
- end
- def url
- output_path.base.url + '/' + @d
- end
- def rel
- @d
- #output_path.base.rel + '/' + @d
- end
- def rcp
- output_path.stub.rcp + '/' + @d
- end
- self
- end
- def images_external
- @d='_sisu/image_external'
- def dir
- output_path.base.dir + '/' + @d
- end
- def url
- output_path.base.url + '/' + @d
- end
- def rel
- output_path.base.rel + '/' + @d
- end
- def rcp
- output_path.base.rcp + '/' + @d
- end
- self
- end
- #def css
- # #"#{@env.path.output}/#{@env.path.style}"
- #end
- self
- end
+ class FileOp < SiSU_File_Op::FileOp # se_file_op.rb
end
- class FilenameLanguageCodeInsert
- def initialize(opt,lng=nil)
- @opt,@lng=opt,lng
- @opt=opt
- @lng=lng ||=@opt.lng
- end
- def language_code_insert
- if @opt.dir_structure_by ==:language \
- or ((@opt.dir_structure_by ==:filetype \
- || @opt.dir_structure_by ==:filename) \
- and (@opt.lingual ==:mono \
- && @lng == @opt.act[:default_language][:code]))
- ''
- elsif (@opt.dir_structure_by ==:filetype \
- || @opt.dir_structure_by ==:filename) \
- and not @opt.lingual ==:mono
- ".#{@lng}"
- else
- ".#{@lng}"
- end
- end
+ class FilenameLanguageCodeInsert < SiSU_Filename_Lang::FilenameLanguageCodeInsert # se_file_op.rb
end
- class CreateFile <InfoEnv #todo unify with FileOp
- def initialize(fns)
- begin
- super(fns)
- @env=SiSU_Env::InfoEnv.new(fns)
- rescue
- SiSU_Screen::Ansi.new('',$!,$@).rescue do
- __LINE__.to_s + ':' + __FILE__
- end
- ensure
- end
- end
- def html_root
- #@env.path.output
- end
- def mkdir_pdf
- Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex)
- end
- def file_generic(output_file='')
- filename="#{@env.path.output}/#{@fnb}/#{output_file}"
- File.new(filename,'w+')
- end
- def file_error
- File.new('/tmp/errorlog.sisu','w+')
- end
- def file_txt
- File.new("#{@env.processing_path.ao}/#{@fns}.txt",'w+')
- end
- def file_debug
- File.new("#{@env.processing_path.ao}/#{@fns}.debug.txt",'w+')
- end
- def metaverse
- def file_meta
- File.new("#{@env.processing_path.ao}/#{@fns}.meta",'w+')
- end
- def file_meta_idx_html
- File.new("#{@env.processing_path.ao}/#{@fns}.idx.html",'w+')
- end
- self
- end
- def file_note
- File.new("#{Dir.pwd}/#{@fns}.fn",'w+')
- end
- def meta
- "#{@env.processing_path.ao}/#{@fns}.meta"
- end
- def file_semantic
- filename_semantic="./semantic.yaml"
- @@filename_semantic=File.new(filename_semantic,'w+')
- end
- def file_rss
- filename_rss="./semantic.xml"
- @@filename_rss=File.new(filename_rss,'w+')
- end
- def epub
- @pth=@env.processing_path.epub
- def xhtml_index
- filename_index="#{@pth}/#{Ep[:d_oebps]}/index.xhtml"
- File.new(filename_index,'w+')
- end
- def xhtml_cover_image
- filename_index="#{@pth}/#{Ep[:d_oebps]}/cover_image.xhtml"
- File.new(filename_index,'w+')
- end
- def xhtml_segtoc
- filename_segtoc="#{@pth}/#{Ep[:d_oebps]}/toc.xhtml"
- File.new(filename_segtoc,'w+')
- end
- def mimetype #fixed application/epub+zip ~/grotto/theatre/dbld/builds/epub_sample/mimetype
- File.new("#{@pth}/mimetype",'w')
- end
- def metadata #variable matadata ~/grotto/theatre/dbld/builds/epub_sample/metadata.opf
- File.new("#{@pth}/#{Ep[:d_oebps]}/#{Ep[:f_opf]}",'w')
- end
- def toc_ncx #variable toc ~/grotto/theatre/dbld/builds/epub_sample/toc.ncx
- File.new("#{@pth}/#{Ep[:d_oebps]}/#{Ep[:f_ncx]}",'w')
- end
- def metainf_cont #variable content ~/grotto/theatre/dbld/builds/epub_sample/META-INF/container.xml
- File.new("#{@pth}/META-INF/container.xml",'w')
- end
- def xhtml_css #fixed epub xhtml css
- File.new("#{@pth}/#{Ep[:d_oebps]}/css/xhtml.css",'w')
- end
- self
- end
- def file_texinfo
- File.new("#{@env.processing_path.texinfo}/#{@fnb}.texinfo",'w+')
- end
+ class CreateFile < SiSU_Create_File::CreateFile # se_file_op.rb
end
- class Clear <InfoEnv #todo unify with FileOp
- def initialize(cmd,fns,operation='')
- @cmd=cmd
- begin
- super(fns)
- @env=SiSU_Env::InfoEnv.new(fns)
- InfoVersion.instance
- if operation.class.inspect =~/SiSU_Param/
- @md=operation
- end
- case operation #watch
- when /pdf/ then @env_out=''
- when /sql/
- when /xml|plaintext|ascii/ then @env_out="#{@env.path.output}/#{@fnb}" #check change of name to plaintext from ascii
- else
- if defined? @md.sfx_src \
- and @md.sfx_src =~/ss[ftsumc]/
- @env_suf='lm'
- @env_out_root=@env.path.output
- @env_out="#{@env.path.output}/#{@fnb}"
- @@publisher='SiSU http://www.jus.uio.no/sisu'
- @env_pdf="#{@env_out_root}/pdf"
- end
- end
- rescue
- SiSU_Screen::Ansi.new(@cmd,$!,$@).rescue do
- __LINE__.to_s + ':' + __FILE__
- end
- ensure
- end
- end
- def param_instantiate
- @cX||=SiSU_Screen::Ansi.new(@cmd)
- @@date=SiSU_Env::InfoDate.new
- @@proc=@@filename_txt=@@filename_texinfo=@@filename_lout_portrait=@@filename_lout_landscape=@@filename_html_scroll=@@filename_html_index=@@filename_html_segtoc=@@filename_semantic=@@filename_rss=@@newfile=@@drr=@@yaml=@@yamladdr=nil
- @@publisher='SiSU scribe'
- end
+ class Clear < SiSU_Clear::Clear # se_clear.rb
end
- class InfoPort < InfoEnv
- def initialize
- @env=SiSU_Env::InfoEnv.new
- end
- def webrick
- @env.port.webrick_port
- end
+ class InfoPort < SiSU_Info_Port::InfoPort # se_info_port.rb
end
- class InfoProgram < InfoEnv #revisit
- attr_accessor :editor,:wc,:tidy,:rexml,:pdflatex,:postgresql,:sqlite
- def initialize
- prog=SiSU_Env::InfoEnv.new.program
- @editor,@wc,@tidy,@rexml,@pdflatex,@postgresql,@sqlite=prog.text_editor,prog.wc,prog.tidy,prog.rexml,prog.pdflatex,prog.postgresql,prog.sqlite
- end
+ class InfoProgram < SiSU_Info_Program::InfoProgram # se_programs.rb
end
- class CSS_Default
- def html
- 'html.css'
- end
- def html_tables
- 'html_tables.css'
- end
- def xhtml
- 'xhtml.css'
- end
- def xml_sax
- 'sax.css'
- end
- def xml_dom
- 'dom.css'
- end
- def xml_docbook
- 'docbook.css'
- end
- def homepage
- 'homepage.css'
- end
- def harvest
- 'harvest.css'
- end
+ class CSS_Default < SiSU_CSS::CSS_Default # se_css.rb
end
- class CSS_Select < InfoEnv
- def initialize(md)
- @md=md
- @env=SiSU_Env::InfoEnv.new('',@md)
- end
- def html
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_html.css")
- "#{@md.doc_css}_html.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_html.css")
- "#{@env.path.base_markup_dir_stub}_html.css"
- else
- SiSU_Env::CSS_Default.new.html
- end
- end
- def html_tables
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_html_tables.css")
- "#{@md.doc_css}_html_tables.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_html_tables.css")
- "#{@env.path.base_markup_dir_stub}_html_tables.css"
- else SiSU_Env::CSS_Default.new.html_tables
- end
- end
- def xhtml
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_xhtml.css")
- "#{@md.doc_css}_xhtml.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_xhtml.css")
- "#{@env.path.base_markup_dir_stub}_xhtml.css"
- else SiSU_Env::CSS_Default.new.xhtml
- end
- end
- def xml_sax
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_xml_sax.css")
- "#{@md.doc_css}_xml_sax.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_xml_sax.css")
- "#{@env.path.base_markup_dir_stub}_xml_sax.css"
- else SiSU_Env::CSS_Default.new.xml_sax
- end
- end
- def xml_dom
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_xml_dom.css")
- "#{@md.doc_css}_xml_dom.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_xml_dom.css")
- "#{@env.path.base_markup_dir_stub}_xml_dom.css"
- else SiSU_Env::CSS_Default.new.xml_dom
- end
- end
- def xml_docbook
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_docbook.css")
- "#{@md.doc_css}_xml_dom.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_docbook.css")
- "#{@env.path.base_markup_dir_stub}_docbook.css"
- else SiSU_Env::CSS_Default.new.xml_docbook
- end
- end
- def homepage
- if @md.doc_css \
- and FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@md.doc_css}_homepage.css")
- "#{@md.doc_css}_homepage.css"
- elsif FileTest.file?("#{@env.path.output}/#{@env.path.style}/#{@env.path.base_markup_dir_stub}_homepage.css")
- "#{@env.path.base_markup_dir_stub}_homepage.css"
- else SiSU_Env::CSS_Default.new.homepage
- end
- end
+ class CSS_Select < SiSU_CSS::CSS_Select # se_css.rb
end
- class CSS_Stylesheet
- def initialize(md)
- @md=md
- @css=SiSU_Env::CSS_Select.new(@md)
- @env=SiSU_Env::InfoEnv.new('',@md)
- @file=SiSU_Env::FileOp.new(@md)
- end
- def html
- stylesheet="#{@file.path_rel_links.html_scroll_css}#{@env.path.style}/#{@css.html}"
- %{ <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}
- end
- def html_seg
- stylesheet="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}"
- %{ <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}
- end
- def html_tables
- stylesheet="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}"
- %{ <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}
- end
- def xhtml_epub
- %{ <link rel="stylesheet" href="css/xhtml.css" type="text/css" />}
- end
- def epub
- xhtml_epub
- end
- def xhtml
- stylesheet="#{@file.path_rel_links.xhtml_css}#{@env.path.style}/#{@css.xhtml}"
- %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}
- end
- def xml_sax
- stylesheet="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_sax}"
- %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}
- end
- def xml_dom
- stylesheet="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_dom}"
- %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}
- end
- def xml_docbook
- stylesheet="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_docbook}"
- %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}
- end
+ class CSS_Stylesheet < SiSU_CSS::CSS_Stylesheet # se_css.rb
end
- class CreateSite < InfoEnv
- require_relative 'css' # css.rb
- include SiSU_Style
- def initialize(opt)
- @opt=opt
- @env=SiSU_Env::InfoEnv.new
- @init=SiSU_Env::GetInit.new
- @home,@pwd=ENV['HOME'],ENV['PWD'] #@pwd=Dir.pwd
- @rc=GetInit.new.sisu_yaml.rc
- @vz=SiSU_Viz::Defaults.new
- @vz_home=SiSU_Viz::Home.new
- end
- def create_default_sisu_homepage(action=:none)
- if action==:none
- puts %{ place your homepages in directory:\n "#{@env.path.rc}/home/*.html"\n (no action taken)}
- else
- puts %{ place your homepages in directory:\n "#{@env.path.rc}/home/*.html"\n (in order to replace default sisu homepage)}
- filename_homepage="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/index.html"
- filename_home_toc="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/toc.html"
- file_homepage=File.new(filename_homepage,'w')
- file_home_toc=File.new(filename_home_toc,'w')
- file_homepage << @vz_home.homepage
- file_home_toc << @vz_home.homepage
- file_homepage.close
- file_home_toc.close
- end
- end
- def homepage
- home_pages_manually_created=Dir.glob("#{@env.path.rc}/home/*.html")
- FileUtils::mkdir_p("#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}") unless FileTest.directory?("#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}")
- if home_pages_manually_created.length > 0
- home_pages_manually_created.each do |homepage|
- FileUtils.cp(homepage,"#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}")
- end
- else
- create_default_sisu_homepage(:none)
- #create_default_sisu_homepage(:default)
- end
- end
- def cp_images(src_path,dest_path)
- if FileTest.directory?(src_path)
- FileUtils::cd(src_path)
- source=Dir.glob("*.{png,jpg,gif,ico}")
- FileUtils::mkdir_p(dest_path) unless FileTest.directory?(dest_path)
- FileUtils::chmod(0755,dest_path)
- source.each do |i|
- if FileTest.file?(i)
- FileUtils::cp(i,"#{dest_path}/#{i}")
- FileUtils::chmod(0644,"#{dest_path}/#{i}")
- else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]}
- end
- end
- FileUtils::cd(@pwd)
- else STDERR.puts %{\t*WARN* did not find - #{src_path} [#{__FILE__}:#{__LINE__}]}
- end
- end
- def cp_local_images
- src="#{@pwd}/_sisu/image"
- dest="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image"
- cp_images(src,dest) if FileTest.directory?(src)
- end
- def cp_external_images
- src="#{@env.processing_path.processing}/external_document/image"
- dest="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image_external"
- if FileTest.directory?(src)
- cp_images(src,dest) if FileTest.directory?(src)
- end
- end
- def cp_webserver_images
- src=@env.path.image_source
- dest_arr=[
- "#{@env.path.webserv}/_sisu/image",
- "#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image"
- ]
- dest_arr.each do |dest|
- cp_images(src,dest) if FileTest.directory?(src)
- end
- end
- def cp_webserver_images_local #this should not have been necessary
- src=@env.path.image_source
- dest="#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image"
- cp_images(src,dest) if FileTest.directory?(src)
- end
- def cp_base_images #fix images
- src=SiSU_is[:path_base_system_data] + '/image'
- dest_arr=[
- "#{@env.path.webserv}/_sisu/image_sys",
- "#{@env.path.webserv}/#{@env.path.base_markup_dir_stub}/_sisu/image_sys"
- ]
- dest_arr.each do |dest|
- cp_images(src,dest) if FileTest.directory?(src)
- end
- end
- def cp_css
- FileUtils::mkdir_p("#{@env.path.output}/#{@env.path.style}") \
- unless FileTest.directory?("#{@env.path.output}/#{@env.path.style}")
- css_path=[
- '/etc/sisu/css',
- "#{@home}/.sisu/css",
- "#{@pwd}/_sisu/css",
- ] #BROKEN
- if defined? @rc['permission_set']['css_modify'] \
- and @rc['permission_set']['css_modify']
- SiSU_Screen::Ansi.new(@opt.cmd,"*WARN* modify is css set to: #{@rc['permission_set']['css_modify']}").warn if @opt.cmd=~/[MV]/
- 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}")
- else STDERR.puts %{\t*WARN* did not find css - "#{i}" [#{__FILE__}:#{__LINE__}]}
- end
- end
- FileUtils::cd(@pwd)
- end
- end
- else
- SiSU_Screen::Ansi.new(
- @opt.cmd,
- "*WARN* modify css is not set or is set to: false"
- ).warn if @opt.cmd=~/[MV]/
- 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/ \
- 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/ \
- 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/ \
- 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/ \
- 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]/ \
- 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]/ \
- 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/ \
- 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]/ \
- and not FileTest.file?("#{path_style}/#{fn_css.xhtml}"))
- style=File.new("#{path_style}/#{fn_css.xhtml}",'w')
- style << css.xhtml
- style.close
- end
- end
+ class CreateSite < SiSU_Create_Site::CreateSite # se_createsite.rb
end
end
module SiSU_Screen
@@ -7233,4 +162,3 @@ module SiSU_Errors
require_relative 'errors' # errors.rb
end
__END__
-https? intro check 2007-09-22