XCOMM! KORNSHELL XCOMM $XConsortium: installCDE.src /main/20 1996/11/25 14:21:13 drk $ XCOMM XCOMM This script uses the 'CDE' databases to install either the Desktop XCOMM environment on a specified machine or creates a tar ball to be used XCOMM in an install process. XCOMM XCOMM this script accepts the following parameters: XCOMM -s -- The top of build tree where the files are XCOMM gathered from. XCOMM -z -- The desktop install package XCOMM XCOMM Optional parameters: XCOMM XCOMM -t -- where to store install package XCOMM -pI -- where CDE_INSTALLATION_TOP will be linked to. XCOMM -pC -- where CDE_CONFIGURATION_TOP will be linked to. XCOMM -pV -- where CDE_LOGFILES_TOP will be linked to. XCOMM -a XCOMM -f -- a quoted, space-separated list of XCOMM filesets to load. The .udb extension XCOMM is not required. XCOMM XCOMM -clean -- remove the temporary, configuration and installation XCOMM directories XCOMM -cleanTwo-- remove the temporary and installation directories XCOMM but NOT the configuration directory XCOMM -cleanEtc-- remove the configuration directories XCOMM -prog -- load only the development environment XCOMM -runtime -- load only the runtime environment XCOMM -pack -- create packing list XCOMM -pseudo -- don't configure the desktop XCOMM -nocompress -- don't compress the tarball (-t only) XCOMM XCOMM -Lang -- load the localized filesets XCOMM -LinkStepOnly -- set up the -pI, -pC, and -pV links XCOMM then exit XCOMM -DontRunScripts -- stop after installation XCOMM -RunScriptsOnly -- only execute the scripts XCOMM -configureOnly -- only configure the desktop XCOMM XCOMM ########################################################################## #define HASH # #define STAR * LOGFILE="installCDE.$$.log" REVISION="$(echo "$Revision: /main/20 $" | awk '{print $2}')" Log() { echo "$1" | tee -a $LOGFILE } MakeTarball() { Log "\nGenerating UNIX Desktop install package $DATE in $TARBALL_LOCATION" HASH HASH create installable tarball HASH Log "Creating tarball..." if [ $PLATFORM = "usl" -o "$PLATFORM" = "uxp" ] then ulimit -f unlimited fi DIRNAME=build.$DATE mkdir -p $TARBALL_LOCATION/$DIRNAME cd / echo $DATE >$LOGFILES_LOCATION/.build.$DATE chown bin $LOGFILES_LOCATION/.build.$DATE if [ "$COMPRESS_TARBALL" = "yes" ]; then tar -cf - $INSTALL_LOCATION/STAR \ 2>$TARBALL_LOCATION/$DIRNAME/extract.err | compress -c >$TARBALL_LOCATION/$DIRNAME/dttar.Z else tar -cf $TARBALL_LOCATION/$DIRNAME/dt.tar \ $INSTALL_LOCATION/STAR \ 2>$TARBALL_LOCATION/$DIRNAME/extract.err 2>&1 fi if [ "$ACTUAL_INSTALLATION_LOC" = "" ]; then actualInstallDir=$INSTALL_LOCATION else actualInstallDir=$ACTUAL_INSTALLATION_LOC fi let size=$(du -s $actualInstallDir | awk '{print $1}')*512 HASH load installation fileset *after* tarball generated LoadFileSet "" "CDE-INSTALL" HASH create config dir destPost=$TARBALL_LOCATION/$DIRNAME/config mkdir $destPost HASH copy config and platform config scripts src=$INSTALL_LOCATION/install/$PLATFORM_SCRIPT_DIR cp $src/config/STAR.cfg $destPost HASH copy this script and install.dt platform overrides cp $src/install.dto $TARBALL_LOCATION/$DIRNAME/install.dto cp $src/install.cde $TARBALL_LOCATION/$DIRNAME/install.cde chmod 755 $TARBALL_LOCATION/$DIRNAME/install.cde cd / Log "done." cat >$TARBALL_LOCATION/$DIRNAME/dt.pkg <$TARBALL_LOCATION/$DIRNAME/build.status < OVERALL PERFORMANCE: MAJOR PROBLEMS: FIN chmod g+w $TARBALL_LOCATION/$DIRNAME/build.status } DoFilesetScript() { typeset ScriptName FilesetName=$1 if [ "$BUILD_TREE" = "" ]; then ScriptName=$3 # use short config file name (foo.cfg) else ScriptName=$2 # use long config file name (configFoo) fi if [ $CDECONFIGDIR = "CONFIG" ]; then typeset -u ScriptName fi test_string=${DATABASE_FILES#*$FilesetName} if (( ${#DATABASE_FILES} > ${#test_string} )) then if [ -x $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName ] then Log "Executing $PLATFORM specific $FilesetName customize script" KORNSHELL $POST_INSTALL_DIR/$PLATFORM_SCRIPT_DIR/$ScriptName -e 2>&1 | \ tee -a $LOGFILE elif [ -x $POST_INSTALL_DIR/$ScriptName ] then Log "Executing $FilesetName customize script" KORNSHELL $POST_INSTALL_DIR/$ScriptName -e 2>&1 | tee -a $LOGFILE fi fi } DoScripts() { Log " " DoFilesetScript CDE-TT configTT tt.cfg DoFilesetScript CDE-MIN configMin min.cfg DoFilesetScript CDE-SHLIBS configShlibs shlibs.cfg DoFilesetScript CDE-RUN configRun run.cfg } CreatePackingList() { Log " " Log "Creating packing list." touch $INSTALL_LOCATION/Packing_list for i in `echo $DATABASE_FILES` do Log " for $i" KORNSHELL $TOOL_DIR/udbToAny.ksh -toDB -ReleaseStream $PLATFORM $DATABASE_DIR/${i}.udb > /tmp/${i}.db if [ -r /tmp/${i}.db ] then for file in `fgrep install_target /tmp/${i}.db | cut -sf 2 -d \: ` do echo "$file" >>$INSTALL_LOCATION/Packing_list done fi done } CleanDaemons() { HASH kill these processes so that they can be removed and new ones HASH installed for i in inetd rpc.ttdbserver rpc.cmsd do if [ "$PLATFORM" = "aix" -a $i = "inetd" ] then lssrc -s inetd >/dev/null 2>&1 if [ $? = "0" ] then stopsrc -s inetd >>$LOGFILE 2>&1 fi elif [ "$PLATFORM" = openbsd ] then true else ps -ef | grep $i | grep -v grep >/tmp/tmppsout if [ -s /tmp/tmppsout ] then awk '{print "kill " $2}' /tmp/tmppsout | /bin/csh -f sleep 2 fi fi done rm -f /tmp/tmppsout } RestartInetd() { HASH now restart inetd OLDPWD=`pwd` cd / if [ "$PLATFORM" = "sun" -o "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ] then /usr/sbin/inetd -s elif [ "$PLATFORM" = "aix" ] then startsrc -s inetd >>$LOGFILE 2>&1 elif [ "$PLATFORM" = "dec" ] then /usr/sbin/inetd elif [ "$PLATFORM" = "openbsd" ] then true else #ifdef hpV4 /usr/sbin/inetd #else /etc/inetd #endif fi cd $OLDPWD } CheckForActualLocations() { XCOMM XCOMM if different actual locations specified, set up the links XCOMM if [ "$CLEAN_DAEMONS" = "yes" ] then CleanDaemons fi HASH remove the contents of the installation directory then the directory HASH itself if [ "$CLEANING" = "yes" ] then Log "Removing $INSTALL_LOCATION contents... " if [ -d $INSTALL_LOCATION ] then rm -rf $INSTALL_LOCATION/STAR if [ "$LeaveLinks" = "yes" ] then if [ ! -L $INSTALL_LOCATION ] then rm -rf $INSTALL_LOCATION fi else if [ -L $INSTALL_LOCATION ] then rm -f $INSTALL_LOCATION else rm -rf $INSTALL_LOCATION fi fi fi fi if [ "$CONFIGURE_ONLY" = "no" ] then if [ "$ACTUAL_INSTALLATION_LOC" != "" ] then HASH HASH first create the actual directory - if not there HASH if [ ! -d $ACTUAL_INSTALLATION_LOC ] then mkdir -p $ACTUAL_INSTALLATION_LOC if [ ! -d $ACTUAL_INSTALLATION_LOC ] then Log "cannot create $ACTUAL_INSTALLATION_LOC directory" exit 1 fi fi ln -s $ACTUAL_INSTALLATION_LOC $INSTALL_LOCATION else if [ ! -d $INSTALL_LOCATION -a ! -L $INSTALL_LOCATION ]; then mkdir -p $INSTALL_LOCATION fi fi fi if [ "$CLEAN_DAEMONS" = "yes" ] then RestartInetd fi HASH remove the contents of the configuration directory if [ "$CLEANING_ETC" = "yes" ] then Log "Removing $CONFIGURE_LOCATION contents... " if [ -d $CONFIGURE_LOCATION ] then rm -rf $CONFIGURE_LOCATION/STAR if [ "$LeaveLinks" = "yes" ] then if [ ! -L $CONFIGURE_LOCATION ] then rm -rf $CONFIGURE_LOCATION fi else if [ -L $CONFIGURE_LOCATION ] then rm -f $CONFIGURE_LOCATION else rm -rf $CONFIGURE_LOCATION fi fi fi fi if [ "$ACTUAL_CONFIGURATION_LOC" != "" ] then if [ ! -d $ACTUAL_CONFIGURATION_LOC ] then mkdir -p $ACTUAL_CONFIGURATION_LOC if [ ! -d $ACTUAL_CONFIGURATION_LOC ] then Log "cannot create $ACTUAL_CONFIGURATION_LOC directory" exit 1 fi fi ln -s $ACTUAL_CONFIGURATION_LOC $CONFIGURE_LOCATION else if [ ! -d $CONFIGURE_LOCATION -a ! -L $CONFIGURE_LOCATION ]; then mkdir -p $CONFIGURE_LOCATION fi fi if [ "$CLEANING" = "yes" ] then Log "Removing $LOGFILES_LOCATION contents... " if [ -d $LOGFILES_LOCATION ] then rm -rf $LOGFILES_LOCATION/STAR if [ "$LeaveLinks" = "yes" ] then if [ ! -L $LOGFILES_LOCATION ] then rm -rf $LOGFILES_LOCATION fi else if [ -L $LOGFILES_LOCATION ] then rm -f $LOGFILES_LOCATION else rm -rf $LOGFILES_LOCATION fi fi fi fi if [ "$ACTUAL_VAR_LOC" != "" ] then if [ ! -d $ACTUAL_VAR_LOC ] then mkdir -p $ACTUAL_VAR_LOC if [ ! -d $ACTUAL_VAR_LOC ] then Log "cannot create $ACTUAL_VAR_LOC directory" exit 1 fi fi ln -s $ACTUAL_VAR_LOC $LOGFILES_LOCATION else if [ ! -d $LOGFILES_LOCATION -a ! -L $LOGFILES_LOCATION ]; then mkdir -p $LOGFILES_LOCATION fi fi Log " " } USAGE() { echo -e "Usage: $(basename $0) {-s |-z } [options]" echo -e "" echo -e "\t-s \t\t\tthe top of the build tree" echo -e "\t-z \t\tthe desktop install package" echo -e "" echo -e "\tOptions:" echo -e "" echo -e "\t[-t ]\tif specified create an" echo -e "\t\t\t\t\tinstall package and store it in the" echo -e "\t\t\t\t\tdestination." echo -e "\t[-pI ]\twhere" CDE_INSTALLATION_TOP "will be linked to." echo -e "\t[-pC ]\twhere" CDE_CONFIGURATION_TOP "will be linked to." echo -e "\t[-pV ]\twhere" CDE_LOGFILES_TOP "will be linked to." echo -e "" echo -e "\t[-a ]\t\talternate place to get the" echo -e "\t\t\t\t\tudb files from." echo -e "\t[-f ]\t\t\tspecify filesets to be loaded." echo -e "\t\t\t\t\tThe list should be double-quoted," echo -e "\t\t\t\t\tspace-separated, with no .udb" echo -e "\t\t\t\t\textensions." echo -e "" echo -e "\t[-clean]\t\t\tremove the temporary, configuration, and" echo -e "\t\t\t\t\tinstallation directory" echo -e "\t[-cleanTwo]\t\t\tremove the temporary and installation " echo -e "\t\t\t\t\tdirectory, but NOT the configuration directory" echo -e "\t[-cleanEtc]\t\t\tremove the configuration directory, but " echo -e "\t\t\t\t\NOT the temporary and installation directories" echo -e "\t[-prog]\t\t\t\tload only the development environment" echo -e "\t[-runtime]\t\t\tload only the runtime environment" echo -e "\t[-relative]\t\t\trun the relative-located config scripts" echo -e "\t[-pack]\t\t\t\tcreate a packing list" echo -e "\t[-pseudo]\t\t\tdo not configure desktop when installing" echo -e "\t[-nocompress]\t\t\tdo not compress tarball when creating package" echo -e "\t[-lang LANG]\t\t\tspecify LANG to load appropriate localized" echo -e "\t\t\t\t\tfilesets" echo -e "\t[-LeaveLinks]\t\t\t\tdo not delete the links after cleaning" echo -e "" echo -e "\t[-LinkStepOnly]\t\t\tset up the -pI, -pC, and -pV links" echo -e "\t\t\t\t\tthen exit" echo -e "\t[-DontRunScripts]\t\tstop after installation" echo -e "\t[-RunScriptsOnly]\t\tonly execute the scripts" echo -e "\t[-configureOnly]\t\tonly configure the desktop" echo -e "" echo -e "\tExamples:" echo -e "" echo -e "\tinstallCDE -s /x/cde_hp700_90" echo -e "\tinstallCDE -s /x/cde_aix_32 -f \"CDE_MIN CDE-SHLIBS\"" echo -e "\tinstallCDE -s /x/cde_sun_52 -pI /bigdisk/opt/dt -clean" echo -e "\tinstallCDE -s /x/cde_sun_52 -pI /dtinstall -clean\\" echo -e "\t\t-pseudo -t /dtpackages -nocompress" } XCOMM XCOMM LoadFileSet() - load a UDB file XCOMM $1 - fileset number XCOMM $2 - fileset name XCOMM LoadFileSet() { if [ "$1" = "" ]; then num="" else num="$1." fi XCOMM don't bother if the fileset doesn't exist if [ ! -e $DATABASE_DIR/${2}.udb ] then return fi Log " $num installing database $2" Log " - creating ${2}.lst file" KORNSHELL $TOOL_DIR/udbToAny.ksh -toLst -ReleaseStream $PLATFORM \ $DATABASE_DIR/${2}.udb > /tmp/${2}.lst Log " - installing ... \c" KORNSHELL $TOOL_DIR/mkProd -D / -S $BUILD_TREE /tmp/${2}.lst \ 2>/tmp/${2}.err 1>/tmp/${2}.good Log "done." Log " - checking for errors ..." rm -f /tmp/${2}.missing awk '{if ($1 == "ERROR:") print " " $4}' \ /tmp/${2}.err >> /tmp/${2}.missing if [ -s /tmp/${2}.missing ] then Log " - missing files:" cat /tmp/${2}.missing | tee -a $LOGFILE fi } ORIGINAL_COMMAND_LINE="$*" XCOMM Set which system we are on BUILDSYSTEM=$(uname) PLATFORM="" PLATFORM_SCRIPT_DIR="" XCOMM XCOMM Set system XCOMM if [ $BUILDSYSTEM = "AIX" ]; then PLATFORM=aix PLATFORM_SCRIPT_DIR=ibm elif [ $BUILDSYSTEM = "SunOS" ]; then PLATFORM=sun PLATFORM_SCRIPT_DIR=sun elif [ $BUILDSYSTEM = "UNIX_SV" ]; then PLATFORM=usl PLATFORM_SCRIPT_DIR=usl elif [ $BUILDSYSTEM = "UNIX_System_V" ]; then PLATFORM=uxp PLATFORM_SCRIPT_DIR=uxp elif [ $BUILDSYSTEM = "OSF1" ]; then PLATFORM=dec PLATFORM_SCRIPT_DIR=dec elif [ $BUILDSYSTEM = "Linux" ]; then PLATFORM="linux" PLATFORM_SCRIPT_DIR="" elif [ $BUILDSYSTEM = "OpenBSD" ]; then PLATFORM="openbsd" PLATFORM_SCRIPT_DIR="" else # Build system = HP PLATFORM=hp-ux PLATFORM_SCRIPT_DIR=hp fi if [ "$PLATFORM" = "aix" ]; then USER=`/bin/whoami` elif [ "$PLATFORM" = "sun" -o "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ]; then USER=`/usr/ucb/whoami` else USER=`/usr/bin/whoami` fi if [ "$USER" != "root" ]; then echo "" echo "You should be root to run this script. Continuing anyway." echo "" fi if [ "$PLATFORM" = "usl" -o "$PLATFORM" = "uxp" ] then umask 000 fi unset TMPDIR CLEANING="no" CLEANING_ETC="no" TARBALL="no" COMPRESS_TARBALL="yes" USE_ALTERNATE_UDB_DIR="no" DEVELOP_ENV="no" RUNTIME_ENV="no" USE_RELATIVE="no" STARTING_DIR=$PWD ACTUAL_INSTALLATION_LOC="" ACTUAL_CONFIGURATION_LOC="" ACTUAL_VAR_LOC="" CREATE_PACKING_LIST="no" DO_LINK_STEP_ONLY="no" DO_INSTALL_ONLY="no" RUN_SCRIPTS="yes" RUN_SCRIPTS_ONLY="no" DATABASE_FILES="" BUILD_TREE="" TAR_DIR="" LeaveLinks="no" REMOVE_LINKS="no" CLEAN_DAEMONS="yes" theLang="" CONFIGURE_ONLY="no" rm -f $LOGFILE Log "Options specified..." while [ $# -ne 0 ]; do case $1 in -s) Log " - get the build tree to extract from" shift; [ $# -ne 0 ] || { USAGE exit 1; } BUILD_TREE=$1 shift; ;; -z) Log " - get the install package to extract from" shift; [ $# -ne 0 ] || { USAGE exit 1; } TAR_TREE=$1 shift; ;; -t) Log " - where to put the install package" shift; [ $# -ne 0 ] || { USAGE exit 1; } if [ "$SOURCE_TAR_FILE" = "" ] then TARBALL="yes" TARBALL_LOCATION=$1 fi shift; ;; -a) Log " - alternate place to get the udb files from" shift; [ $# -ne 0 ] || { USAGE exit 1; } ALTERNATE_UDB_DIR=$1 USE_ALTERNATE_UDB_DIR="yes" shift; ;; -f) Log " - load specific filesets" shift; [ $# -ne 0 ] || { USAGE exit 1; } DATABASE_FILES=$1 shift; ;; -p) Log " - get all locations" shift; [ $# -ne 0 ] || { USAGE exit 1; } ACTUAL_INSTALLATION_LOC=$1 ACTUAL_CONFIGURATION_LOC=$1 ACTUAL_VAR_LOC=$1 shift; ;; -pI) Log " - get actual installation location" shift; [ $# -ne 0 ] || { USAGE exit 1; } ACTUAL_INSTALLATION_LOC=$1 shift; ;; -pC) Log " - get actual configuration location" shift; [ $# -ne 0 ] || { USAGE exit 1; } ACTUAL_CONFIGURATION_LOC=$1 shift; ;; -pV) Log " - get actual var location" shift; [ $# -ne 0 ] || { USAGE exit 1; } ACTUAL_VAR_LOC=$1 shift; ;; -clean) Log " - delete all three cde directories" CLEANING="yes" CLEANING_ETC="yes" shift; ;; -cleanTwo) Log " - delete only temporary and installation directories" CLEANING="yes" shift; ;; -cleanEtc) Log " - delete only the configuration directory" CLEANING_ETC="yes" shift; ;; -prog) Log " - load only the development environment" DEVELOP_ENV="yes" RUNTIME_ENV="no" shift; ;; -runtime) Log " - load only the runtime environment" RUNTIME_ENV="yes" DEVELOP_ENV="no" shift; ;; -relative) Log " - run the relative-located config scripts" USE_RELATIVE="yes" shift; ;; -pack) Log " - create a packing list" CREATE_PACKING_LIST="yes" shift; ;; -LeaveLinks) Log " - do not remove the links" LeaveLinks="yes" shift; ;; -LinkStepOnly) Log " - do link step only" DO_LINK_STEP_ONLY="yes" shift; ;; -DontRunScripts) Log " - stop after installation" DO_INSTALL_ONLY="yes" shift; ;; -RunScriptsOnly) Log " - only run scripts" RUN_SCRIPTS_ONLY="yes" shift; ;; -pseudo) Log " - pseudo install" RUN_SCRIPTS="no" REMOVE_LINKS="yes" CLEAN_DAEMONS="no" shift; ;; -nocompress) Log " - do not compress tarball" COMPRESS_TARBALL="no" shift; ;; -lang) Log " - load localized filesets" shift; [ $# -ne 0 ] || { USAGE exit 1; } theLang=$1 shift; ;; -configureOnly) Log " - Configure only" CONFIGURE_ONLY="yes" CLEAN_DAEMONS="yes" shift; ;; *) Log " - unknown option" USAGE exit 1; ;; esac done echo "" if [ -z "$BUILD_TREE" -a -z "$TAR_TREE" ] then USAGE exit 1 fi if [ "$BUILD_TREE" != "" -a ! -d "$BUILD_TREE" ] then Log "Build tree does not exist." exit 1 fi if [ "$TAR_TREE" != "" -a ! -d "$TAR_TREE" ] then Log "Tar tree does not exist." exit 1 fi CDEPACKAGE=dt.pkg CDETARFILE=dt.tar CDETARFILEZ=dttar.Z CDECONFIGDIR=config XCOMM XCOMM get the current time stamp if going to create a tarball XCOMM if [ $TARBALL = "yes" ]; then set -- `/bin/date` DATE=$2_$3_$4_$6 fi if [ -z "$BUILD_TREE" -a ${0##STAR/} = INSTALL.CDE ]; then typeset -u CDEPACKAGE typeset -u CDETARFILE typeset -u CDETARFILEZ typeset -u CDECONFIGDIR fi TOOL_DIR=$BUILD_TREE/admin/IntegTools/dbTools if [ "$USE_RELATIVE" = "yes" ] then POST_INSTALL_DIR=../post_install else if [ -z "$BUILD_TREE" ] then POST_INSTALL_DIR=$TAR_TREE/$CDECONFIGDIR else POST_INSTALL_DIR=$BUILD_TREE/admin/IntegTools/post_install fi fi if [ "$USE_ALTERNATE_UDB_DIR" = "yes" ] then DATABASE_DIR=$ALTERNATE_UDB_DIR/databases else DATABASE_DIR=$BUILD_TREE/databases fi if [ "$DATABASE_FILES" = "" ] then if [ "$DEVELOP_ENV" = "yes" ] then DATABASE_FILES="CDE-HELP-PRG CDE-PRG CDE-INC CDE-DEMOS \ CDE-MAN-DEV CDE-SHLIBS" elif [ "$RUNTIME_ENV" = "yes" ] then DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \ CDE-HELP-C CDE-MSG-C CDE-SHLIBS CDE-ICONS CDE-FONTS \ CDE-INFO CDE-INFOLIB-C" else DATABASE_FILES="CDE-RUN CDE-MIN CDE-TT CDE-MAN CDE-HELP-RUN CDE-C \ CDE-MSG-C CDE-HELP-C CDE-SHLIBS CDE-HELP-PRG \ CDE-PRG CDE-INC CDE-DEMOS CDE-MAN-DEV CDE-ICONS \ CDE-FONTS CDE-INFO CDE-INFOLIB-C" fi HASH now load any localized filesets if [ "$DEVELOP_ENV" != "yes" ] then if [ "$theLang" != "" ] then DATABASE_FILES="$DATABASE_FILES CDE-$theLang CDE-MSG-$theLang \ CDE-HELP-$theLang" else HASH load all current (working) languages DATABASE_FILES="$DATABASE_FILES \ CDE-DE \ CDE-MSG-DE \ CDE-HELP-DE \ CDE-ES \ CDE-MSG-ES \ CDE-HELP-ES \ CDE-FR \ CDE-MSG-FR \ CDE-HELP-FR \ CDE-IT \ CDE-MSG-IT \ CDE-HELP-IT " fi fi fi [ -z "$INSTALL_LOCATION" ] && INSTALL_LOCATION=CDE_INSTALLATION_TOP [ -z "$CONFIGURE_LOCATION" ] && CONFIGURE_LOCATION=CDE_CONFIGURATION_TOP [ -z "$LOGFILES_LOCATION" ] && LOGFILES_LOCATION=CDE_LOGFILES_TOP if [ -L $INSTALL_LOCATION -a "$CONFIGURE_ONLY" != "yes" ] then touch $INSTALL_LOCATION/foo >/dev/null 2>/dev/null if [ ! -f $INSTALL_LOCATION/foo ] then Log "Insufficient permissions to install CDE files in $INSTALL_LOCATION" exit 1 fi if [ ! -O $INSTALL_LOCATION/foo ] then Log "Root access to $INSTALL_LOCATION is required for CDE installation." exit 1 fi rm $INSTALL_LOCATION/foo fi if [ -d $INSTALL_LOCATION ] then if [ -x $INSTALL_LOCATION/bin -a ! -d $INSTALL_LOCATION/bin ] then rm -f $INSTALL_LOCATION/bin fi fi if [ "$CONFIGURE_ONLY" = "yes" ] then CheckForActualLocations DoScripts Log "Configuration completed." exit 0 fi if [ "$RUN_SCRIPTS_ONLY" = "yes" ] then DoScripts exit 0 fi CheckForActualLocations if [ "$DO_LINK_STEP_ONLY" = "yes" ] then exit 0 fi if [ "$CREATE_PACKING_LIST" = "yes" ] then CreatePackingList exit 0 fi XCOMM XCOMM we are ready to load the environment ... XCOMM if [ "$BUILD_TREE" != "" ] then Log "Load the Desktop from $BUILD_TREE" cd $STARTING_DIR let j=1 for i in `echo $DATABASE_FILES` do LoadFileSet "$j" "$i" let j=j+1 done else Log "Load the Desktop from $TAR_TREE" compressed=$(awk '/COMPRESSED: /{print $2}' $TAR_TREE/$CDEPACKAGE) if [ "$compressed" = "yes" ]; then uncompress <$TAR_TREE/$CDETARFILEZ | tar xvf - $INSTALL_LOCATION else tar -xvf $TAR_TREE/$CDETARFILE $INSTALL_LOCATION fi DATABASE_FILES=$(awk 'BEGIN {FS=":"} /FILESETS: /{print $2}' $TAR_TREE/$CDEPACKAGE) fi Log " " Log "Desktop installed in $INSTALL_LOCATION" if [ "$DO_INSTALL_ONLY" = "yes" ] then exit 0 fi if [ $TARBALL = "yes" ]; then MakeTarball fi cd $STARTING_DIR if [ "$RUN_SCRIPTS" = "yes" ] then DoScripts fi if [ "$REMOVE_LINKS" = "yes" ] then [ -L /usr/dt ] && rm /usr/dt [ -L /etc/dt ] && rm /etc/dt [ -L /var/dt ] && rm /var/dt fi echo "Done." echo "" echo "See $LOGFILE for a log of this install session." echo ""