Changeset 21205 for gs3-extensions/pharos/trunk/cmdline-api-srcpack/bin/script/pharos-imageis-query.pl
- Timestamp:
- 2009-12-02T14:06:02+13:00 (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
gs3-extensions/pharos/trunk/cmdline-api-srcpack/bin/script/pharos-imageis-query.pl
r21197 r21205 1 #!/ bin/bash1 #!/usr/bin/perl -w 2 2 3 if [ $# != 2 ] ; then 4 echo "Usage: imageis-query-by-id.sh col id" 5 exit 6 fi 3 ########################################################################### 4 # 5 # pharos-imageis-query.pl -- 6 # A component of the Greenstone digital library software 7 # from the New Zealand Digital Library Project at the 8 # University of Waikato, New Zealand. 9 # 10 # Copyright (C) 1999 New Zealand Digital Library Project 11 # 12 # This program is free software; you can redistribute it and/or modify 13 # it under the terms of the GNU General Public License as published by 14 # the Free Software Foundation; either version 2 of the License, or 15 # (at your option) any later version. 16 # 17 # This program is distributed in the hope that it will be useful, 18 # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 # GNU General Public License for more details. 21 # 22 # You should have received a copy of the GNU General Public License 23 # along with this program; if not, write to the Free Software 24 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 25 # 26 ########################################################################### 7 27 8 col=$1 9 id=$2 28 BEGIN { 29 die "GSDLHOME not set\n" unless defined $ENV{'GSDLHOME'}; 30 die "GSDLOS not set\n" unless defined $ENV{'GSDLOS'}; 31 die "IMAGEISHOME not set\n" unless defined $ENV{'IMAGEISHOME'}; 32 unshift (@INC, "$ENV{'GSDLHOME'}/perllib"); 33 } 10 34 11 docid=$col:$id12 35 13 echo "Generating query_id.xml" 14 cat "$IMAGEISHOME/templates/query_id.xml" \ 15 | sed "s@\*\*docid\*\*@$docid@g" \ 16 > "/tmp/vsupload/query_id.xml" 36 use strict; 37 no strict 'refs'; # allow filehandles to be variables and vice versa 38 no strict 'subs'; # allow barewords (eg STDERR) as function arguments 17 39 18 echo "Querying by $docid"19 40 20 java -jar "$IMAGEISHOME/ImageIS.jar" "/tmp/vsupload/query_id.xml" 41 sub main 42 { 43 44 my $ARGC = scalar(@ARGV); 45 46 47 if ($ARGC != 2) { 48 my ($progname) = ($0 =~ m/^.*[\/|\\](.*?)$/); 49 print STDERR "Usage: $progname collection doc-id\n"; 50 exit 1; 51 } 21 52 22 if [ $? == "0" ] ; then 23 /bin/rm "/tmp/vsupload/query_id.xml" 24 fi 53 my ($col,$id) = @ARGV; 54 55 my $docid = $id; 56 if ( $col ne "" ) { 57 $docid="$col:$docid"; 58 } 59 60 my $tmp_dir = &util::get_toplevel_tmp_dir(); 61 62 print "Generating query_id.xml\n"; 63 64 my $query_template_filename 65 = &util::filename_cat($ENV{'IMAGEISHOME'},"templates","query_id.xml"); 66 my $query_this_filename = &util::filename_cat($tmp_dir,"query_id.xml"); 67 68 if (open(FIN,"<$query_template_filename")) { 69 70 my $query_this_file_content = ""; 71 72 my $line; 73 while (defined ($line=<FIN>)) { 74 $line =~ s@\*\*docid\*\*@$docid@g; 75 76 $query_this_file_content .= $line; 77 } 78 79 close(FIN); 80 81 if (open(FOUT,">$query_this_filename")) { 82 print FOUT $query_this_file_content; 83 close(FOUT); 84 } 85 else { 86 print STDERR "Error: failed to write out $query_this_filename\n"; 87 print STDERR "$!\n"; 88 } 89 } 90 else { 91 print STDERR "Error: failed to read $query_template_filename\n"; 92 print STDERR "$!\n"; 93 } 94 95 96 my $jar_filename = &util::filename_cat($ENV{'IMAGEISHOME'},"ImageIS.jar"); 97 my $java_cmd = "java -jar \"$jar_filename\" \"$query_this_filename\""; 25 98 26 if [ ! -f image_cbs_result.xml ] ; then27 echo ""28 echo "Error: Failed to generate image_cbs_result.xml"29 echo " Check catalina.out for server-side error messages"30 echo ""31 exit 132 elif [ ! -s image_cbs_result.xml ] ; then33 echo ""34 echo "Warning: Server returned zero sized file image_cbs_result.xml"35 echo " Check that the doc-id used is valid"36 echo ""37 else38 cat image_cbs_result.xml39 echo ""40 /bin/rm image_cbs_result.xml41 fi42 99 100 print "Querying $docid\n"; 101 102 chdir($tmp_dir); 103 my $status = system($java_cmd); 104 105 if ($status == 0 ) { 106 &util::rm($query_this_filename); 107 } 108 else { 109 print STDERR "Error: Failed to run:\n"; 110 print STDERR "$!\n"; 111 exit 1; 112 } 113 114 my $result_filename = &util::filename_cat($tmp_dir,"image_cbs_result.xml"); 115 116 if ( ! -f $result_filename ) { 117 print STDERR "\n"; 118 print STDERR "Error: Failed to generate $result_filename.xml\n"; 119 print STDERR " Check Tomcat's catalina.out for server-side error messages\n"; 120 print STDERR "\n"; 121 exit 1; 122 } 123 elsif ( -s $result_filename == 0) { 124 print STDERR "\n"; 125 print STDERR "Warning: Server returned zero sized file image_cbs_result.xml\n"; 126 print STDERR " Check that the doc-id used is valid\n"; 127 print STDERR "\n"; 128 &util::rm($result_filename); 129 } 130 else { 131 132 if (open(FIN,"<$result_filename")) { 133 134 my $line; 135 while (defined ($line=<FIN>)) { 136 print $line; 137 } 138 139 close(FIN); 140 } 141 else { 142 print STDERR "Error: failed to read $result_filename\n"; 143 print STDERR "$!\n"; 144 } 145 146 print "\n"; 147 &util::rm($result_filename); 148 } 149 } 150 151 152 main(); 153 154 155 156
Note:
See TracChangeset
for help on using the changeset viewer.