From 4cdfa555d7e07d032bff270a962415b96c3b8741 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 12 Mar 2012 18:43:27 -0400 Subject: v3dv: sysenv, param, options, output control hooks code modified * for config file, document headers, & command line * requiring downstream code changes (in commit that follows) --- lib/sisu/v3dv/sysenv.rb | 503 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 339 insertions(+), 164 deletions(-) (limited to 'lib/sisu/v3dv/sysenv.rb') diff --git a/lib/sisu/v3dv/sysenv.rb b/lib/sisu/v3dv/sysenv.rb index fcfc234b..95ebf6d9 100644 --- a/lib/sisu/v3dv/sysenv.rb +++ b/lib/sisu/v3dv/sysenv.rb @@ -435,27 +435,27 @@ module SiSU_Env end def dump? ((by?) ==:dump) \ - ? true \ + ? true : false end def redirect? ((by?) ==:redirect) \ - ? true \ + ? true : false end def by_language_code? ((by?) ==:language) \ - ? true \ + ? true : false end def by_filetype? ((by?) ==:filetype) \ - ? true \ + ? true : false end def by_filename? ((by?) ==:filename) \ - ? true \ + ? true : false end def multilingual? @@ -804,9 +804,10 @@ module SiSU_Env end def makeinfo #texinfo program='makeinfo' + options='' #'--force' #'' program_ref="\n\t\tsee http://www.gnu.org/software/texinfo/" (program_found?(program)) \ - ? system("#{program} #{@input}\n") + ? system("#{program} #{options} #{@input}\n") : (puts "\tWARN: #{program} is not installed #{program_ref}") end def scp @@ -1192,13 +1193,6 @@ module SiSU_Env else false end end - def manifest_minitoc? - flag=if defined? @rc['manifest']['minitoc'] \ - and not @rc['manifest']['minitoc'].nil? - @rc['manifest']['minitoc'] - else false - end - end def manifest_minitoc? flag=if (defined? @rc['manifest']['minitoc'] \ and not @rc['manifest']['minitoc'].nil?) @@ -1222,7 +1216,7 @@ module SiSU_Env listed=if omit_list x=(omit_list.scan(/\b#{test}\b/)).join test==x \ - ? true \ + ? true : false else false @@ -1230,48 +1224,67 @@ module SiSU_Env listed end def ocn? - flag=if (defined? @rc['omit']['ocn'] \ + if (defined? @rc['omit']['ocn'] \ and not @rc['omit']['ocn'].nil?) \ or listed?('ocn') - false + :off else - true + :na end end def toc? - flag=if (defined? @rc['omit']['toc'] \ + if (defined? @rc['omit']['toc'] \ and not @rc['omit']['toc'].nil?) \ or listed?('toc') - false + :off else - true + :na end end def manifest? - flag=if (defined? @rc['omit']['manifest'] \ + if (defined? @rc['omit']['manifest'] \ and not @rc['omit']['manifest'].nil?) \ or listed?('manifest') - false + :off else - true + :na end end - def manifest_links? - flag=if (defined? @rc['omit']['manifest_links'] \ - and not @rc['omit']['manifest_links'].nil?) \ - or listed?('manifest_links') - false + def links_to_manifest? + flag=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 - true + :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? + flag=if (defined? @rc['omit']['minitoc'] \ + and not @rc['omit']['minitoc'].nil?) \ + or (listed?('minitoc')) + :off + else + :na end end def manifest_minitoc? flag=if (defined? @rc['omit']['manifest_minitoc'] \ and not @rc['omit']['manifest_minitoc'].nil?) \ or listed?('manifest_minitoc') - false + :off else - true + :na end end def html_minitoc? @@ -1279,45 +1292,72 @@ module SiSU_Env and not @rc['omit']['html_minitoc'].nil?) \ or (listed?('html_minitoc') \ || listed?('minitoc')) - false + :off else - true + :na end end def html_navigation? flag=if (defined? @rc['omit']['html_navigation'] \ and not @rc['omit']['html_navigation'].nil?) \ or listed?('html_navigation') - false + :off else - true + :na end end def html_navigation_bar? flag=if (defined? @rc['omit']['html_navigation_bar'] \ and not @rc['omit']['html_navigation_bar'].nil?) \ or listed?('html_navigation_bar') - false + :off else - true + :na end end - def html_search_form? - flag=if (defined? @rc['omit']['html_search_form'] \ - and not @rc['omit']['html_search_form'].nil?) \ - or listed?('html_search_form') - false + def segsubtoc? + flag=if (defined? @rc['omit']['segsubtoc'] \ + and not @rc['omit']['segsubtoc'].nil?) \ + or listed?('segsubtoc') + :off else - true + :na end end - def html_right_column? - flag=if (defined? @rc['omit']['html_right_column'] \ - and not @rc['omit']['html_right_column'].nil?) \ - or listed?('html_right_column') - false + def html_right_pane? + flag=if (defined? @rc['omit']['html_right_pane'] \ + and not @rc['omit']['html_right_pane'].nil?) \ + or listed?('html_right_pane') + :off else - true + :na + end + end + def html_top_band? + flag=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 + flag=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 + flag=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 @@ -3467,41 +3507,274 @@ WOK end end end - class OutputStructure + class ProcessingSettings def initialize(md) @md=md - @env=SiSU_Env::InfoEnv.new(@md.fns) + end + def cnf_rc #sisurc.yml + @rc=SiSU_Env::GetInit.instance.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 + @md.make + end + def cmd_rc #command-line rc + @cmd_rc=@md.opt.opt_act + end + def build + def ocn? + if cmd_rc[:ocn][:set]==:on + true + elsif cmd_rc[:ocn][:set]==:off + false + elsif @md.make.ocn? ==:off + false + elsif env_rc.build.ocn? ==:off + false + else + true + end + end + def toc? + if cmd_rc[:toc][:set]==:on + true + elsif cmd_rc[:toc][:set]==:off + false + elsif @md.make.toc? ==:off + false + elsif env_rc.build.toc? ==:off + false + else + true + end + end + def manifest? + if cmd_rc[:manifest][:set]==:on + true + elsif cmd_rc[:manifest][:set]==:off + false + elsif @md.make.manifest? ==:off + false + elsif env_rc.build.manifest? ==:off + false + else + true + end + end + def links_to_manifest? + if cmd_rc[:links_to_manifest][:set]==:on + true + elsif cmd_rc[:links_to_manifest][:set]==:off + false + elsif @md.make.links_to_manifest? ==:off + false + elsif env_rc.build.links_to_manifest? ==:off + false + else + true + end + end + def metadata? + if cmd_rc[:metadata][:set]==:on + true + elsif cmd_rc[:metadata][:set]==:off + false + elsif @md.make.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[:minitoc][:set]==:on + true + elsif cmd_rc[:minitoc][:set]==:off + false + elsif @md.make.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[:manifest_minitoc][:set]==:on \ + || cmd_rc[:minitoc][:set]==:on + true + elsif cmd_rc[:manifest_minitoc][:set]==:off \ + || cmd_rc[:minitoc][:set]==:off + false + elsif @md.make.manifest_minitoc? ==:off \ + || @md.make.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[:html_minitoc][:set]==:on \ + || cmd_rc[:minitoc][:set]==:on + true + elsif cmd_rc[:html_minitoc][:set]==:off \ + || cmd_rc[:minitoc][:set]==:off + false + elsif @md.make.html_minitoc? ==:off \ + || @md.make.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[:html_top_band][:set]==:on + true + elsif cmd_rc[:html_top_band][:set]==:off + false + elsif @md.make.html_top_band? ==:off + false + elsif env_rc.build.html_top_band? ==:off + false + else + true + end + end + def html_navigation? + if cmd_rc[:html_navigation][:set]==:on + true + elsif cmd_rc[:html_navigation][:set]==:off + false + elsif @md.make.html_navigation? ==:off + false + elsif env_rc.build.html_navigation? ==:off + false + else + true + end + end + def html_navigation_bar? + if cmd_rc[:html_navigation_bar][:set]==:on + true + elsif cmd_rc[:html_navigation_bar][:set]==:off + false + elsif @md.make.html_navigation_bar? ==:off + false + elsif env_rc.build.html_navigation_bar? ==:off + false + else + true + end + end + def search_form? + if cmd_rc[:search_form][:set]==:on + true + elsif cmd_rc[:search_form][:set]==:off + false + elsif @md.make.search_form? ==:off + false + elsif env_rc.build.search_form? ==:off + false + else + true + end + end + def html_search_form? + if cmd_rc[:html_search_form][:set]==:on \ + || cmd_rc[:search_form][:set]==:on + true + elsif cmd_rc[:html_search_form][:set]==:off \ + || cmd_rc[:search_form][:set]==:off + false + elsif @md.make.html_search_form? ==:off \ + || @md.make.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[:html_right_pane][:set]==:on + true + elsif cmd_rc[:html_right_pane][:set]==:off + false + elsif @md.make.html_right_pane? ==:off + false + elsif env_rc.build.html_right_pane? ==:off + false + else + true + end + end + def segsubtoc? + if cmd_rc[:segsubtoc][:set]==:on + true + elsif cmd_rc[:segsubtoc][:set]==:off + false + elsif @md.make.segsubtoc? ==:off + false + elsif env_rc.build.segsubtoc? ==:off + false + else + true + end + end + self end def output_dir_structure def by_language_code? - @env.output_dir_structure.by_language_code? + env_rc.output_dir_structure.by_language_code? end def by_filetype? - @env.output_dir_structure.by_filetype? + env_rc.output_dir_structure.by_filetype? end def by_filename? - @env.output_dir_structure.by_filename? + env_rc.output_dir_structure.by_filename? end def multilingual? by_language_code? end def dump? - ((@md.opt.opt_act[:dump][:bool] \ - && @md.opt.opt_act[:dump][:inst]) \ - || (@env.output_dir_structure.dump?)) \ - ? true \ + ((cmd_rc[:dump][:bool] \ + && cmd_rc[:dump][:inst]) \ + || (env_rc.output_dir_structure.dump?)) \ + ? true : false end def redirect? - ((@md.opt.opt_act[:redirect][:bool] \ - && @md.opt.opt_act[:redirect][:inst]) \ - || (@env.output_dir_structure.redirect?)) \ - ? true \ + ((cmd_rc[:redirect][:bool] \ + && cmd_rc[:redirect][:inst]) \ + || (env_rc.output_dir_structure.redirect?)) \ + ? true : false end def dump_or_redirect? ((dump?) || (redirect?)) \ - ? true \ + ? true : false end def by? @@ -3532,7 +3805,7 @@ WOK end end def output_dir_structure - OutputStructure.new(@md).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) @@ -3585,7 +3858,7 @@ WOK def html_seg_index pth=((by_filename?) \ || (output_dir_structure.dump?)) \ - ? "#{output_path.html.dir}" \ + ? "#{output_path.html.dir}" : "#{output_path.html.dir}/#{@md.fnb}" fn=base_filename.html_seg_index make_path(pth) @@ -3595,7 +3868,7 @@ WOK def html_segtoc pth=((by_filename?) \ || (output_dir_structure.dump?)) \ - ? "#{output_path.html.dir}" \ + ? "#{output_path.html.dir}" : "#{output_path.html.dir}/#{@md.fnb}" fn=base_filename.html_segtoc make_path(pth) @@ -4949,104 +5222,6 @@ WOK self end end - class InfoSet # Date: Mon, 12 Mar 2012 18:49:49 -0400 Subject: v3dv: sqlite3 discreet .sql.db file for each document (possibility added) * in addition to existing possibility of a shared db in sqlite3 or postgresql --- lib/sisu/v3dv/sysenv.rb | 276 ++++++++++++++++++++++++++++++------------------ 1 file changed, 171 insertions(+), 105 deletions(-) (limited to 'lib/sisu/v3dv/sysenv.rb') diff --git a/lib/sisu/v3dv/sysenv.rb b/lib/sisu/v3dv/sysenv.rb index 95ebf6d9..4383a893 100644 --- a/lib/sisu/v3dv/sysenv.rb +++ b/lib/sisu/v3dv/sysenv.rb @@ -2733,7 +2733,7 @@ WOK and not (@rc['flag']['default'].nil? \ or @rc['flag']['default'].empty?) @rc['flag']['default'] - else '-NQhewpotbxXyYv' + else '-NQhewpotbxXdyYv' end end def cf_1 #processing flag shortcuts @@ -2749,7 +2749,7 @@ WOK and not (@rc['flag']['ii'].nil? \ or @rc['flag']['ii'].empty?) @rc['flag']['ii'] - else '-NQhewpotbxXy' + else '-NQhewpotbxXdy' end end def cf_3 #processing flag shortcuts @@ -2757,7 +2757,7 @@ WOK and not (@rc['flag']['iii'].nil? \ or @rc['flag']['iii'].empty?) @rc['flag']['iii'] - else '-NQhewpotbxXyY' + else '-NQhewpotbxXdyY' end end def cf_4 #processing flag shortcuts @@ -2765,7 +2765,7 @@ WOK and not (@rc['flag']['iv'].nil? \ or @rc['flag']['iv'].empty?) @rc['flag']['iv'] - else '-NQhewpotbxXDyY --update' + else '-NQhewpotbxXdDyY --update' end end def cf_5 #processing flag shortcuts @@ -2773,7 +2773,7 @@ WOK and not (@rc['flag']['v'].nil? \ or @rc['flag']['v'].empty?) @rc['flag']['v'] - else '-NQhewpotbxXDyYv --update' + else '-NQhewpotbxXdDyYv --update' end end end @@ -3795,6 +3795,134 @@ WOK self end end + class InfoDb < InfoEnv + @@rc=nil + def initialize + @@pwd ||=Dir.pwd + @pwd=Dir.pwd + @env=SiSU_Env::InfoEnv.new + pt=Pathname.new(@pwd) + r=Px[:lng_lst].join('|') + u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/ + @pwd_stub=pt.realpath.to_s[u,1] + @rc=@@rc ||=GetInit.instance.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 + ((defined? @rc['db']['postgresql']['user']) \ + && @rc['db']['postgresql']['user']=~/\S+/) \ + ? @rc['db']['postgresql']['user'] + : @env.user + 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'].class==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 + (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 + self + end + def mysql + def db + #"#{Db[:name_prefix]}#{@pwd_stub}" + end + def port + '**' + end + def dbi + "dbi:Mysql:database=#{mysql.db};port=#{mysql.port}" + end + self + end + def sqlite + def db + "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db" + end + def db_discreet(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 + end + class DbOp