1737 lines
38 KiB
Bash
1737 lines
38 KiB
Bash
#!/bin/ksh
|
|
|
|
# File: install-cde
|
|
# SCCS: @(#)install-cde 1.3 95/03/14 SMI;
|
|
# Author: Eric Nielsen, SunSoft Inc, Mountain View, CA.
|
|
# Created: 02/01/95
|
|
# Modified by:
|
|
#
|
|
# Language: ksh
|
|
# Package: N/A
|
|
# Status: SunSoft CDE distributed
|
|
#
|
|
# (c) Copyright 1995, SunSoft Inc, all rights reserved.
|
|
#
|
|
# Description: This script installs SunSoft CDE 1.0
|
|
#
|
|
# ********************************************************************
|
|
# ********************************************************************
|
|
#
|
|
# The Function Help, which gives you general usage for sunsoft_src
|
|
# HELP
|
|
#
|
|
# ********************************************************************
|
|
|
|
function HELP
|
|
{
|
|
cat<<eof
|
|
|
|
Usage:install-cde [flags]
|
|
[] (No flags invokes menu)
|
|
[ -loc <dir>] (Install location for /usr/dt )
|
|
[ -link ] ( Link to the current CDE install )
|
|
[ -ver ] (Install packages in interactive mode )
|
|
[ -noclean ] (Do not remove old packages before installation)
|
|
[ -nospace ] (Do not check available disk space)
|
|
[ -nocheck ] (Do not check for /usr/dt directory)
|
|
[ -nopatches ] (Do not install patches)
|
|
[ -nologin ] (Do not configure desktop login)
|
|
[ -remove ] (Remove all CDE packages)
|
|
[ -min ] (Install minimium CDE configuration)
|
|
[ -end ] (Install min and end-usr CDE configuration)
|
|
[ -dev ] (Install min, end-usr and developer configuration)
|
|
[ -debug ] (Sets Ksh mode to -xv for debugging/logging)
|
|
[ -help ] (Displays this help message)
|
|
[ ? ] (Displays this help message)
|
|
|
|
Example: install-cde -loc /home/ericni/cde -ver -dev -nospace
|
|
|
|
Note: Flags can be in any order
|
|
|
|
eof
|
|
exit
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which checks for enought space for packages
|
|
#
|
|
#
|
|
# ********************************************************************
|
|
|
|
function CheckDisk
|
|
{
|
|
|
|
|
|
$DEBUG
|
|
if [ ! -d ${SDTHOME}/bin ]
|
|
then
|
|
mkdir -p ${SDTHOME}/bin
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not create $SDTHOME directory. Please verify that
|
|
you have root permission on the file system located
|
|
at $SDTHOME
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: The mkdir -p on $SDTHOME command returned a none zero exit, the directory creation failed" >> $ADMIN_LOG
|
|
Exit
|
|
fi
|
|
|
|
CDE_CHECK="NO"
|
|
|
|
fi
|
|
|
|
if [ $CLEAN == "YES" ]
|
|
then
|
|
echo "Cleaning up any existing CDE packages..."
|
|
if [ "${MIN}" == "YES" ]
|
|
then
|
|
pkg_del_list="${MIN_RM_PKGS}"
|
|
REMOVE_TT_ONLY="YES"
|
|
Tooltalk_min
|
|
REMOVE_TT_ONLY="NO"
|
|
CLEAN="NO"
|
|
fi
|
|
|
|
if [ "${END}" == "YES" ]
|
|
then
|
|
pkg_del_list="${MIN_RM_PKGS} ${END_RM_PKGS}"
|
|
CLEAN="NO"
|
|
fi
|
|
|
|
if [ "${DEV}" == "YES" ]
|
|
then
|
|
pkg_del_list="${MIN_RM_PKGS} ${END_RM_PKGS} ${DEV_RM_PKGS}"
|
|
REMOVE_TT_ONLY="YES"
|
|
Tooltalk_dev
|
|
REMOVE_TT_ONLY="NO"
|
|
CLEAN="NO"
|
|
fi
|
|
|
|
for pkg in $pkg_del_list
|
|
do
|
|
/bin/pkginfo -q ${pkg}.*
|
|
FOUNDPKG=$?
|
|
if [ $FOUNDPKG -eq 0 ]; then
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE ${pkg}.* 2>&1 | tee -a $PKG_RM_LOG
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE ${pkg}.* 2>&1 | tee -a $PKG_RM_LOG | grep $pkg
|
|
fi
|
|
fi
|
|
|
|
done
|
|
fi
|
|
|
|
|
|
if [ ! -d ${SDTHOME}/bin ]
|
|
then
|
|
mkdir -p ${SDTHOME}/bin
|
|
fi
|
|
|
|
diskfree=`df -k ${SDTHOME}/bin | awk '{print $4}' | sed '/avail/d'`
|
|
if [ $diskfree -lt $SIZE ]
|
|
then
|
|
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: $SDTHOME has only `expr $diskfree / 1000` Megabytes of space left,
|
|
you need `expr $SIZE / 1000` Megabytes for this cde cluster
|
|
|
|
Choose an alternate install location for /usr/dt, or free up
|
|
`expr $SIZE / 1000` Megabytes in $SDTHOME.
|
|
|
|
|
|
Press <Enter> to Exit...
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Not enough space in file system to install cde. " >> $ADMIN_LOG
|
|
|
|
EXIT_STATUS=1
|
|
Exit
|
|
|
|
else
|
|
DONE=YES
|
|
MENU_SELECT=YES
|
|
fi
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which configures login
|
|
#
|
|
# ********************************************************************
|
|
|
|
function RunDtconfig
|
|
{
|
|
|
|
DONE=YES
|
|
MENU_SELECT=YES
|
|
|
|
if [ -f /usr/dt/bin/dtconfig ]
|
|
then
|
|
if [ $VERT == "YES" ]; then
|
|
|
|
/usr/dt/bin/dtconfig -e
|
|
DTCONFIG_RESULT=$?
|
|
else
|
|
/usr/dt/bin/dtconfig -e 2>&1 > /dev/null
|
|
DTCONFIG_RESULT=$?
|
|
fi
|
|
if [ $DTCONFIG_RESULT -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not run /usr/dt/bin/dtconfig successfully. The install-cde
|
|
was unable to setup the Solaris desktop login.
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: The install-cde script could not run dtconfig -e correctly" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
fi
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which installs minimium CDE packages
|
|
#
|
|
# ********************************************************************
|
|
|
|
function InstallMin
|
|
{
|
|
$DEBUG
|
|
DONE=YES
|
|
MENU_SELECT=YES
|
|
|
|
|
|
if [ $CDE_CHECK == "YES" ]
|
|
then
|
|
if [ -f /usr/dt/bin/dtlogin ]
|
|
then
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Warning: This install program has detected a CDE dtlogin binary, located
|
|
at "/usr/dt/bin/dtlogin". If you choose to continue you will destory
|
|
any current version of CDE that might be present.
|
|
|
|
$LINE
|
|
|
|
XYZZY
|
|
print -n "\tDo you wish to continue [Y]"
|
|
|
|
read response
|
|
|
|
if [[ $response = `` ]] then response="Y"; fi
|
|
|
|
if [[ $response = "Y" || $response = "y" ]]
|
|
then
|
|
echo
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
touch /usr/dt/tmp.install.file.$$
|
|
if [ `ls -l /usr/dt/tmp.install.file.$$ | grep root | wc -l` -eq 0 ]
|
|
then
|
|
rm /usr/dt/tmp.install.file.$$
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: This machine does not appear to have root permission for
|
|
the filesystem located at: $SDTHOME
|
|
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Can not create root permission files in $SDTHOME" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
|
|
if [ -d cde-min ]
|
|
then
|
|
cd cde-min
|
|
|
|
|
|
SUNWdtcor=
|
|
if [ "`uname -r`" == "5.5" ]
|
|
then
|
|
if [ ! -h /usr/dt/lib/libtt.so ]; then if [ ! -f /usr/dt/lib/libtt.so ]; then
|
|
|
|
SUNWdtcor=SUNWdtcor
|
|
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
pkglist="${MIN_PKGS} ${SUNWdtcor}"
|
|
COPYRIGHT_FIRST_TIME="YES"
|
|
AddPkgs
|
|
Tooltalk_min
|
|
cd $TOP
|
|
INSTALL_GOOD="YES"
|
|
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Can't find the cde-min package directory located on
|
|
the CDE cdrom. Be sure you execute this script
|
|
in the top directory of your CDE cdrom, where the
|
|
directories: cde-min, cde-end-user, cde-developer and
|
|
patches should be available.
|
|
|
|
Exit this install script and restart it from the correct
|
|
location.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Can not find the cde-min directory, to load min packages" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# ####################################################################
|
|
#
|
|
#
|
|
# Function which installs End User
|
|
#
|
|
# ####################################################################
|
|
|
|
function InstallEnd
|
|
{
|
|
$DEBUG
|
|
if [ -d cde-end-user ]
|
|
then
|
|
pkglist="${END_PKGS}"
|
|
cd cde-end-user
|
|
AddPkgs
|
|
cd $TOP
|
|
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Can't find the cde-end-user package directory located on
|
|
the CDE cdrom. Be sure you execute this script
|
|
in the top directory of your CDE cdrom, where the
|
|
directories: cde-min, cde-end-user, cde-developer and
|
|
patches should be available.
|
|
|
|
Exit this install script and restart it from the correct
|
|
location.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Can not find the cde-end-user directory, to load end-usr packages" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which installs cde-developer packages
|
|
#
|
|
# ********************************************************************
|
|
|
|
function InstallDev
|
|
{
|
|
$DEBUG
|
|
if [ -d cde-developer ]
|
|
then
|
|
|
|
# If we are in 2.5, replace the SUNWmfman & SUNWmfdm if we have previously
|
|
# removed it in the create link function
|
|
|
|
SUNWmfman=
|
|
SUNWmfdm=
|
|
if [ "`uname -r`" == "5.5" ]
|
|
then
|
|
if [ ! -f /usr/dt/share/man/man3/XmActivateProtocol.3x ]; then
|
|
|
|
SUNWmfman=SUNWmfman
|
|
|
|
fi
|
|
|
|
if [ ! -f /usr/dt/share/examples/motif/dogs/Dog.c ]; then
|
|
|
|
SUNWmfdm=SUNWmfdm
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
pkglist="${DEV_PKGS} ${SUNWmfman} ${SUNWmfdm}"
|
|
cd cde-developer
|
|
AddPkgs
|
|
Tooltalk_dev
|
|
cd $TOP
|
|
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Can't find the cde-developer package directory located on
|
|
the CDE cdrom. Be sure you execute this script
|
|
in the top directory of your CDE cdrom, where the
|
|
directories: cde-min, cde-end-user, cde-developer and
|
|
patches should be available.
|
|
|
|
Exit this install script and restart it from the correct
|
|
location.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Can not find the cde-developer directory, to load end-usr packages" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which adds packages
|
|
# REMOVE
|
|
#
|
|
# ********************************************************************
|
|
function RemoveCDE
|
|
{
|
|
$DEBUG
|
|
REMOVE_TT_ONLY="YES"
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Warning: This remove program will remove all the CDE packages from
|
|
your system.
|
|
|
|
$LINE
|
|
|
|
XYZZY
|
|
print -n "\tDo you wish to continue [Y]"
|
|
|
|
read response
|
|
|
|
if [[ $response = `` ]] then response="Y"; fi
|
|
|
|
if [[ $response = "Y" || $response = "y" ]] then
|
|
echo
|
|
else
|
|
Exit
|
|
fi
|
|
|
|
|
|
pkglist="${MIN_RM_PKGS} ${END_RM_PKGS} ${DEV_RM_PKGS}"
|
|
|
|
clear
|
|
if [ -f /usr/dt/bin/dtconfig ]
|
|
then
|
|
/usr/dt/bin/dtconfig -e 2>&1 > /dev/null
|
|
fi
|
|
|
|
echo "Starting to Remove Packages..."
|
|
|
|
Tooltalk_min
|
|
Tooltalk_dev
|
|
|
|
for pkg in $pkglist
|
|
do
|
|
/bin/pkginfo -q ${pkg}.*
|
|
FOUNDPKG=$?
|
|
if [ $FOUNDPKG -eq 0 ]; then
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE ${pkg}.* 2>&1 | tee -a $PKG_RM_LOG
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE ${pkg}.* 2>&1 | tee -a $PKG_RM_LOG | grep $pkg
|
|
fi
|
|
fi
|
|
|
|
done
|
|
Exit
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which adds packages
|
|
# PKGS
|
|
#
|
|
# ********************************************************************
|
|
|
|
function AddPkgs
|
|
{
|
|
$DEBUG
|
|
|
|
if [ $COPYRIGHT_FIRST_TIME == "YES" ]; then
|
|
echo "Starting Install ....."
|
|
fi
|
|
for pkg in $pkglist
|
|
do
|
|
if [ $COPYRIGHT_FIRST_TIME == "YES" ]; then
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` $pkg 2>&1 | tee -a $PKG_LOG
|
|
if [ $? -ne 0 ] ; then
|
|
echo $ERROR_LINE
|
|
echo $ERROR_LINE >> $ADMIN_LOG
|
|
fi
|
|
COPYRIGHT_FIRST_TIME="NO"
|
|
|
|
else if [ "$COPYRIGHT_FIRST_TIME" == "NO" ] ; then
|
|
if [ $VERT == "YES" ] ; then
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` $pkg 2>&1 | tee -a $PKG_LOG
|
|
else
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` $pkg 2>&1 | tee -a $PKG_LOG | grep $pkg
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which sets install options
|
|
#
|
|
# ********************************************************************
|
|
|
|
|
|
function SetOptions
|
|
{
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
|
|
$LINE
|
|
|
|
|
|
4. Set Install Options [ Current ] [ New ]
|
|
|
|
XYZZY
|
|
print -n " Install Location: [ $SDTHOME ] [ ]\b\b"
|
|
|
|
read NEW_SDTHOME
|
|
|
|
if [ "${NEW_SDTHOME}" == "" ]
|
|
then
|
|
NEW_SDTHOME="/usr/dt"
|
|
fi
|
|
|
|
firstchar=`echo $NEW_SDTHOME | cut -c1`
|
|
if [ "$firstchar" != "/" ]
|
|
then
|
|
echo ""
|
|
echo ""
|
|
echo "\tError: \t $NEW_SDTHOME is not an absolute path, please try again "
|
|
echo ""
|
|
echo ""
|
|
echo "\t\tPress <Enter> to continue...."
|
|
read
|
|
return
|
|
|
|
fi
|
|
SDTHOME=$NEW_SDTHOME
|
|
|
|
print -n " Remove Old CDE Packages: [ $CLEAN ] [ ]\b\b"
|
|
|
|
read NEW_CLEAN
|
|
|
|
if [ "${NEW_CLEAN}" != "YES" ] ; then if [ "${NEW_CLEAN}" != "NO" ] ; then if [ "${NEW_CLEAN}" != "" ]
|
|
then
|
|
echo ""
|
|
echo ""
|
|
echo "\tError: \t You must answer YES or NO , please try again "
|
|
echo ""
|
|
echo ""
|
|
echo "\t\tPress <Enter> to continue...."
|
|
read
|
|
return
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEW_CLEAN" == "" ]
|
|
then
|
|
CLEAN=YES
|
|
else
|
|
CLEAN=$NEW_CLEAN
|
|
fi
|
|
|
|
print -n " Interactive Installation [ $VERT ] [ ]\b\b"
|
|
|
|
read NEW_VERT
|
|
|
|
if [ "${NEW_VERT}" != "YES" ] ; then if [ "${NEW_VERT}" != "NO" ] ; then if [ "${NEW_VERT}" != "" ]
|
|
then
|
|
echo ""
|
|
echo ""
|
|
echo "\tError: \t You must answer YES or NO , please try again "
|
|
echo ""
|
|
echo ""
|
|
echo "\t\tPress <Enter> to continue...."
|
|
read
|
|
return
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "${NEW_VERT}" == "" ]
|
|
then
|
|
VERT=NO
|
|
VERBOSE="-n -a /tmp/admin.$$"
|
|
else
|
|
VERT=$NEW_VERT
|
|
if [ $VERT == "YES" ]; then VERBOSE="" ; fi
|
|
if [ $VERT == "NO" ]; then VERBOSE="-n -a /tmp/admin.$$" ; fi
|
|
fi
|
|
|
|
print " Solaris Desktop Login "
|
|
print -n " at System Boot: [ $DTLOGIN ] [ ]\b\b"
|
|
|
|
read NEW_DTLOGIN
|
|
|
|
|
|
if [ "${NEW_DTLOGIN}" != "YES" ] ; then if [ "${NEW_DTLOGIN}" != "NO" ] ; then if [ "${NEW_DTLOGIN}" != "" ]
|
|
then
|
|
echo ""
|
|
echo ""
|
|
echo "\tError: \t You must answer YES or NO , please try again "
|
|
echo ""
|
|
echo ""
|
|
echo "\t\tPress <Enter> to continue...."
|
|
read
|
|
return
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEW_DTLOGIN" == "" ]
|
|
then
|
|
DTLOGIN=YES
|
|
else
|
|
DTLOGIN=$NEW_DTLOGIN
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Function which creates the new install location link
|
|
#
|
|
# ********************************************************************
|
|
|
|
|
|
function CreateTheLink
|
|
{
|
|
$DEBUG
|
|
clear
|
|
|
|
if [ -d /usr/dt ]
|
|
then
|
|
|
|
if [ "`uname -r`" == "5.5" ]
|
|
then
|
|
S_R="SUNWdtcor SUNWmfrun SUNWmfman SUNWmfdm"
|
|
for i in $S_R
|
|
do
|
|
echo "Cleaning up Solaris 2.5 $i package from /usr/dt ..."
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE ${i}.* 2>&1 | tee -a $PKG_RM_LOG | grep -v no
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE ${i}.* 2>&1 | tee -a $PKG_RM_LOG | grep $i | grep -v no
|
|
fi
|
|
done
|
|
|
|
|
|
fi
|
|
|
|
if [ -d /usr/dt ]
|
|
then
|
|
|
|
find /usr/dt -depth -exec /bin/rmdir {} 2>&1 > /dev/null \; 2>&1 > /dev/null
|
|
fi
|
|
|
|
fi
|
|
|
|
/usr/bin/rm /usr/dt 2>&1 > /dev/null
|
|
|
|
if [ -d /usr/dt ]
|
|
then
|
|
|
|
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Warning: A "/usr/dt" directory still exists on this machine, this
|
|
prohibits a needed link from being setup from
|
|
|
|
/usr/dt to $SDTHOME
|
|
|
|
This installation can move the current /usr/dt to
|
|
|
|
/usr/dt.pre.CDE.${DATE}
|
|
|
|
and proceed with the installation.
|
|
|
|
|
|
Do you want to move your current /usr/dt
|
|
|
|
|
|
$LINE
|
|
|
|
|
|
XYZZY
|
|
|
|
print -n "\tMove existing /usr/dt directory [Y]"
|
|
|
|
read response
|
|
|
|
if [[ $response = `` ]] then response="Y"; fi
|
|
|
|
if [[ $response = "Y" || $response = "y" ]]
|
|
then
|
|
mv /usr/dt /usr/dt.pre.CDE.${DATE}
|
|
mkdir -p ${SDTHOME}
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
|
|
Error: Could not create $SDTHOME directory. Please verify that
|
|
you have root permission on the file system located
|
|
at $SDTHOME
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
|
|
$LINE
|
|
XYZZY
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
ln -s ${SDTHOME} /usr/dt
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not create alternate link from /usr/dt to $SDTHOME ,
|
|
please verfy you have root permission on the file systems
|
|
in question.
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
|
|
read
|
|
echo "Error: $DATE: The ln -s $SDTHOME command returned a none zero exit, the link failed" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
if [ -f /usr/dt ]
|
|
then
|
|
|
|
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Warning: A "/usr/dt" file still exists on this machine, this
|
|
prohibits a needed link from being setup from
|
|
|
|
/usr/dt to $SDTHOME
|
|
|
|
This installation can move the current /usr/dt to
|
|
|
|
/usr/dt.pre.CDE.${DATE}
|
|
|
|
and proceed with the installation.
|
|
|
|
Do you want to move your current /usr/dt
|
|
|
|
|
|
$LINE
|
|
|
|
|
|
XYZZY
|
|
|
|
print -n "\tMove existing /usr/dt file [Y]"
|
|
|
|
read response
|
|
|
|
if [[ $response = `` ]] then response="Y"; fi
|
|
|
|
if [[ $response = "Y" || $response = "y" ]]
|
|
then
|
|
mv /usr/dt /usr/dt.pre.CDE.${DATE}
|
|
mkdir -p ${SDTHOME}
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not create $SDTHOME directory. Please verify you have
|
|
you have root permission on the file systems in question.
|
|
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
ln -s ${SDTHOME} /usr/dt
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not create alternate link from /usr/dt to $SDTHOME ,
|
|
please verfy you have root permission on the file systems
|
|
in question.
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
|
|
read
|
|
echo "Error: $DATE: The ln -s $SDTHOME command returned a none zero exit, the link faile
|
|
d" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
else
|
|
DONE=NO
|
|
MENU_SELECT=NO
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir -p ${SDTHOME}
|
|
ln -s ${SDTHOME} /usr/dt
|
|
if [ $? -ne 0 ]
|
|
then
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: Could not create alternate link from /usr/dt to $SDTHOME ,
|
|
please verfy you have root permission on the file systems
|
|
in question.
|
|
|
|
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: The ln -s $SDTHOME command returned a none zero exit, the link failed" >> $ADMIN_LOG
|
|
Exit
|
|
fi
|
|
|
|
touch /usr/dt/tmp.install.file.$$
|
|
if [ `ls -l /usr/dt/tmp.install.file.$$ | grep root | wc -l` -eq 0 ]
|
|
then
|
|
rm /usr/dt/tmp.install.file.$$
|
|
rm /usr/dt
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: This machine does not appear to have root permission for
|
|
the filesystem located at: $SDTHOME
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: The ln -s $SDTHOME command returned a none zero exit, the link failed" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
rm /usr/dt/tmp.install.file.$$
|
|
MENU_SELECT=NO
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Checks Root permission in /usr/dt file system
|
|
#
|
|
# ********************************************************************
|
|
|
|
|
|
function CheckRoot
|
|
|
|
{
|
|
|
|
touch /usr/dt/tmp.install.file.$$
|
|
if [ `ls -l /usr/dt/tmp.install.file.$$ | grep root | wc -l` -eq 0 ]
|
|
then
|
|
rm /usr/dt/tmp.install.file.$$
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: This machine does not appear to have root permission for
|
|
the filesystem located at: $SDTHOME
|
|
|
|
Hint: You most likely have an existing /usr/dt link which points to
|
|
a remote server. If you don't have root permission on
|
|
this server, you need to manually remove the this link
|
|
before running install-cde again.
|
|
|
|
|
|
|
|
Press <Enter> to exit..
|
|
$LINE
|
|
XYZZY
|
|
|
|
read
|
|
echo "Error: $DATE: Can not create root permission files in $SDTHOME" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
fi
|
|
|
|
rm /usr/dt/tmp.install.file.$$
|
|
MENU_SELECT=NO
|
|
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Install Min Cluster Pathces
|
|
#
|
|
# ********************************************************************
|
|
|
|
function MinPatch
|
|
{
|
|
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
MIN_PATCHES_sparc=""
|
|
MIN_PATCHES_x86=""
|
|
|
|
PATCHES=MIN_PATCHES_${PLATFORM}
|
|
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Install End Cluster Patches
|
|
#
|
|
# ********************************************************************
|
|
|
|
function EndPatch
|
|
{
|
|
|
|
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
END_PATCHES_sparc="101925-02"
|
|
END_PATCHES_x86="101926-02"
|
|
|
|
if [ $PLATFORM == "sparc" ]
|
|
then
|
|
PATCHES=$END_PATCHES_sparc
|
|
else
|
|
PATCHES=$END_PATCHES_x86
|
|
fi
|
|
|
|
cd $TOP
|
|
|
|
|
|
for i in $PATCHES
|
|
do
|
|
|
|
if [ -d Patches/${PLATFORM}/${i} ]
|
|
then
|
|
|
|
if [ `showrev -p | /usr/bin/cut -d" " -f1,2 | grep $i | wc -l` -eq 0 ]
|
|
then
|
|
Patches/${PLATFORM}/${PATCHES}/installpatch `pwd`/Patches/${PLATFORM}/${i} 2>&1 > /dev/null
|
|
echo "INSTALLED PATCH ${i} "
|
|
fi
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Install Developer Cluster Patches
|
|
#
|
|
# ********************************************************************
|
|
|
|
function DevPatch
|
|
{
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
DEV_PATCHES_sparc=""
|
|
DEV_PATCHES_x86=""
|
|
|
|
PATCHES=DEV_PATCHES_${PLATFORM}
|
|
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Install CDE exit function
|
|
#
|
|
# ********************************************************************
|
|
|
|
function Exit
|
|
{
|
|
|
|
cat <<XYZZY
|
|
|
|
$LINE
|
|
|
|
|
|
XYZZY
|
|
|
|
if [ -f $ADMIN_LOG ]
|
|
then
|
|
|
|
cat <<XYZZY
|
|
|
|
|
|
Note: A install-cde log which has error messages
|
|
from the install-cde script can be found at:
|
|
|
|
install-cde log: $ADMIN_LOG
|
|
XYZZY
|
|
fi
|
|
if [ -f $PKG_LOG ]
|
|
then
|
|
|
|
cat <<XYZZY
|
|
|
|
|
|
Note: A pkgadd log which contains a complete log of all the output
|
|
from the "pkgadd" utility can be found at:
|
|
|
|
pkgadd log: $PKG_LOG
|
|
XYZZY
|
|
fi
|
|
if [ -f $PKG_RM_LOG ]
|
|
then
|
|
|
|
cat <<XYZZY
|
|
|
|
|
|
Note: A pkgrm log which contains a complete log of all the output
|
|
from the "pkgrm" utility can be found at:
|
|
|
|
pkgrm log: $PKG_RM_LOG
|
|
XYZZY
|
|
fi
|
|
if [ $INSTALL_GOOD == "YES" ]
|
|
then
|
|
if [ $SEND_MAIL == "YES" ]
|
|
then
|
|
UNAME=`uname -a`
|
|
VERSION=`grep DtVERSION_STRING cde-developer/SUNWdtinc/reloc/dt/share/include/Dt/Dt.h | awk -F\" '{print $2}'`
|
|
SUBJECT=${VERSION}:${UNAME}
|
|
if [ -x /usr/dist/exe/whatami ]
|
|
then
|
|
/usr/dist/exe/whatami 2>&1 > /tmp/tmp.whatami.$$
|
|
else
|
|
echo "NO /usr/dist/exe/whatami AVAILABLE" > /tmp/tmp.whatami.$$
|
|
fi
|
|
|
|
( cd /tmp; mailx -s " $SUBJECT " -F cdeinstall@cde-www.Eng.Sun.COM /dev/null < /tmp/tmp.whatami.$$ 2>&1 > /dev/null )
|
|
fi
|
|
|
|
|
|
cat <<XYZZY
|
|
|
|
|
|
Note: CDE has been installed on this system, please reboot this
|
|
machine before starting CDE
|
|
|
|
XYZZY
|
|
fi
|
|
|
|
cat <<XYZZY
|
|
|
|
The install-cde script has completed.
|
|
$LINE
|
|
|
|
|
|
XYZZY
|
|
|
|
|
|
exit $EXIT_STATUS
|
|
}
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Link to packages.
|
|
#
|
|
# ********************************************************************
|
|
|
|
function LinkFunc
|
|
{
|
|
|
|
if [ -d dt ]
|
|
then
|
|
if [ -d /usr/dt ]
|
|
then
|
|
/bin/mv /usr/dt /usr/dt.pre-install-cde.${DATE}
|
|
fi
|
|
|
|
ln -s `pwd`/dt /usr/dt
|
|
else
|
|
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: We could not find the dt directory, are you sure you
|
|
are running install-cde from the correct directory.
|
|
|
|
|
|
Press <Enter> to exit..
|
|
|
|
$LINE
|
|
|
|
XYZZY
|
|
read
|
|
echo "Error: $DATE: Could not find a dt directory to link to." >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
# ****************************************************************************
|
|
# *
|
|
# * Determine if it is ok to remove SUNWtltk on 2.4
|
|
# *
|
|
# ***************************************************************************
|
|
|
|
function Tooltalk_min
|
|
{
|
|
|
|
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
if [ $CLEAN == "YES" ]; then
|
|
|
|
TTPKG_LIST=`pkginfo | grep SUNWtltk | grep -v SUNWtltkd | grep -v SUNWtltkm | awk '{print $2 }'`
|
|
for i in $TTPKG_LIST
|
|
do
|
|
FOUNDPKG=`/bin/pkginfo -l $i | grep "VERSION" | grep "3.5" | wc -l`
|
|
if [ $FOUNDPKG -ne 0 ]; then
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG | grep $i
|
|
fi
|
|
|
|
fi
|
|
done
|
|
|
|
fi
|
|
|
|
if [ $REMOVE_TT_ONLY == "NO" ] ; then
|
|
|
|
if [ $VERT == "YES" ] ; then
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltk 2>&1 | tee -a $PKG_LOG
|
|
else
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltk 2>&1 | tee -a $PKG_LOG | grep SUNWtltk
|
|
fi
|
|
fi
|
|
|
|
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
|
|
}
|
|
|
|
# ****************************************************************************
|
|
# *
|
|
# * Determine if it is ok to remove SUNWtltkm, SUNWtltkd on 2.4
|
|
# *
|
|
# ***************************************************************************
|
|
|
|
function Tooltalk_dev
|
|
{
|
|
|
|
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
|
|
if [ $CLEAN == "YES" ]; then
|
|
|
|
TTPKG_LIST=`pkginfo | grep SUNWtltkd | awk '{print $2 }'`
|
|
for i in $TTPKG_LIST
|
|
do
|
|
FOUNDPKG=`/bin/pkginfo -l $i | grep "VERSION" | grep "3.5" | wc -l`
|
|
if [ $FOUNDPKG -ne 0 ]; then
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG | grep $i
|
|
fi
|
|
fi
|
|
done
|
|
|
|
fi
|
|
|
|
if [ $REMOVE_TT_ONLY == "NO" ] ; then
|
|
|
|
if [ $VERT == "YES" ] ; then
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltkd 2>&1 | tee -a $PKG_LOG
|
|
else
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltkd 2>&1 | tee -a $PKG_LOG | grep SUNWtltkd
|
|
fi
|
|
fi
|
|
|
|
if [ $CLEAN == "YES" ]; then
|
|
|
|
TTPKG_LIST=`pkginfo | grep SUNWtltkm | awk '{print $2 }'`
|
|
for i in $TTPKG_LIST
|
|
do
|
|
FOUNDPKG=`/bin/pkginfo -l $i | grep "VERSION" | grep "3.5" | wc -l`
|
|
if [ $FOUNDPKG -ne 0 ]; then
|
|
if [ $VERT == "YES" ]; then
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG
|
|
else
|
|
/usr/sbin/pkgrm $VERBOSE $i 2>&1 | tee -a $PKG_RM_LOG | grep $i
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ $REMOVE_TT_ONLY == "NO" ] ; then
|
|
|
|
|
|
if [ $VERT == "YES" ] ; then
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltkm 2>&1 | tee -a $PKG_LOG
|
|
else
|
|
/usr/sbin/pkgadd $VERBOSE -d `pwd` SUNWtltkm 2>&1 | tee -a $PKG_LOG | grep SUNWtltkm
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Load Package Strings.
|
|
# LOAD
|
|
#
|
|
# ********************************************************************
|
|
function LoadStrings
|
|
{
|
|
$DEBUG
|
|
case "X$(uname -r)" in
|
|
X5.4)
|
|
|
|
DEV_PKGS="SUNWdtinc SUNWdtma SUNWdtmad SUNWmfdm SUNWdthed SUNWdtab SUNWdtdem SUNWmfman"
|
|
END_PKGS="SUNWdtwm SUNWdthe SUNWdthev SUNWdtdst SUNWdtim"
|
|
MIN_PKGS="SUNWdtft SUNWdtdmn SUNWdtbas SUNWdticn SUNWdtdte SUNWmfrun"
|
|
|
|
DEV_RM_PKGS="SUNWdtinc SUNWdtma SUNWdtmad SUNWmfdm SUNWmfdem SUNWdthed SUNWdtab SUNWdtdem SUNWmfman"
|
|
END_RM_PKGS="SUNWdtwm SUNWdthe SUNWdthev SUNWdtdst SUNWdtim"
|
|
MIN_RM_PKGS="SUNWdtft SUNWdtdmn SUNWdtbas SUNWdticn SUNWdtdte SUNWmfrun"
|
|
|
|
;;
|
|
X5.5)
|
|
|
|
SUNWdtcor=
|
|
|
|
if [ ! -h /usr/dt/lib/libtt.so ]; then if [ ! -f /usr/dt/lib/libtt.so ]; then
|
|
|
|
SUNWdtcor=SUNWdtcor
|
|
|
|
fi
|
|
fi
|
|
|
|
/bin/pkginfo -q SUNWtltk.*
|
|
FOUNDPKG=$?
|
|
if [ $FOUNDPKG -ne 0 ]; then
|
|
SUNWtltk=SUNWtltk
|
|
SUNWtltkm=SUNWtltkm
|
|
SUNWtltkd=SUNWtltkd
|
|
else
|
|
SUNWtltk=
|
|
SUNWtltkm=
|
|
SUNWtltkd=
|
|
fi
|
|
|
|
DEV_PKGS="SUNWdtinc SUNWdtma SUNWdtmad SUNWdthed SUNWdtab SUNWdtdem ${SUNWtltkm} ${SUNWtltkd}"
|
|
END_PKGS="SUNWdtwm SUNWdthe SUNWdthev SUNWdtdst SUNWdtim"
|
|
MIN_PKGS="SUNWdtft SUNWdtdmn SUNWdtbas SUNWdticn ${SUNWdtcor} SUNWdtdte SUNWmfrun ${SUNWtltk}"
|
|
|
|
DEV_RM_PKGS="SUNWdtinc SUNWdtma SUNWdtmad SUNWdthed SUNWdtab SUNWdtdem ${SUNWtltkm} ${SUNWtltkd}"
|
|
END_RM_PKGS="SUNWdtwm SUNWdthe SUNWdthev SUNWdtdst SUNWdtim"
|
|
MIN_RM_PKGS="SUNWdtft SUNWdtdmn SUNWdtbas SUNWdticn ${SUNWtltk} SUNWdtdte SUNWmfrun"
|
|
;;
|
|
*)
|
|
clear
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
Error: CDE 1.0 is only supported on SunOS 5.4 and 5.5
|
|
|
|
|
|
Press <Enter> to exit..
|
|
|
|
$LINE
|
|
|
|
XYZZY
|
|
read
|
|
echo "Error: $DATE: Wrong OS version, uname -r did not return 5.4 or 5.5" >> $ADMIN_LOG
|
|
EXIT_STATUS=1
|
|
Exit
|
|
;;
|
|
esac
|
|
}
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Check to be sure user is root
|
|
#
|
|
# ********************************************************************
|
|
|
|
USER=`/bin/id | grep root | wc -l`
|
|
if [ $USER -eq 0 ]
|
|
then
|
|
|
|
echo ""
|
|
echo "You must be root to run this script"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Variable Initialization
|
|
# VARS
|
|
#
|
|
# ********************************************************************
|
|
trap 'rm -f /tmp/admin.$$; rm -f tmp.whatami.$$; rm -f /usr/dt/tmp.install.file.$$; exit' INT QUIT TERM EXIT
|
|
TOP=`pwd`
|
|
CHECK=YES
|
|
CDE_CHECK=YES
|
|
EXIT_STATUS=0
|
|
VERT="NO"
|
|
NEW_VERT=
|
|
DEBUG=
|
|
CLEAN=YES
|
|
NEW_CLEAN=
|
|
PATCH=YES
|
|
DTLOGIN=YES
|
|
SDTHOME=/usr/dt
|
|
SUNWtltk=
|
|
SUNWtltkm=
|
|
SUNWtltkd=
|
|
NEW_SDTHOME=
|
|
MIN=
|
|
END=
|
|
DEV=
|
|
INSTALL_GOOD="NO"
|
|
SEND_MAIL="YES"
|
|
REMOVE_TT_ONLY="NO"
|
|
PLATFORM=`uname -p`
|
|
if [ $PLATFORM == "i386" ]
|
|
then
|
|
PLATFORM="x86"
|
|
fi
|
|
RELEASE=`uname -r`
|
|
DATE=`date '+%d%b%y-%H:%M:%S'`
|
|
PATH=/bin:/usr/bin:/etc:/usr/bin
|
|
ADMIN_LOG=/usr/tmp/SunSoft_CDE1.0_install.log.${DATE}
|
|
PKG_RM_LOG=/usr/tmp/SunSoft_CDE1.0_pkgrm.log.${DATE}
|
|
PKG_LOG=/usr/tmp/SunSoft_CDE1.0_pkgadd.log.${DATE}
|
|
VERBOSE="-n -a /tmp/admin.$$"
|
|
MENU_SELECT=NO
|
|
DONE=NO
|
|
LINE="____________________________________________________________________________"
|
|
|
|
cat >/tmp/admin.$$ <<EOF
|
|
basedir=default
|
|
mail=
|
|
runlevel=quit
|
|
conflict=nocheck
|
|
setuid=nocheck
|
|
action=nocheck
|
|
partial=nocheck
|
|
instance=unique
|
|
idepend=nocheck
|
|
rdepend=nocheck
|
|
space=quit
|
|
EOF
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Argument Processing
|
|
# ARGS
|
|
#
|
|
# ********************************************************************
|
|
|
|
if [ $# -gt 14 ]
|
|
then
|
|
HELP $1 # exit on error
|
|
fi
|
|
|
|
while [ $# -gt 0 ]
|
|
do case $1 in
|
|
-loc) SDTHOME=$2; shift 2 ;; # install location for /usr/dt
|
|
-link) LINKDIR=$2 ; LinkFunc ; exit ;;
|
|
-noclean) CLEAN="NO"; shift ;;
|
|
-nospace) CHECK="NO"; shift ;;
|
|
-nocheck) CDE_CHECK="NO"; shift ;;
|
|
-nopatches) PATCH="NO"; shift ;;
|
|
-nologin) DTLOGIN="NO"; shift ;;
|
|
-debug) DEBUG="set -xv"; shift ;;
|
|
-remove) LoadStrings; RemoveCDE; exit ;;
|
|
-help) HELP; exit ;;
|
|
?) HELP; exit ;;
|
|
-ver) VERT="YES"; VERBOSE=""; shift ;;
|
|
-min) MENU_SELECT="YES"; response="1"; shift ;;
|
|
-end) MENU_SELECT="YES"; response="2"; shift ;;
|
|
-dev) MENU_SELECT="YES"; response="3"; shift ;;
|
|
*) HELP $1; shift ;; # exit on error
|
|
esac
|
|
done
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# Place the selection Menu on the screen
|
|
#
|
|
# ********************************************************************
|
|
|
|
LoadStrings
|
|
|
|
while [ $DONE = "NO" ]
|
|
do
|
|
while [ $MENU_SELECT = "NO" ]
|
|
do
|
|
|
|
clear
|
|
|
|
cat <<XYZZY
|
|
$LINE
|
|
|
|
|
|
Solaris Common Desktop Environment
|
|
Installation Script
|
|
Beta 1.0
|
|
|
|
$LINE
|
|
|
|
|
|
1. Minimum Installation
|
|
|
|
|
|
2. CDE End User
|
|
|
|
|
|
3. Developer & End User
|
|
|
|
|
|
4. Set Install Options
|
|
|
|
Install Location: [ $SDTHOME ]
|
|
Remove Old CDE Packages: [ $CLEAN ]
|
|
Interactive Installation: [ $VERT ]
|
|
Solaris Desktop Login
|
|
at System Boot: [ $DTLOGIN ]
|
|
|
|
0. Cancel Installation
|
|
|
|
$LINE
|
|
|
|
|
|
XYZZY
|
|
print -n "\tSELECT A NUMBER [2] "
|
|
|
|
read response
|
|
if [[ $response = `` ]] then response="2"; fi
|
|
|
|
print ""
|
|
print -n "\tYou have selected \"$response\", is this Correct ? (Y/N) [Y]"
|
|
|
|
read abort_chance
|
|
if [[ $abort_chance = "Y" || $abort_chance = "y" ]] then
|
|
MENU_SELECT=YES
|
|
fi
|
|
if [[ $abort_chance = `` ]] then MENU_SELECT=YES; fi
|
|
|
|
clear
|
|
|
|
done
|
|
|
|
if [[ $MENU_SELECT = YES ]] then
|
|
|
|
|
|
case $response in
|
|
|
|
"1" )
|
|
SIZE=17000
|
|
MIN="YES"
|
|
if [ $CHECK == "YES" ] ; then CheckDisk ; else DONE=YES; fi
|
|
if [ $SDTHOME != "/usr/dt" ] ; then CreateTheLink ; else DONE=YES; fi
|
|
if [ $DONE = "YES" ] ; then InstallMin ; fi
|
|
if [ $PATCH = "YES" ] ; then MinPatch ; else DONE=YES; fi
|
|
if [ $DTLOGIN = "YES" ] ; then RunDtconfig ; else DONE=YES; fi
|
|
;;
|
|
|
|
"2" )
|
|
SIZE=35000
|
|
MIN="YES"
|
|
END="YES"
|
|
if [ $CHECK == "YES" ] ; then CheckDisk ; else DONE=YES; fi
|
|
if [ $SDTHOME != "/usr/dt" ] ; then CreateTheLink ; else DONE=YES; fi
|
|
if [ $DONE = "YES" ] ; then InstallMin ; fi
|
|
if [ $DONE = "YES" ] ; then InstallEnd ; fi
|
|
if [ $PATCH = "YES" ] ; then MinPatch ; else DONE=YES; fi
|
|
if [ $PATCH = "YES" ] ; then EndPatch ; else DONE=YES; fi
|
|
if [ $DTLOGIN = "YES" ] ; then RunDtconfig ; else DONE=YES; fi
|
|
;;
|
|
|
|
"3" )
|
|
SIZE=60000
|
|
MIN="YES"
|
|
END="YES"
|
|
DEV="YES"
|
|
if [ $CHECK == "YES" ] ; then CheckDisk ; else DONE=YES; fi
|
|
if [ $SDTHOME != "/usr/dt" ] ; then CreateTheLink ; else DONE=YES; fi
|
|
if [ $DONE = "YES" ] ; then InstallMin ; fi
|
|
if [ $DONE = "YES" ] ; then InstallEnd ; fi
|
|
if [ $DONE = "YES" ] ; then InstallDev ; fi
|
|
if [ $PATCH = "YES" ] ; then MinPatch ; else DONE=YES; fi
|
|
if [ $PATCH = "YES" ] ; then EndPatch ; else DONE=YES; fi
|
|
if [ $PATCH = "YES" ] ; then DevPatch ; else DONE=YES; fi
|
|
if [ $DTLOGIN = "YES" ] ; then RunDtconfig ; else DONE=YES; fi
|
|
;;
|
|
|
|
"4" )
|
|
SetOptions
|
|
MENU_SELECT=NO
|
|
;;
|
|
|
|
"0" )
|
|
DONE="YES"
|
|
;;
|
|
|
|
*)
|
|
print ""
|
|
print ""
|
|
print "\t\tI don't recogize..\"$response\" Sorry.. "
|
|
sleep 2
|
|
MENU_SELECT=NO
|
|
;;
|
|
|
|
esac
|
|
fi
|
|
|
|
done
|
|
Exit
|
|
|
|
|
|
|
|
|
|
# ********************************************************************
|
|
#
|
|
# The End
|
|
#
|
|
********************************************************************
|
|
|