#!/bin/sh # --- BEGIN COPYRIGHT BLOCK --- # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; 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 --- # Check to insure that this script's original invocation directory # has not been deleted! CWD=`/bin/pwd > /dev/null 2>&1` if [ $? -ne 0 ] ; then echo "Cannot invoke '$0' from non-existent directory!" exit 255 fi ############################################################################### ## (1) Specify variables used by this script. ## ############################################################################### PRODUCT=[PKI_PRODUCT] SUBSYSTEM=[PKI_SUBSYSTEM] COMMAND=[PKI_COMMAND] ############################################################################### ## (2) Define helper functions. ## ############################################################################### invalid_operating_system() { echo echo "ERROR: '$0' does not execute on the '$1' operating system!" echo } invalid_architecture() { echo echo "ERROR: '$0' does not execute on the '$1' architecture!" echo } ############################################################################### ## (3) Set environment variables. ## ## ## ## Set the LD_LIBRARY_PATH environment variable to determine the ## ## search order this command wrapper uses to find shared libraries. ## ## ## ## Set the PATH environment variable to determine the search ## ## order this command wrapper uses to find binary executables. ## ## ## ## NOTE: Since "/bin" is nothing more than a symbolic link to ## ## "/usr/bin" on Solaris, this directory will always be ## ## excluded from the search path on this platform. ## ## ## ############################################################################### OS=`uname -s` if [ "${OS}" = "Linux" ] ; then ARCHITECTURE=`uname -i` if [ "${ARCHITECTURE}" = "i386" ] ; then LD_LIBRARY_PATH=/usr/lib:/lib LD_LIBRARY_PATH=/usr/lib/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH PATH=/usr/lib/${PRODUCT}:/usr/bin:/bin PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${PATH} export PATH elif [ "${ARCHITECTURE}" = "x86_64" ] ; then LD_LIBRARY_PATH=/usr/lib:/lib LD_LIBRARY_PATH=/usr/lib/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib64:/lib64:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib64/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib64/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib64/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH PATH=/usr/lib/${PRODUCT}:/usr/bin:/bin PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${PATH} PATH=/usr/lib64/${PRODUCT}:${PATH} PATH=/usr/lib64/${PRODUCT}/${SUBSYSTEM}:${PATH} export PATH else invalid_architecture "${ARCHITECTURE}" exit 255 fi elif [ "${OS}" = "SunOS" ] ; then ARCHITECTURE=`uname -p` if [ "${ARCHITECTURE}" = "sparc" ] && [ -d "/usr/lib/sparcv9/" ] ; then ARCHITECTURE="sparcv9" fi if [ "${ARCHITECTURE}" = "sparc" ] ; then LD_LIBRARY_PATH=/usr/lib:/lib LD_LIBRARY_PATH=/usr/lib/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH PATH=/usr/bin PATH=/usr/lib/${PRODUCT}:${PATH} PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${PATH} export PATH elif [ "${ARCHITECTURE}" = "sparcv9" ] ; then LD_LIBRARY_PATH=/usr/lib:/lib LD_LIBRARY_PATH=/usr/lib/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/sparcv9:/lib/sparcv9:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/sparcv9/dirsec:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/sparcv9/${PRODUCT}:${LD_LIBRARY_PATH} LD_LIBRARY_PATH=/usr/lib/sparcv9/${PRODUCT}/${SUBSYSTEM}:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH PATH=/usr/bin/sparcv9 PATH=/usr/lib/${PRODUCT}:${PATH} PATH=/usr/lib/${PRODUCT}/${SUBSYSTEM}:${PATH} PATH=/usr/lib/sparcv9/${PRODUCT}:${PATH} PATH=/usr/lib/sparcv9/${PRODUCT}/${SUBSYSTEM}:${PATH} export PATH else invalid_architecture "${ARCHITECTURE}" exit 255 fi else invalid_operating_system "${OS}" exit 255 fi ############################################################################### ## (4) Execute the binary executable specified by this command wrapper ## ## based upon the preset LD_LIBRARY_PATH and PATH environment variables.## ############################################################################### ORIGINAL_IFS=${IFS} IFS=: for dir in ${PATH} do if [ -x ${dir}/${COMMAND} ] then IFS=${ORIGINAL_IFS} ${dir}/${COMMAND} "$@" exit $? fi done echo "Unable to find \"${COMMAND}\" in \"${PATH}\"!" exit 255