--- cvs-head/script/sman 2000/05/09 11:29:45 20 +++ trunk/script/sman 2004/06/29 22:35:59 105 @@ -1,4 +1,4 @@ -#!perl -w +#!/usr/bin/perl -w # -*- Mode: Perl -*- # $Basename: sman $ # $Revision: 1.14 $ @@ -15,9 +15,11 @@ use Term::ReadLine; use Getopt::Long; -use Fcntl; +use Fcntl qw(O_RDONLY); use Config; +use lib '/data/wait/lib'; + require WAIT::Config; require WAIT::Database; require WAIT::Query::Base; @@ -39,7 +41,15 @@ 'table=s', 'filter=i', 'max=i', - 'pager:s') || die "Usage: ...\n"; + 'pager:s') || die " +Usage: $0 + [--database database] + [--dir dir ] + [--table table ] + [--filter integer ] + [--max integer ] + [--pager pager ] +"; my $db = WAIT::Database->open(name => $OPT{database}, mode => O_RDONLY, @@ -62,7 +72,7 @@ $format = new WAIT::Format::Term; } -my $pager = ($OPT{pager}) ? \&pager : \&less; +my $pager = ($OPT{pager}) ? \&less : \&pager; my $OUT = $term->OUT; my $st = 1; @@ -72,11 +82,11 @@ # them (a query), show metadata for a hit (a view), show a hot (display) my($query, @did); +my (%hits, $query_text); while (defined ($_ = &myreadline("$st> "))) { chomp; $st++; - my(%hits, $query_text); if (/^$/) { next; } elsif (/^m (\d+)$/) { @@ -182,7 +192,7 @@ q Exit from $0 l redisplay last ranking Other input is tried as wais query. -The following fields are known: $idb +The following fields for table '$OPT{table}' are known: $idb ] ; } @@ -225,9 +235,15 @@ # WHAT DOES HE DO HERE? ULI??? # Re: some indexing scripts did use pathnames relative to the table directory # especially the cpanwait script does this. uli -# if ($tdid !~ m(^/)) { -# $tdid = $tb->dir . '/' . $tdid; -# } + if ($tdid !~ m(^/)) { + $tdid = $tb->dir . '/' . $tdid; + } + # if original version doesn't exist maybe someone created gziped one? + # (this is used if you decided to compress data files after indexing, + # next indexing will pick names with gz extension anyway) + if (! -e $tdid && -e $tdid.".gz") { + $tdid .= ".gz"; + } # The main task of all that follows from here is highlighting. WAIT # is designed to make it possible to show the user why a certain @@ -347,13 +363,16 @@ } sub less { - my $flags; - if ($WAIT::Config->{pager} =~ /less/) { + my $flags = ''; + my $pager = $OPT{pager}; + if ($pager =~ /less/) { $flags = '-r'; - } elsif ($WAIT::Config->{pager} =~ /more/) { + } elsif ($pager =~ /more/) { $flags = '-c'; + } elsif ($pager =~ /lynx/) { + $flags = '-stdin'; } - open(PAGER, "|$WAIT::Config->{pager} $flags") or die; + open(PAGER, "| $pager $flags") or die; print PAGER @_; close PAGER; }