Changeset 21719 for main/trunk
- Timestamp:
- 2010-02-16T19:57:37+13:00 (14 years ago)
- Location:
- main/trunk/greenstone2/perllib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/g2futil.pm
r21687 r21719 320 320 321 321 # b. Use the collectParentDir to create the contents of gsdl.xml 322 my $greenstone_url_prefix = &util::get_greenstone_url_prefix(); # would have the required slash at front 322 323 my $gsdlXMLcontents = "<?xml version='1.0' encoding='utf-8'?>\n<Context docBase=\""; 323 $gsdlXMLcontents = $gsdlXMLcontents.$collectParentDir."\" path=\" /gsdl\"></Context>";324 $gsdlXMLcontents = $gsdlXMLcontents.$collectParentDir."\" path=\"$greenstone_url_prefix\"></Context>"; 324 325 325 326 # 3. If there is already a gsdl.xml file in host_path, compare the string we -
main/trunk/greenstone2/perllib/plugouts/FedoraMETSPlugout.pm
r21687 r21719 68 68 69 69 my $self = new METSPlugout($plugoutlist,$inputargs,$hashArgOptLists); 70 70 71 71 return bless $self, $class; 72 72 } … … 544 544 $gsdl_href =~ s/\\/\//g; # make sure we have url paths (which only use / not \) 545 545 my $localfedora = &util::filename_cat($ENV{'GSDL3SRCHOME'}, "packages", "tomcat", "conf", "Catalina", "localhost", "fedora.xml"); 546 if($ENV{'GSDL3SRCHOME'} && -e $localfedora) { # prepend gsdl 547 $gsdl_href = "/greenstone3/sites/localsite/$gsdl_href"; # Fedora uses Greenstone's tomcat 546 547 my $greenstone_url_prefix = &util::get_greenstone_url_prefix(); 548 # prepend url_prefix (which will contain the forward slash upfront) 549 if($ENV{'GSDL3SRCHOME'} && -e $localfedora) { # Fedora uses Greenstone's tomcat. 550 $gsdl_href = "$greenstone_url_prefix/sites/localsite/$gsdl_href"; # Default: /greenstone3/sites/localsite/$gsdl_href 548 551 } else { 549 $gsdl_href = " /gsdl/$gsdl_href";552 $gsdl_href = "$greenstone_url_prefix/$gsdl_href"; # By default: "/greenstone/$gsdl_href"; 550 553 } 551 554 … … 680 683 $gsdl_href =~ s/\\/\//g; # make sure we have url paths (which only use / not \) 681 684 my $localfedora = &util::filename_cat($ENV{'GSDL3SRCHOME'}, "packages", "tomcat", "conf", "Catalina", "localhost", "fedora.xml"); 682 if($ENV{'GSDL3SRCHOME'} && -e $localfedora) { # prepend gsdl 683 $gsdl_href = "/greenstone3/sites/localsite/$gsdl_href"; # Fedora uses Greenstone's tomcat 685 686 my $greenstone_url_prefix = &util::get_greenstone_url_prefix(); 687 # prepend url_prefix (which will contain the forward slash upfront) 688 if($ENV{'GSDL3SRCHOME'} && -e $localfedora) { # Fedora uses Greenstone's tomcat. 689 $gsdl_href = "$greenstone_url_prefix/sites/localsite/$gsdl_href"; # Default: /greenstone3/sites/localsite/$gsdl_href 684 690 } else { 685 $gsdl_href = " /gsdl/$gsdl_href";691 $gsdl_href = "$greenstone_url_prefix/$gsdl_href"; # By default: "/greenstone/$gsdl_href"; 686 692 } 687 693 -
main/trunk/greenstone2/perllib/util.pm
r21664 r21719 1142 1142 1143 1143 1144 # Returns the greenstone URL prefix extracted from the appropriate GS2/GS3 config file. 1145 # By default, /greenstone3 for GS3 or /greenstone for GS2. 1146 sub get_greenstone_url_prefix() { 1147 # if already set on a previous occasion, just return that 1148 # (Don't want to keep repeating this: cost of re-opening and scanning files.) 1149 return $ENV{'GREENSTONE_URL_PREFIX'} if($ENV{'GREENSTONE_URL_PREFIX'}); 1150 1151 my ($configfile, $urlprefix, $defaultUrlprefix); 1152 my @propertynames = (); 1153 1154 if($ENV{'GSDL3SRCHOME'}) { 1155 $defaultUrlprefix = "/greenstone3"; 1156 $configfile = &util::filename_cat($ENV{'GSDL3SRCHOME'}, "packages", "tomcat", "conf", "Catalina", "localhost", "greenstone3.xml"); 1157 push(@propertynames, qw/path\s*\=/); 1158 } else { 1159 $defaultUrlprefix = "/greenstone"; 1160 $configfile = &util::filename_cat($ENV{'GSDLHOME'}, "cgi-bin", "gsdlsite.cfg"); 1161 push(@propertynames, (qw/\nhttpprefix/, qw/\ngwcgi/)); # inspect one property then the other 1162 } 1163 1164 $urlprefix = &extract_propvalue_from_file($configfile, \@propertynames); 1165 1166 if(!$urlprefix) { # no values found for URL prefix, use default values 1167 $urlprefix = $defaultUrlprefix; 1168 } else { 1169 #gwcgi can contain more than the wanted prefix, we split on / to get the first "directory" level 1170 $urlprefix =~ s/^\///; # remove the starting slash 1171 my @dirs = split(/(\\|\/)/, $urlprefix); 1172 $urlprefix = shift(@dirs); 1173 1174 if($urlprefix !~ m/^\//) { # in all cases: ensure the required forward slash is at the front 1175 $urlprefix = "/$urlprefix"; 1176 } 1177 } 1178 1179 # set for the future 1180 $ENV{'GREENSTONE_URL_PREFIX'} = $urlprefix; 1181 # print STDERR "*** in get_greenstone_url_prefix(): $urlprefix\n\n"; 1182 return $urlprefix; 1183 } 1184 1185 1186 # Given a config file (xml or java properties file) and a list/array of regular expressions 1187 # that represent property names to match on, this function will return the value for the 1st 1188 # matching property name. If the return value is undefined, no matching property was found. 1189 sub extract_propvalue_from_file() { 1190 my ($configfile, $propertynames) = @_; 1191 1192 my $value; 1193 unless(open(FIN, "<$configfile")) { 1194 print STDERR "extract_propvalue_from_file(): Unable to open $configfile. $!\n"; 1195 return $value; # not initialised 1196 } 1197 1198 # Read the entire file at once, as one single line, then close it 1199 my $filecontents; 1200 { 1201 local $/ = undef; 1202 $filecontents = <FIN>; 1203 } 1204 close(FIN); 1205 1206 foreach my $regex (@$propertynames) { 1207 ($value) = $filecontents=~ m/$regex\s*(\S*)/s; # read value of the property given by regex up to the 1st space 1208 if($value) { 1209 $value =~ s/^\"//; # remove any startquotes 1210 $value =~ s/\".*$//; # remove the 1st endquotes (if any) followed by any xml 1211 last; # found value for a matching property, break from loop 1212 } 1213 } 1214 1215 return $value; 1216 } 1217 1144 1218 1145 1219 1;
Note:
See TracChangeset
for help on using the changeset viewer.