From f6ad656999986621a093d5d1991f40692b5dd665 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 12 Aug 2014 00:08:13 -0400 Subject: v5 v6: webrick, wb.cgi fixed & omitted/(use discarded) --- data/doc/sisu/CHANGELOG_v5 | 2 + data/doc/sisu/CHANGELOG_v6 | 2 + lib/sisu/v5/webrick.rb | 133 ++++++++++++++++++++++----------------------- lib/sisu/v6/webrick.rb | 133 ++++++++++++++++++++++----------------------- 4 files changed, 136 insertions(+), 134 deletions(-) diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5 index b2aa67b1..287ca2f6 100644 --- a/data/doc/sisu/CHANGELOG_v5 +++ b/data/doc/sisu/CHANGELOG_v5 @@ -38,6 +38,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.6.1.orig.tar.xz sisu_5.6.1.orig.tar.xz sisu_5.6.1-1.dsc +* webrick, wb.cgi fixed and omitted (use discarded) + %% 5.6.0.orig.tar.xz (2014-08-08:31/5) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_5.6.0 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_5.6.0-1 diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6 index 1f1b5b69..4f9ca3ac 100644 --- a/data/doc/sisu/CHANGELOG_v6 +++ b/data/doc/sisu/CHANGELOG_v6 @@ -28,6 +28,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.2.2.orig.tar.xz sisu_6.2.2.orig.tar.xz sisu_6.2.2-1.dsc +* webrick, wb.cgi fixed and omitted (use discarded) + %% 6.2.1.orig.tar.xz (2014-08-08:31/5) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_6.2.1 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_6.2.1-1 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 << "#{x}
" unless x =~/^(\.)+$/ } - dir_contents=dir_contents.sort.join(' ') - #host=ENV['HOSTNAME'] - #host=%x{echo $HOSTNAME} - ) - wb_s1=<#{x}
" 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 << <#{x} '} + '#{@host}:#{@port}#{x} (mounts: #{y}/) info (wb.cgi)'} + -WOK - end + @mount.each do |x,y| wb_s2 += <<-WOK + page.p {%{#{x} } + + %{#{@host}:#{@port}#{x} (mounts: #{y}/) info (wb.cgi)}} + + WOK + end #% wb_end - wb_end=<#{x}
" unless x =~/^(\.)+$/ } - dir_contents=dir_contents.sort.join(' ') - #host=ENV['HOSTNAME'] - #host=%x{echo $HOSTNAME} - ) - wb_s1=<#{x}
" 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 << <#{x} '} + '#{@host}:#{@port}#{x} (mounts: #{y}/) info (wb.cgi)'} + -WOK - end + @mount.each do |x,y| wb_s2 += <<-WOK + page.p {%{#{x} } + + %{#{@host}:#{@port}#{x} (mounts: #{y}/) info (wb.cgi)}} + + WOK + end #% wb_end - wb_end=<