Date: Sat, 04 Dec 1999 06:22:44 +0000 From: Richard Morte <ric@sinclairassoc.force9.co.uk> To: Richard Morte <ric@sinclairassoc.force9.co.uk> Cc: freebsd-questions <freebsd-questions@FreeBSD.ORG> Subject: Re: Help with Perl script Message-ID: <3848B334.C58C3065@sinclairassoc.force9.co.uk> References: <3847AE8C.1FA003C1@sinclairassoc.force9.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Isn't it amazing, driving in the car this afternoon - it suddenly
occurred to me... permissions!
Just needed to chmod 0664 (was 0644) the directory to which the index
file is being written. What I don't understand though, was the lack of
_any_ error messages - anywhere. The call with system(...) now gives the
exit status of 0 as expected, so presumably the previous exit status of
65280 did indicate an error, only that I didn't appreciate the fact at
the time.
Is there a way to find out what these exit status values mean?
Cheers,
Ric
Richard Morte wrote:
>
> Hello,
>
> I've successfully written a perl script as a front-end to swish-e in
> search mode. However, I'm out of luck in trying to get it to run in
> 'index' mode.
>
> The swish binary runs OK, (visible quite nicely in 'top') and valid
> parameters are being passed. I can even retrieve the verbose output
> whilst swish traverses and indexes the document tree, but it never
> creates the index file. Here's what I've tried...
>
> Attempt 1:
> system("$swish_bin -i \'$target\' -c \'$config\' -f \'$idx_file\' -l
> -v \'$verbose\' -S '$s_method\'")
> || local_errors(push (@errors, "600~Could not exec swish:
> $swish_bin: $!"));
>
> Attempt 2:
> exec $swish_bin,'-i',$target,
> '-c',$config,
> '-f',$idx_file,
> '-l',
> '-v',$verbose,
> '-S',$s_method;
> || local_errors(push (@errors, "600~Could not exec swish:
> $swish_bin: $!"));
>
> Attempt 3:
> $status = system($swish_bin,'-i',$target,
> '-c',$config,
> '-f',$idx_file,
> '-l',
> '-v',$verbose,
> '-S',$s_method);
> local_errors(push (@errors, "600~Could not exec swish: $swish_bin:
> $!")) unless $status == 0;
> (Note that the exit value ($status) is 65280. When in search mode a
> similar construct returns 0
> - which is what I would have expected here...)
>
> Desperate (and somewhat useless) Attempt 4:
> open(SWISH, "$swish_bin -i $target -c $config -f $idx_file -l -v
> $verbose -S $s_method|")
> or (error-handler stuff, etc)
>
> FYI:
> $swish_bin is the absolute path and filename to the swish executable
> $target is the document directory tree (absolute path)
> $config is an absolute path and filename to a configuration file
> $idx_file is the index file to create (but never gets created), again
> abs path and filename
> $verbose determines the volume of messages to STDOUT during indexing
> (0-3)
> $s_method is either 'fs' or 'http'
>
> None of the attempts produce errors - it's as though the indexing takes
> place in hyperspace and never touches the hard disk. I've been through
> the O'Reilley Perl books, but cannot see what I'm doing wrong.
>
> The direction I'm heading in is to run a process that will create the
> index file, then figure out a way for the script not to have to wait
> until the process completes (processing 1000's of files can take hours)
> (Attempt 2 does this already, Attempt 3 will do this if I direct output
> to /dev/null?), and finally figure out a way to see how the process
> ended to see if indexing is successful.
>
> Apologies for an off-topic posting, but I'm completely stuck.
>
> Thanks to anyone who can help!
> Ric
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3848B334.C58C3065>
