1#!/bin/sh 2# 3# @(#)start.sh 6.25 03/12/12 4# Startup wrapper script for xmcd, cda and related programs. 5# This script is used to setup the basic startup environment, 6# and allows network sharing of xmcd files under different 7# platforms and architectures. 8# 9# xmcd - Motif(R) CD Audio Player/Ripper 10# cda - Command-line CD Audio Player/Ripper 11# 12# Copyright (C) 1993-2004 Ti Kan 13# E-mail: xmcd@amb.org 14# 15# This program is free software; you can redistribute it and/or modify 16# it under the terms of the GNU General Public License as published by 17# the Free Software Foundation; either version 2 of the License, or 18# (at your option) any later version. 19# 20# This program is distributed in the hope that it will be useful, 21# but WITHOUT ANY WARRANTY; without even the implied warranty of 22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23# GNU General Public License for more details. 24# 25# You should have received a copy of the GNU General Public License 26# along with this program; if not, write to the Free Software 27# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 28# 29PATH=${PATH}:/sbin:/usr/sbin:/bin:/usr/bin:/etc 30export PATH 31 32 33proc_env() 34{ 35 if [ -z "$XMCD_LIBDIR" ] 36 then 37 XMCD_LIBDIR=/usr/lib/X11/xmcd 38 export XMCD_LIBDIR 39 fi 40 41 SYS_T="$SYS" 42 MACH_T="$MACH" 43 REL_T="$REL" 44 45 XFILESEARCHPATH=$XMCD_LIBDIR/%T/%N%S:$XFILESEARCHPATH 46 XUSERFILESEARCHPATH=$HOME/.xmcdcfg/%N%S:$XUSERFILESEARCHPATH 47 XKEYSYMDB=$XMCD_LIBDIR/app-defaults/XKeysymDB 48 export XFILESEARCHPATH XUSERFILESEARCHPATH XKEYSYMDB 49 50 # Platform-specific handling 51 if [ "$SYS_T" = FreeBSD ] 52 then 53 # Differentiate between FreeBSD versions 54 REL_T=`echo "$REL_T" | sed 's/\..*$//'` 55 SYS_T=${SYS_T}_${REL_T} 56 elif [ "$SYS_T" = SunOS ] 57 then 58 # Differentiate between SunOS 4.x and Solaris 59 case "$REL_T" in 60 4.*) 61 ;; 62 5.*) 63 SYS_T=Solaris 64 ;; 65 *) 66 SYS_T=Solaris 67 ;; 68 esac 69 elif [ -x /bin/i386 -o -x /sbin/i386 ] && i386 70 then 71 case "$REL_T" in 72 3.2) 73 # SCO UNIX/Open Desktop/Open Server 74 if (uname -X | fgrep "Release = 3.2") >/dev/null 2>&1 75 then 76 REL_T=`uname -X 2>/dev/null | \ 77 fgrep "Version = " | \ 78 sed -e 's/Version = //' -e 's/\..*$//'` 79 if [ -z "$REL_T" ] 80 then 81 REL_T=`uname -v | sed 's/\..*$//'` 82 fi 83 SYS_T=SCO_3.2v${REL_T} 84 fi 85 ;; 86 4.*) 87 # UNIX SVR4.x 88 SYS_T=${SYS_T}_${REL_T} 89 ;; 90 5) 91 # UNIX SVR5 92 SYS_T=${SYS_T}_${REL_T} 93 ;; 94 5.*) 95 # UNIX SVR5.x 96 SYS_T=${SYS_T}_${REL_T} 97 ;; 98 *) 99 ;; 100 esac 101 fi 102 103 PATH=$XMCD_LIBDIR/bin-${SYS_T}-${MACH_T}:$XMCD_LIBDIR/scripts:$PATH 104 export PATH 105 106 # Set shared lib search path to include the xmcd arch-dependent 107 # lib directory. 108 # Note that with setuid xmcd/cda executables this has no effect 109 # on some platforms. 110 LD_LIBRARY_PATH=$XMCD_LIBDIR/lib-${SYS_T}-${MACH_T}:$LD_LIBRARY_PATH 111 export LD_LIBRARY_PATH 112 SHLIB_PATH=$XMCD_LIBDIR/lib-${SYS_T}-${MACH_T}:$SHLIB_PATH 113 export SHLIB_PATH 114 115 # Set arch-dependent executable 116 EXEPATH=$XMCD_LIBDIR/bin-${SYS_T}-${MACH_T}/$PROG 117} 118 119 120# 121# Main starts here 122# 123 124PROG=`(basename $0) 2>/dev/null` 125SYS=`(uname -s) 2>/dev/null | sed -e 's/\//_/g' -e 's/-/_/g' -e 's/[ ]/_/g'` 126if [ "$SYS" = IRIX ] 127then 128 MACH=mips 129else 130 MACH=`(uname -m) 2>/dev/null | \ 131 sed -e 's/\//_/g' -e 's/-/_/g' -e 's/[ ]/_/g'` 132fi 133REL=`(uname -r) 2>/dev/null | sed -e 's/\//_/g' -e 's/-/_/g' -e 's/[ ]/_/g'` 134 135o_path=$PATH 136o_ldlibpath=$LD_LIBRARY_PATH 137o_shlibpath=$SHLIB_PATH 138 139proc_env 140if [ -x "$EXEPATH" ] 141then 142 exec "$EXEPATH" ${1+"$@"} 143else 144 # The user may have defined a bad XMCD_LIBDIR environment variable. 145 # Fall back to default and re-try. 146 unset XMCD_LIBDIR 147 PATH=$o_path; export PATH 148 LD_LIBRARY_PATH=$o_ldlibpath; export LD_LIBRARY_PATH 149 SHLIB_PATH=$o_shlibpath; export SHLIB_PATH 150 151 proc_env 152 if [ -x "$EXEPATH" ] 153 then 154 exec "$EXEPATH" ${1+"$@"} 155 else 156 echo "Cannot invoke $EXEPATH" 1>&2 157 echo "Check your installation of ${PROG}." 1>&2 158 exit 1 159 fi 160fi 161 162