diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sisu/v5/webrick.rb | 133 | ||||
-rw-r--r-- | lib/sisu/v6/webrick.rb | 133 |
2 files changed, 132 insertions, 134 deletions
diff --git a/lib/sisu/v5/webrick.rb b/lib/sisu/v5/webrick.rb index f6ff970b..5a8a3223 100644 --- a/lib/sisu/v5/webrick.rb +++ b/lib/sisu/v5/webrick.rb @@ -74,7 +74,6 @@ module SiSU_Webserv include SiSU_Env include SiSU_Screen def initialize - begin #% @cX=SiSU_Screen::Ansi.new('yes').cX @env=SiSU_Env::InfoEnv.new port=SiSU_Env::InfoPort.new @@ -93,29 +92,58 @@ module SiSU_Webserv @week=Time.now.strftime(%{%Yw%W}) puts "\n" @mount.each { |x,y| - puts " #{@cX.cyan}#{x}#{@cX.off}\t#{@cX.grey}see#{@cX.off} #{@cX.blue}#{@host}:#{@port}#{x}/wb.cgi#{@cX.off} #{@cX.ruby}@#{@cX.off} #{@cX.blue}#{@host}:#{@port}#{x}/#{@cX.off}" + puts " * #{@cX.blue}#{@host}:#{@port}#{x}/#{@cX.off}" } - puts "#{@cX.grey}" - wb_s2=[] - #% writes file wb.cgi to shared directories ... - #% wb_top - wb_top=%q(#!/usr/bin/env ruby - # * arch-tag: webrick info on environment, mounted directories, and contents of pwd + get=Dir.pwd + brick(@port,get) + end + def brick(port,get='') + cgidir=if get=~/pwd/ then Dir.pwd + else '/usr/lib/cgi-bin' + end + port=SiSU_Env::InfoPort.new.webrick begin - require 'time' - require 'cgi' - require 'fcgi' - rescue LoadError - puts 'time, cgi or fcgi NOT FOUND (LoadError)' + s=HTTPServer.new( + Port: port, + DocumentRoot: Dir::pwd + '/htdocs', + CGIPathEnv: ENV['PATH'] + ) + cgi_dir=File.expand_path(cgidir) + @mount.each { |x,y| # mount subdirectories + s.mount(x, HTTPServlet::FileHandler, y, true) + } + s.mount('/cgi-bin', HTTPServlet::FileHandler, cgi_dir, { FancyIndexing: true }) + trap("INT"){ s.shutdown } + s.start + rescue + SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix + __LINE__.to_s + ':' + __FILE__ + end + ensure end - ls=Dir.entries('./') - dir_contents=[] - ls.each { |x| dir_contents << "<a href=\"./#{x}/\">#{x}</a><br>" unless x =~/^(\.)+$/ } - dir_contents=dir_contents.sort.join(' ') - #host=ENV['HOSTNAME'] - #host=%x{echo $HOSTNAME} - ) - wb_s1=<<WOK + end + def wb_cgi + begin #% + wb_s2='' + #% writes file wb.cgi to shared directories ... + #% wb_top + wb_top=%q(#!/usr/bin/env ruby + # * arch-tag: webrick info on environment, mounted directories, and contents of pwd + begin + require 'time' + require 'cgi' + require 'fcgi' + rescue LoadError + puts 'time, cgi or fcgi NOT FOUND (LoadError)' + end + ls=Dir.entries('./') + dir_contents=[] + ls.each { |x| dir_contents << "<a href=\"./#{x}/\">#{x}</a><br>" unless x =~/^(\.)+$/ } + dir_contents=dir_contents.sort.join(' ') + #host=ENV['HOSTNAME'] + #host=%x{echo $HOSTNAME} + ) + wb_s1=<<-WOK page=CGI.new "html3" page.out { @@ -130,60 +158,31 @@ module SiSU_Webserv page.p {''} + page.p {''} + page.p {page.b{"Webrick Served Directories: "}} + -WOK + WOK #% wb_s2 (mounts) - @mount.each do |x,y| wb_s2 << <<WOK - page.p {page.b{'<a href="#{@host}:#{@port}#{x}/">#{x}</a> '} + '<a href="#{@host}:#{@port}#{x}/">#{@host}:#{@port}#{x}</a> (mounts: #{y}/) <a href="#{@host}:#{@port}#{x}/wb.cgi">info (wb.cgi)</a>'} + -WOK - end + @mount.each do |x,y| wb_s2 += <<-WOK + page.p {%{<a href="#{@host}:#{@port}#{x}/">#{x}</a> } + + %{<a href="#{@host}:#{@port}#{x}/">#{@host}:#{@port}#{x}</a> (mounts: #{y}/) <a href="#{@host}:#{@port}#{x}/wb.cgi">info (wb.cgi)</a>}} + + WOK + end #% wb_end - wb_end=<<WOK + wb_end=<<-WOK page.p {page.b{"Contents of PWD (see URL): "}} + page.p {"#\{dir_contents}"} } } } -WOK - @mount.each { |x,y| #% wb puts - puts y - filename=File.new("#{y}/wb.cgi",'w') - filename << wb_top - filename << wb_s1 - filename << wb_s2 - filename << wb_end - filename.close - FileUtils::chmod(0755,"#{y}/wb.cgi &") if FileTest.file?("#{y}/wb.cgi &") - } - puts " #{@cX.off}" - #get=@argv.shift if @argv[0] =~/pwd/ #% argv - get=Dir.pwd - brick(@port,get) - rescue - require_relative 'se' # se.rb - SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def brick(port,get='') - cgidir=if get=~/pwd/; Dir.pwd - else '/usr/lib/cgi-bin' # @env.path.cgi - end - port=SiSU_Env::InfoPort.new.webrick - begin - s=HTTPServer.new( - Port: port, - DocumentRoot: Dir::pwd + '/htdocs', - CGIPathEnv: ENV['PATH'] - ) - cgi_dir=File.expand_path(cgidir) - @mount.each { |x,y| # mount subdirectories - s.mount(x, HTTPServlet::FileHandler, y, true) + WOK + @mount.each { |x,y| #% wb puts + puts y + filename=File.new("#{y}/wb.cgi",'w') + filename << wb_top + filename << wb_s1 + filename << wb_s2 + filename << wb_end + filename.close + FileUtils::chmod(0755,"#{y}/wb.cgi &") if FileTest.file?("#{y}/wb.cgi &") } - s.mount('/cgi-bin', HTTPServlet::FileHandler, cgi_dir, { FancyIndexing: true }) - trap("INT"){ s.shutdown } - s.start rescue SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix __LINE__.to_s + ':' + __FILE__ diff --git a/lib/sisu/v6/webrick.rb b/lib/sisu/v6/webrick.rb index 8ebbf2d6..feb28c7d 100644 --- a/lib/sisu/v6/webrick.rb +++ b/lib/sisu/v6/webrick.rb @@ -74,7 +74,6 @@ module SiSU_Webserv include SiSU_Env include SiSU_Screen def initialize - begin #% @cX=SiSU_Screen::Ansi.new('yes').cX @env=SiSU_Env::InfoEnv.new port=SiSU_Env::InfoPort.new @@ -93,29 +92,58 @@ module SiSU_Webserv @week=Time.now.strftime(%{%Yw%W}) puts "\n" @mount.each { |x,y| - puts " #{@cX.cyan}#{x}#{@cX.off}\t#{@cX.grey}see#{@cX.off} #{@cX.blue}#{@host}:#{@port}#{x}/wb.cgi#{@cX.off} #{@cX.ruby}@#{@cX.off} #{@cX.blue}#{@host}:#{@port}#{x}/#{@cX.off}" + puts " * #{@cX.blue}#{@host}:#{@port}#{x}/#{@cX.off}" } - puts "#{@cX.grey}" - wb_s2=[] - #% writes file wb.cgi to shared directories ... - #% wb_top - wb_top=%q(#!/usr/bin/env ruby - # * arch-tag: webrick info on environment, mounted directories, and contents of pwd + get=Dir.pwd + brick(@port,get) + end + def brick(port,get='') + cgidir=if get=~/pwd/ then Dir.pwd + else '/usr/lib/cgi-bin' + end + port=SiSU_Env::InfoPort.new.webrick begin - require 'time' - require 'cgi' - require 'fcgi' - rescue LoadError - puts 'time, cgi or fcgi NOT FOUND (LoadError)' + s=HTTPServer.new( + Port: port, + DocumentRoot: Dir::pwd + '/htdocs', + CGIPathEnv: ENV['PATH'] + ) + cgi_dir=File.expand_path(cgidir) + @mount.each { |x,y| # mount subdirectories + s.mount(x, HTTPServlet::FileHandler, y, true) + } + s.mount('/cgi-bin', HTTPServlet::FileHandler, cgi_dir, { FancyIndexing: true }) + trap("INT"){ s.shutdown } + s.start + rescue + SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix + __LINE__.to_s + ':' + __FILE__ + end + ensure end - ls=Dir.entries('./') - dir_contents=[] - ls.each { |x| dir_contents << "<a href=\"./#{x}/\">#{x}</a><br>" unless x =~/^(\.)+$/ } - dir_contents=dir_contents.sort.join(' ') - #host=ENV['HOSTNAME'] - #host=%x{echo $HOSTNAME} - ) - wb_s1=<<WOK + end + def wb_cgi + begin #% + wb_s2='' + #% writes file wb.cgi to shared directories ... + #% wb_top + wb_top=%q(#!/usr/bin/env ruby + # * arch-tag: webrick info on environment, mounted directories, and contents of pwd + begin + require 'time' + require 'cgi' + require 'fcgi' + rescue LoadError + puts 'time, cgi or fcgi NOT FOUND (LoadError)' + end + ls=Dir.entries('./') + dir_contents=[] + ls.each { |x| dir_contents << "<a href=\"./#{x}/\">#{x}</a><br>" unless x =~/^(\.)+$/ } + dir_contents=dir_contents.sort.join(' ') + #host=ENV['HOSTNAME'] + #host=%x{echo $HOSTNAME} + ) + wb_s1=<<-WOK page=CGI.new "html3" page.out { @@ -130,60 +158,31 @@ module SiSU_Webserv page.p {''} + page.p {''} + page.p {page.b{"Webrick Served Directories: "}} + -WOK + WOK #% wb_s2 (mounts) - @mount.each do |x,y| wb_s2 << <<WOK - page.p {page.b{'<a href="#{@host}:#{@port}#{x}/">#{x}</a> '} + '<a href="#{@host}:#{@port}#{x}/">#{@host}:#{@port}#{x}</a> (mounts: #{y}/) <a href="#{@host}:#{@port}#{x}/wb.cgi">info (wb.cgi)</a>'} + -WOK - end + @mount.each do |x,y| wb_s2 += <<-WOK + page.p {%{<a href="#{@host}:#{@port}#{x}/">#{x}</a> } + + %{<a href="#{@host}:#{@port}#{x}/">#{@host}:#{@port}#{x}</a> (mounts: #{y}/) <a href="#{@host}:#{@port}#{x}/wb.cgi">info (wb.cgi)</a>}} + + WOK + end #% wb_end - wb_end=<<WOK + wb_end=<<-WOK page.p {page.b{"Contents of PWD (see URL): "}} + page.p {"#\{dir_contents}"} } } } -WOK - @mount.each { |x,y| #% wb puts - puts y - filename=File.new("#{y}/wb.cgi",'w') - filename << wb_top - filename << wb_s1 - filename << wb_s2 - filename << wb_end - filename.close - FileUtils::chmod(0755,"#{y}/wb.cgi &") if FileTest.file?("#{y}/wb.cgi &") - } - puts " #{@cX.off}" - #get=@argv.shift if @argv[0] =~/pwd/ #% argv - get=Dir.pwd - brick(@port,get) - rescue - require_relative 'se' # se.rb - SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def brick(port,get='') - cgidir=if get=~/pwd/; Dir.pwd - else '/usr/lib/cgi-bin' # @env.path.cgi - end - port=SiSU_Env::InfoPort.new.webrick - begin - s=HTTPServer.new( - Port: port, - DocumentRoot: Dir::pwd + '/htdocs', - CGIPathEnv: ENV['PATH'] - ) - cgi_dir=File.expand_path(cgidir) - @mount.each { |x,y| # mount subdirectories - s.mount(x, HTTPServlet::FileHandler, y, true) + WOK + @mount.each { |x,y| #% wb puts + puts y + filename=File.new("#{y}/wb.cgi",'w') + filename << wb_top + filename << wb_s1 + filename << wb_s2 + filename << wb_end + filename.close + FileUtils::chmod(0755,"#{y}/wb.cgi &") if FileTest.file?("#{y}/wb.cgi &") } - s.mount('/cgi-bin', HTTPServlet::FileHandler, cgi_dir, { FancyIndexing: true }) - trap("INT"){ s.shutdown } - s.start rescue SiSU_Errors::Rescued.new($!,$@,'-W',nil).location do #fix __LINE__.to_s + ':' + __FILE__ |