diff options
Diffstat (limited to 'pki/base/silent/scripts/pkisilent')
-rwxr-xr-x | pki/base/silent/scripts/pkisilent | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/pki/base/silent/scripts/pkisilent b/pki/base/silent/scripts/pkisilent new file mode 100755 index 000000000..2141f3642 --- /dev/null +++ b/pki/base/silent/scripts/pkisilent @@ -0,0 +1,175 @@ +#!/usr/bin/perl +# --- BEGIN COPYRIGHT BLOCK --- +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301 USA +# +# Copyright (C) 2007 Red Hat, Inc. +# All rights reserved. +# --- END COPYRIGHT BLOCK --- + +############################################################################### +## (1) Specify variables used by this script. ## +############################################################################### + +my $PRODUCT="pki"; +my $libpath=""; + + +############################################################################### +## (2) Define helper functions. ## +############################################################################### + +sub invalid_operating_system() +{ + print "\n"; + print "ERROR: pkisilent does not execute on this operating system!\n"; + print "ERROR: check to make sure pki-native-tools package is installed!\n"; + print "\n"; +} + +sub invalid_architecture() +{ + print "\n"; + print "ERROR: pkisilent does not execute on this architecture\n"; + print "ERROR: check to make sure pki-native-tools package is installed!\n"; + print "\n"; +} + + +############################################################################### +## (3) Set the LD_LIBRARY_PATH environment variable ## +## (as well as the ${libpath} java property) to determine the ## +## search order this command uses to find shared libraries. ## +############################################################################### + +my $OS=`uname -s`; +my $ARCHITECTURE=""; +chop($OS); + + +if($OS eq "Linux") +{ + $ARCHITECTURE=`uname -i`; + chop($ARCHITECTURE); + if($ARCHITECTURE eq "i386") + { + $libpath="/usr/lib"; + + $ENV{LD_LIBRARY_PATH} = "/usr/lib/osutil:" + . "/usr/lib/jss:" + . "/usr/lib/:/lib/:" ; + } + + elsif($ARCHITECTURE eq "x86_64") + { + $libpath="/usr/lib64"; + + $ENV{LD_LIBRARY_PATH} = "/usr/lib64/osutil:" + . "/usr/lib64/jss:" + . "/usr/lib64/:/lib64/:" + . "/usr/lib/osutil:" + . "/usr/lib/jss:" + . "/usr/lib/:/lib/:" ; + } + else + { + invalid_architecture(); + exit(255); + } +} +elsif (${OS} eq "SunOS") +{ + $ARCHITECTURE=`uname -p`; + chop($ARCHITECTURE); + + if( ( ${ARCHITECTURE} eq "sparc" ) && + ( -d "/usr/lib/sparcv9/" ) ) { + $ARCHITECTURE="sparcv9"; + } + + if (${ARCHITECTURE} eq "sparc") + { + $libpath="/usr/lib"; + $ENV{LD_LIBRARY_PATH} = "/usr/lib/java:/usr/lib:/lib" + . "/usr/lib/${PRODUCT}:" + . "/usr/lib/dirsec:" + . "/usr/lib/java/dirsec:"; + } + + elsif (${ARCHITECTURE} eq "sparcv9") + { + $libpath="/usr/lib/sparcv9"; + + $ENV{LD_LIBRARY_PATH} = "/usr/lib/java:/usr/lib:/lib" + . "/usr/lib/${PRODUCT}:" + . "/usr/lib/dirsec:" + . "/usr/lib/sparcv9:/lib/sparcv9:" + . "/usr/lib/sparcv9/java:" + . "/usr/lib/sparcv9/${PRODUCT}:" + . "/usr/lib/sparcv9/dirsec:" + . "/usr/lib/sparcv9/java/dirsec:"; + } + else + { + invalid_architecture(); + exit(255); + } +} +else +{ + invalid_operating_system(); + exit(255); +} + + +############################################################################### +## (4) Set the CP environment variable to determine the search ## +## order this command wrapper uses to find jar files. ## +############################################################################### + +print "libpath=$libpath\n"; + +$ENV{CLASSPATH} = "/usr/share/java/${PRODUCT}/pki-silent.jar:" + . "/usr/share/java/${PRODUCT}/pki-certsrv.jar:" + . "/usr/share/java/${PRODUCT}/pki-cmscore.jar:" + . "/usr/share/java/${PRODUCT}/pki-nsutil.jar:" + . "/usr/share/java/${PRODUCT}/pki-cmsutil.jar:" + . "/usr/share/java/${PRODUCT}/pki-tools.jar:" + . "/usr/share/java/ldapjdk.jar:" + . "/usr/share/java/xerces-j2.jar:" + . "/usr/share/java/xml-commons-apis.jar:" + . "/usr/share/java/xml-commons-resolver.jar:" + . "/usr/lib/java/dirsec/jss4.jar:" + . "/usr/lib/java/jss4.jar:" + . "/usr/lib/java/dirsec/osutil.jar:" + . "/usr/lib/java/osutil.jar:"; + + +############################################################################### +## (5) Execute the java command specified by this java command wrapper ## +## based upon the preset LD_LIBRARY_PATH and CP environment variables. ## +############################################################################### + +my $output = `java -cp $ENV{CLASSPATH} @ARGV`; +my $status = $?; + +print "#######################################################################\n"; +print "$output\n"; +print "#######################################################################\n"; + +if ($status != 0) { + exit(255); +} else { + exit(0); +} |