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 * HASH ksh bug: . and .. are not excluded if FIGNORE is set unset FIGNORE LOGFILE="installCDE.$$.log" 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..." DIRNAME=build.$DATE mkdir -p "$TARBALL_LOCATION/$DIRNAME" cd / || exit 1 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 / || exit 1 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 $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 grep -F install_target "/tmp/${i}.db" | cut -sf 2 -d '\: ' < file | while IFS= read -r line do echo "$line" >>"$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" ] && [ $i = "inetd" ] then if ! lssrc -s inetd >/dev/null 2>&1 then stopsrc -s inetd >>$LOGFILE 2>&1 fi else ps -eo pid,comm | grep $i | awk '{print "kill " $1}' | /bin/sh fi done } RestartInetd() { HASH now restart inetd OLDPWD=$(pwd) cd / || exit 1 if [ "$PLATFORM" = "sun" ] then /usr/sbin/svcadm refresh svc:/network/inetd:default /usr/sbin/svcadm restart svc:/network/inetd:default elif [ "$PLATFORM" = "aix" ] then startsrc -s inetd >>$LOGFILE 2>&1 elif [ "$PLATFORM" = "openbsd" ] || [ "$PLATFORM" = "netbsd" ] then /etc/rc.d/inetd start >/dev/null elif [ "$PLATFORM" = "freebsd" ] then /etc/rc.d/inetd onestart elif [ "$PLATFORM" = "linux" ] then /etc/init.d/openbsd-inetd start >/dev/null 2>&1 else #ifdef hpV4 /usr/sbin/inetd #else /etc/inetd #endif fi cd "$OLDPWD" || exit 1 } 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" ] && [ ! -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" ] && [ ! -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" ] && [ ! -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 only appropriate localized" echo -e "\t\t\t\t\tfilesets for LANG" 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 "\t[-destdir dir]\t\tInstall all files under dir/" 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 ... " KORNSHELL "$TOOL_DIR/mkProd" -D "$DESTINATION_DIR" -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" = "Linux" ]; then PLATFORM="linux" PLATFORM_SCRIPT_DIR="linux" elif [ "$BUILDSYSTEM" = "FreeBSD" ]; then PLATFORM="freebsd" PLATFORM_SCRIPT_DIR="freebsd" elif [ "$BUILDSYSTEM" = "OpenBSD" ]; then PLATFORM="openbsd" PLATFORM_SCRIPT_DIR="openbsd" elif [ "$BUILDSYSTEM" = "NetBSD" ]; then PLATFORM="netbsd" PLATFORM_SCRIPT_DIR="netbsd" else # Build system = HP PLATFORM=hp-ux PLATFORM_SCRIPT_DIR=hp fi if [ $(whoami) != "root" ]; then echo "" echo "You should be root to run this script. Continuing anyway." echo "" 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="" LeaveLinks="no" REMOVE_LINKS="no" CLEAN_DAEMONS="yes" theLang="" CONFIGURE_ONLY="no" DESTINATION_DIR="/" BUILT_LOCALES=builtLocales Log "Built locales: $BUILT_LOCALES" 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; ;; -destdir) Log " - Destination Directory" shift; [ $# -ne 0 ] || { USAGE exit 1; } DESTINATION_DIR="$1" shift; ;; *) Log " - unknown option" USAGE exit 1; ;; esac done echo "" if [ -z "$BUILD_TREE" ] && [ -z "$TAR_TREE" ] then USAGE exit 1 fi if [ "$BUILD_TREE" != "" ] && [ ! -d "$BUILD_TREE" ] then Log "Build tree does not exist." exit 1 fi if [ "$TAR_TREE" != "" ] && [ ! -d "$TAR_TREE" ] then Log "Tar tree does not exist." exit 1 fi if [ "$DESTINATION_DIR" != "" ] && [ ! -d "$DESTINATION_DIR" ] then Log "Creating $DESTINATION_DIR" if ! mkdir "$DESTINATION_DIR" then Log "mkdir $DESTINATION_DIR failed" exit 1 fi 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" ] && [ "${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 in $BUILT_LOCALES HASH German if [ "${BUILT_LOCALES#*_DE}" != "$BUILT_LOCALES" ] then DATABASE_FILES="$DATABASE_FILES CDE-DE CDE-MSG-DE \ CDE-HELP-DE" fi HASH French if [ "${BUILT_LOCALES#*_FR}" != "$BUILT_LOCALES" ] then DATABASE_FILES="$DATABASE_FILES CDE-FR CDE-MSG-FR \ CDE-HELP-FR" fi HASH Italian if [ "${BUILT_LOCALES#*_IT}" != "$BUILT_LOCALES" ] then DATABASE_FILES="$DATABASE_FILES CDE-IT CDE-MSG-IT \ CDE-HELP-IT" fi HASH Spanish if [ "${BUILT_LOCALES#*_ES}" != "$BUILT_LOCALES" ] then DATABASE_FILES="$DATABASE_FILES CDE-ES CDE-MSG-ES \ CDE-HELP-ES" fi 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 ] && [ "$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 ] && [ ! -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" || exit 1 let j=1 for i in $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 ${DESTINATION_DIR}${INSTALL_LOCATION}" if [ "$DO_INSTALL_ONLY" = "yes" ] then exit 0 fi if [ $TARBALL = "yes" ]; then MakeTarball fi cd "$STARTING_DIR" || exit 1 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 ""