From 1a21bfdc762d2dfb0de56dba75fa46d8a31861af Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 29 Mar 2013 20:28:29 -0400 Subject: v4: cgi, auto-generated sample search form * for various sisu output directory structures * fixes --- lib/sisu/v4/cgi_pgsql.rb | 48 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) (limited to 'lib/sisu/v4/cgi_pgsql.rb') diff --git a/lib/sisu/v4/cgi_pgsql.rb b/lib/sisu/v4/cgi_pgsql.rb index 6102d585..36f9782b 100644 --- a/lib/sisu/v4/cgi_pgsql.rb +++ b/lib/sisu/v4/cgi_pgsql.rb @@ -68,10 +68,35 @@ module SiSU_CGI_PgSQL @opt,@webserv=opt,webserv @env=SiSU_Env::InfoEnv.new('',opt) @sys=SiSU_Env::SystemCall.new - @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" - @common=SiSU_CGI_SQL::CGI_Common.new(@webserv,@opt,@image_src,@env) @db=SiSU_Env::InfoDb.new + get_init=SiSU_Env::GetInit.new + @rc=get_init.sisu_yaml.rc + @name_of={} + if defined? @rc['webserv'] \ + and defined? @rc['webserv']['url_root'] \ + and defined? @rc['webserv']['url_root'] =~/\S+/ + @name_of[:host_url_docs]=@rc['webserv']['url_root'] + end + if defined? @rc['search'] \ + and defined? @rc['search']['sisu'] \ + and defined? @rc['search']['sisu']['action'] \ + and @rc['search']['sisu']['action'] =~/https?:\/\/\S+?\.cgi/ \ + and defined? @rc['search']['sisu']['db'] \ + and @rc['search']['sisu']['db'] =~/\S+/ + @name_of[:db]=@rc['search']['sisu']['db'] + #@name_of[:cgi_script]=/https?:\/\/\S+?([^\/]+?)\.cgi$/.match(@rc['search']['sisu']['action'])[1] + @name_of[:host_url_cgi],@name_of[:cgi_script]=/(https?:\/\/\S+?)\/([^\/]+?)\.cgi$/.match(@rc['search']['sisu']['action'])[1,2] + else + @name_of[:host_url_docs]=@env.url.webserv_files_from_db + @name_of[:db]='sisu' #breaks if not present + @name_of[:host_url_cgi]=@env.url.webserv_base_cgi + @name_of[:cgi_script]='sisu_pgsql' + false + end @cgi_file_name="#{Db[:name_prefix_db]}by_#{opt.dir_structure_by.to_s}_pgsql.cgi" + @cgi_link_name="#{@name_of[:db]}.cgi" #sisu_pgsql.cgi, + @image_src="#{@name_of[:host_url_docs]}/_sisu/image_sys" + @common=SiSU_CGI_SQL::CGI_Common.new(@webserv,@opt,@image_src,@env) end def pgsql serve=[] @@ -99,7 +124,7 @@ module SiSU_CGI_PgSQL if FileTest.writable?('.') output=File.open(@cgi_file_name,'w') output << header0 << header1 << header_desc << header2 << f1 << buttons1 << buttons1_pgsql << buttons2 << search_request << search_statement << search_statement_common << search_query1 << @common.pages << search_query2 << @common.tail << @common.main1 << f2 << dbi_connect << @common.main2 << @common.dir_structure << @common.main3 - a=%{ generated sisu_pgsql.cgi, + a=%{ generated #{@cgi_file_name}, BASED ON ALREADY EXISTING directories that could potentially be used to populate postgresql db, (-D) } SiSU_Screen::Ansi.new(@opt.cmd,a).print_grey @@ -108,11 +133,11 @@ module SiSU_CGI_PgSQL else "if necessary make the directory /usr/lib/cgi-bin : sudo cp -vi #{Dir.pwd}/#{@cgi_file_name} /usr/lib/cgi-bin/. sudo chmod -v 755 /usr/lib/cgi-bin/#{@cgi_file_name} - sudo ln -s /usr/lib/cgi-bin/#{@cgi_file_name} /usr/lib/cgi-bin/sisu_pgsql.cgi - (copy #{@cgi_file_name} to your cgi directory) set file permissions to 755, and make symbolic link to sisu_pgsql.cgi" + sudo ln -s /usr/lib/cgi-bin/#{@cgi_file_name} /usr/lib/cgi-bin/#{@cgi_link_name} + (copy #{@cgi_file_name} to your cgi directory) set file permissions to 755, and make symbolic link to #{@cgi_link_name}" end a=%{#{c} - #{@env.webserv_base_cgi}/cgi-bin/sisu_pgsql.cgi + #{@env.webserv_base_cgi}/cgi-bin/#{@cgi_link_name} } SiSU_Screen::Ansi.new(@opt.cmd,a).warn a="postgresql db used for present directory: #{@db.psql.db}" @@ -132,13 +157,14 @@ module SiSU_CGI_PgSQL require 'cgi' require 'fcgi' require 'dbi' - @version='sisu_pgsql' - @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" - @hosturl_db="#{@env.url.webserv_base_cgi}" - @hosturl_files="#{@env.url.webserv_files_from_db}" + @stub_default="#{@name_of[:db]}" + @image_src="#{@name_of[:host_url_docs]}/_sisu/image_sys" + @hosturl_db="#{@name_of[:host_url_cgi]}" + @hosturl_files="#{@name_of[:host_url_docs]}" + @output_dir_structure_by="#{@name_of[:output_dir_structure]}" @port="#{@db.psql.port}" @db_name_prefix="#{Db[:name_prefix]}" - user='#{@env.user}' # check user name for access to pg database: '#{@env.user}' + user='www-data' # check user name for access to pg database: e.g. www-data or '#{@env.user}' WOK_SQL end def search_statement -- cgit v1.2.3