#! /bin/bash #------------------------------------------------------------------------------ # # install_yast_icons # #------------------------------------------------------------------------------ # Comments to: # support@novell.com #------------------------------------------------------------------------------ # # Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; version 2.1 # of the License. # # This library 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 # Library Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, Novell, Inc. # # To contact Novell about this file by physical or electronic mail, # you may find current contact information at www.novell.com. # # #------------------------------------------------------------------------------ # # START_DIR = pwd - the current working directory # this is the directory where this script is executed from # #------------------------------------------------------------------------------ VERSION=1.6 SCRIPT_NAME='install_casa_yast_icons' START_DIR=`pwd` DATE=`date` SOURCE22_ICON=CASA_22.png SOURCE32_ICON=CASA_32.png SOURCE48_ICON=CASA_48.png DEST_ICON=CASA.png determineIfSourceExists () { if [ ! -e $ICON_SOURCE/$SOURCE22_ICON ] then echo "" echo "[$SCRIPT_NAME] ERROR: The icon source file:" echo "[$SCRIPT_NAME] $ICON_SOURCE/$DIR_22/$ICON_FILE" echo "[$SCRIPT_NAME] was not found." echo "" # echo "ERROR: Icon source file not found: $ICON_SOURCE/$DIR_22/$ICON_FILE" 1>>$LOG_DIR_FILE exit 3 fi if [ ! -e $ICON_SOURCE/$SOURCE32_ICON ] then echo "" echo "[$SCRIPT_NAME] ERROR: The icon source file:" echo "[$SCRIPT_NAME] $ICON_SOURCE/$DIR_32/$ICON_FILE" echo "[$SCRIPT_NAME] was not found." echo "" # echo "ERROR: Icon source file not found: $ICON_SOURCE/$DIR_32/$ICON_FILE" 1>>$LOG_DIR_FILE exit 3 fi if [ ! -e $ICON_SOURCE/$SOURCE48_ICON ] then echo "" echo "[$SCRIPT_NAME] ERROR: The icon source file:" echo "[$SCRIPT_NAME] $ICON_SOURCE/$DIR_48/$ICON_FILE" echo "[$SCRIPT_NAME] was not found." echo "" # echo "ERROR: Icon source file not found: $ICON_SOURCE/$DIR_48/$ICON_FILE" 1>>$LOG_DIR_FILE exit 3 fi } determineIfCopyDeleteRequired () { for YAST_THEME_DIR in $YAST_THEME_DIRS do if [ ! -h $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR ] then if [ -d $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR ] then if [ -e $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$ICON_FILE ] then DELETE_ICONS="yes" else COPY_ICONS="yes" fi if [ -e $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$ICON_FILE ] then DELETE_ICONS="yes" else COPY_ICONS="yes" fi if [ -e $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$ICON_FILE ] then DELETE_ICONS="yes" else COPY_ICONS="yes" fi fi fi done } copyDeleteIcons () { for YAST_THEME_DIR in $YAST_THEME_DIRS do if [ -z "$LAUNCHER" ] then echo "" fi if [ -h $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR ] then if [ -z "$LAUNCHER" ] then echo "[$SCRIPT_NAME] skip $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR because it is a link" fi # echo "skip $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR because it is a link" 1>>$LOG_DIR_FILE else if [ -d $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR ] then if [ -z "$LAUNCHER" ] then echo "[$SCRIPT_NAME] processing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR" fi # echo "processing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR" 1>>$LOG_DIR_FILE if [ "$MODE" = "install" ] then echo "[$SCRIPT_NAME] installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$ICON_FILE" # echo "installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE if [ ! -d $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR ] then mkdir -p $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR fi cp -r $ICON_SOURCE/$SOURCE22_ICON $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$DEST_ICON else echo "[$SCRIPT_NAME] uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$ICON_FILE" # echo "uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE rm -f $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_22/$APPS_DIR/$DEST_ICON fi if [ "$MODE" = "install" ] then echo "[$SCRIPT_NAME] installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$ICON_FILE" # echo "installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE if [ ! -d $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR ] then mkdir -p $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR fi cp -r $ICON_SOURCE/$SOURCE32_ICON $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$DEST_ICON else echo "[$SCRIPT_NAME] uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$ICON_FILE" # echo "uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE rm -f $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_32/$APPS_DIR/$DEST_ICON fi if [ "$MODE" = "install" ] then echo "[$SCRIPT_NAME] installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$ICON_FILE" # echo "installing $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE if [ ! -d $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR ] then mkdir -p $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR fi cp -r $ICON_SOURCE/$SOURCE48_ICON $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$DEST_ICON else echo "[$SCRIPT_NAME] uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$ICON_FILE" # echo "uninstalling $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$ICON_FILE" 1>>$LOG_DIR_FILE rm -f $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR/$ICONS_DIR/$DIR_48/$APPS_DIR/$DEST_ICON fi else if [ -z "$LAUNCHER" ] then echo "[$SCRIPT_NAME] skip $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR because it is not a directory" fi # echo "skip $YAST_THEME_DIR_PREFIX/$YAST_THEME_DIR because it is not a directory" 1>>$LOG_DIR_FILE fi fi done } #---------------------------------------------------------------------------- # the MAIN routine #--------------------------------------------------------------------------- COPY_ICONS="no" DELETE_ICONS="no" YAST_THEME_DIR_PREFIX="/usr/share/YaST2/theme" YAST_THEME_DIRS=`ls $YAST_THEME_DIR_PREFIX` #LOG_DIR="/var/opt/novell/log/ncl" #LOG_FILE="install_yast_icons.log" #LOG_DIR_FILE="$LOG_DIR/$LOG_FILE" DIR_22=22x22 DIR_32=32x32 DIR_48=48x48 ICON_SOURCE="/usr/share/pixmaps" APPS_DIR="apps" ICONS_DIR="icons" ICON_FILE="CASA.png" if [ -z "$1" ] then MODE="install" else MODE=$1 if [ -z "$2" ] then LAUNCHER="" else LAUNCHER=$2 fi fi echo "" echo "[$SCRIPT_NAME] $SCRIPT_NAME v$VERSION" #if [ ! -d $LOG_DIR ] #then # mkdir -p $LOG_DIR #fi #echo "" 1>>$LOG_DIR_FILE #echo "$SCRIPT_NAME v$VERSION - $DATE" 1>>$LOG_DIR_FILE #echo "mode = <$MODE>" 1>>$LOG_DIR_FILE #echo "launcher = <$LAUNCHER>" 1>>$LOG_DIR_FILE # verify that a valid mode was entered case "$MODE" in "install" | "uninstall" ) # echo "<$MODE> is a valid mode" 1>>$LOG_DIR_FILE ;; "usage" | "help" | "-?" ) echo "" echo "[$SCRIPT_NAME] usage: $SCRIPT_NAME [ install | uninstall | usage | help | -? ]" echo "" # echo "usage: $SCRIPT_NAME [ install | uninstall | usage | help | -? ]" 1>>$LOG_DIR_FILE exit 1 ;; * ) echo "" echo "[$SCRIPT_NAME] invalid mode: <$MODE>" echo "[$SCRIPT_NAME] usage: $SCRIPT_NAME [ install | uninstall | usage | help | -? ]" echo "" # echo "invalid mode: <$MODE>" 1>>$LOG_DIR_FILE exit 1 ;; esac # verify that a valid launcher was entered case "$LAUNCHER" in "YaST" | "rpm" ) # echo "<$LAUNCHER> is a valid launcher" 1>>$LOG_DIR_FILE ;; * ) if [ -n "$2" ] then echo "" echo "[$SCRIPT_NAME] invalid option: <$LAUNCHER>" echo "[$SCRIPT_NAME] usage: $SCRIPT_NAME [ install | uninstall | usage | help | -? ]" echo "" # echo "invalid launcher: <$LAUNCHER>" 1>>$LOG_DIR_FILE exit 1 fi ;; esac # validate that the user running the script is root ROOT_UID=0 #echo "User id = <$UID>" 1>>$LOG_DIR_FILE if [ "$UID" -ne "$ROOT_UID" ] then echo "" echo "[$SCRIPT_NAME] ERROR: You are not the root user." echo "[$SCRIPT_NAME] To install or uninstall the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons you must login as the root user." echo "" # echo "ERROR: You are not the root user." 1>>$LOG_DIR_FILE exit 2 fi # verifty that the icons can be installed if [ "$MODE" = "install" ] then determineIfSourceExists fi # verify that the icons need to be installed or uninstalled if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Determining if the Novell Client for Linux" if [ "$MODE" = "install" ] then echo "[$SCRIPT_NAME] YaST icons need to be installed." else echo "[$SCRIPT_NAME] YaST icons need to be uninstalled." fi echo "[$SCRIPT_NAME] Please wait..." fi if [ "$MODE" = "install" ] then if [ "$LAUNCHER" = "YaST" ] then determineIfCopyDeleteRequired else COPY_ICONS="yes" fi else determineIfCopyDeleteRequired fi # install or uninstall the icons if [ "$MODE" = "install" ] then if [ "$COPY_ICONS" = "yes" ] then if [ -n "$LAUNCHER" ] then CONTINUE="y" else echo "" echo "[$SCRIPT_NAME] This script installs the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons in all of the YaST theme directories." echo "" echo "[$SCRIPT_NAME] Are you sure you want to install the YaST icons? (y/n)" read CONTINUE fi else echo "" echo "[$SCRIPT_NAME] The Novell Client for Linux YaST icons are already installed" echo "" # echo "The Novell Client for Linux YaST icons are already installed" 1>>$LOG_DIR_FILE exit fi else if [ "$DELETE_ICONS" = "yes" ] then if [ -n "$LAUNCHER" ] then CONTINUE="y" else echo "" echo "[$SCRIPT_NAME] This script uninstalls the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons in all of the YaST theme directories." echo "" echo "[$SCRIPT_NAME] Are you sure you want to uninstall the YaST icons? (y/n)" read CONTINUE fi else echo "" echo "[$SCRIPT_NAME] The Novell Client for Linux YaST icons are already uninstalled" echo "" # echo "The Novell Client for Linux YaST icons are already uninstalled" 1>>$LOG_DIR_FILE exit fi fi if [ "$CONTINUE" = "y" ] then if [ "$MODE" = "install" ] then if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Installing Novell Client for Linux YaST icons" echo "[$SCRIPT_NAME] Please wait..." fi copyDeleteIcons if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Installation of the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons completed" echo "" fi # echo "Installation of the Novell Client for Linux YaST icons completed" 1>>$LOG_DIR_FILE exit else if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Uninstalling Novell Client for Linux YaST icons" echo "[$SCRIPT_NAME] Please wait..." fi copyDeleteIcons if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Uninstallation of the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons completed" echo "" fi # echo "Uninstallation of the Novell Client for Linux YaST icons completed" 1>>$LOG_DIR_FILE exit fi else if [ "$MODE" = "install" ] then if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Installation of the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons cancelled" echo "" fi # echo "Installation of the Novell Client for Linux YaST icons cancelled" 1>>$LOG_DIR_FILE exit else if [ -z "$LAUNCHER" ] then echo "" echo "[$SCRIPT_NAME] Uninstallation of the Novell Client for Linux" echo "[$SCRIPT_NAME] YaST icons cancelled" echo "" fi # echo "Uninstallation of the Novell Client for Linux YaST icons cancelled" 1>>$LOG_DIR_FILE exit fi fi exit