#! /usr/bin/perl -w

use strict;
use diagnostics;
use vars qw($rcs $nl $Bin);
use FindBin qw($Bin);
use PicSOM;

$rcs = ' $Id: picsom.pl,v 1.30 2005/11/30 11:46:49 hmuurine Exp $ ';
$nl  = "\n";

# -----------------------------------------------------------

my $r = shift;
Apache2::RequestUtil::request($r);
my $shost = $r->dir_config('PicSOMServerHost');
my $sport = $r->dir_config('PicSOMServerPort');

my $dodebug = ($Bin =~ m%^/home/% && $Bin ne "/home/httpd/html")
  || $INC{'PicSOM.pm'} =~ m%^/home/.*/picsom/perl/PicSOM.pm%;

# $dodebug = 1; $sport = undef;

ensure_working_dir($r);
#$dodebug = 0;
if ($dodebug) {
  $sport = undef;

  $PicSOM::debug                   = 1;
  $PicSOM::Connection::debug       = 1;
  $PicSOM::Connection::save_dir    = ".";
  $PicSOM::Connection::save_xml    = 0;
  $PicSOM::Connection::save_mime   = 0;
  $PicSOM::Connection::hack_parser = 1;
  $PicSOM::Response::debug    	   = 1;
  $PicSOM::Images::debug      	   = 1;
  $PicSOM::Images::view_mime  	   = 1;
  $PicSOM::Images::no_images  	   = 0;
  $PicSOM::Command::debug     	   = 0;
  $PicSOM::HTML::debug        	   = 1;

  PicSOM::Debug_Print("#");
  PicSOM::Debug_Print("#");
  PicSOM::Debug_Print("######## NEW CALL:");
  PicSOM::Debug_Print("######## $Bin $INC{'PicSOM.pm'}");
}

# ------------------------------------------------------------------

PicSOM::debug_print("entering PicSOM::Run()") if ($dodebug);
PicSOM::Run($shost, $sport, $r);
PicSOM::debug_print("returned from PicSOM::Run()") if ($dodebug);

# ----------------------------------------------------------------------

sub ensure_working_dir {
  my $r = shift;
  my $pwd;
  if(defined($ENV{PWD}) && $ENV{PWD}) { $pwd = $ENV{PWD}; }
  else { chop($pwd = `pwd`); }
  chdir $r->document_root() if( $pwd eq '/' );
}


# ----------------------------------------------------------------------
# POD DOCUMENTATION:
# ----------------------------------------------------------------------

=head1 NAME

picsom.pl - the Perl main program of PicSOM

=head1 SYNOPSIS

  picsom.pl [arguments];

  http://host/path/picsom.pl

=head1 DESCRIPTION

I<picsom.pl> is the Perl main program of the PicSOM CBIR system. 
It is called usually as a CGI program using C<mod_perl>. 

=head1 SEE ALSO

Manual pages for the PicSOM modules: L<PicSOM(3)>, 
L<PicSOM::Connection(3)>, L<PicSOM::Response(3)>, L<PicSOM::HTML(3)>,
L<PicSOM::Images(3)>, L<PicSOM::Command(3)>.

L<picsom(1)>, L<imgrobot(1)>, L<features(1)>.

L<mod_perl(1)>

=cut

# ----------------------------------------------------------------------
# ----------------------------------------------------------------------

