Skip to content
Snippets Groups Projects
Commit aef58d41 authored by Tomáš Plesník's avatar Tomáš Plesník
Browse files

odstraneni update.sh skriptu; pridani uninstall.sh skriptu

parent 326cd8a1
No related branches found
No related tags found
No related merge requests found
#!/bin/bash #!/bin/bash
# #
# update.sh # uninstall.sh
# #
# Copyright (C) 2012 Cesnet z.s.p.o # Copyright (C) 2011-2012 Cesnet z.s.p.o
# Author(s): Tomas PLESNIK <plesnik@ics.muni.cz> # Author(s): Tomas PLESNIK <plesnik@ics.muni.cz>
# Jan SOUKAL <soukal@ics.muni.cz> # Jan SOUKAL <soukal@ics.muni.cz>
# #
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
# otherwise) arising in any way out of the use of this software, even # otherwise) arising in any way out of the use of this software, even
# if advised of the possibility of such damage. # if advised of the possibility of such damage.
VERSION="1.0"
VERSION="1.0.0"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# FUNCTIONS # FUNCTIONS
...@@ -40,14 +39,14 @@ VERSION="1.0.0" ...@@ -40,14 +39,14 @@ VERSION="1.0.0"
usage() usage()
{ {
echo "Usage: `basename $0` [-d <directory>] [-hV]" echo "Usage: `basename $0` [-d <directory>] [-hV]"
echo "-d <directory> installation directory (default: /opt)" echo "-d <directory> uninstallation directory (default: /opt)"
echo "-h print this help" echo "-h print this help"
echo "-V print script version number and exit" echo "-V print script version number and exit"
echo echo
echo "Example: ./`basename $0` -d /opt" echo "Example: # ./`basename $0` -d /opt"
echo echo
echo "Note: You must be root for running this script." echo "Note: You must be root for running this script."
echo " For more information about update process, see README file (section Update)." echo " For more information about uninstallation process, see README file (section Uninstallation)."
echo echo
exit 0 exit 0
} }
...@@ -64,10 +63,9 @@ err() ...@@ -64,10 +63,9 @@ err()
{ {
echo "FAILED!" echo "FAILED!"
cat $err cat $err
rm -rf $err rm -rf $err $backup_dir
rm -rf $backup_dir
echo echo
echo "Update FAILED!!!" echo "Uninstallation of $package_version package FAILED!!!"
exit 1 exit 1
} }
...@@ -79,10 +77,9 @@ err_clean() ...@@ -79,10 +77,9 @@ err_clean()
rm -rf "$client_path/*" > /dev/null 2>&1 rm -rf "$client_path/*" > /dev/null 2>&1
cp -R "$backup_dir/*" $client_path cp -R "$backup_dir/*" $client_path
cat $err cat $err
rm -rf $err rm -rf $err $backup_dir
rm -rf $backup_dir
echo echo
echo "Update FAILED!!!" echo "Uninstallation of $package_version package FAILED!!!"
exit 1 exit 1
} }
...@@ -120,49 +117,17 @@ params_chck() ...@@ -120,49 +117,17 @@ params_chck()
{ {
if [ -z $prefix ]; then if [ -z $prefix ]; then
prefix=/opt prefix=/opt
echo "Warning: parameter -d <directory> is not set - default installation directory is $prefix!" echo "Warning: parameter -d <directory> is not set - default uninstallation directory is $prefix!"
fi
}
perl_chck()
{
echo -n "Checking Perl interpreter ... "
which perl 1>/dev/null; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
echo "FAILED!"
echo "Error: Perl interpreter is not installed!"
exit 1
fi fi
} }
modules_chck() obtain_package_version()
{ {
for module in ${modules[@]}; if [ -f $old_package_version_file ]; then
do package_version=`cat $old_package_version_file`
echo -n "Checking $module module ... "
perl -e "use $module" 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else else
err package_version="unknown"
fi
done
}
installation_dir_chck()
{
echo -n "Checking installation directory ... "
if [ ! -d $prefix ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi fi
} }
...@@ -172,13 +137,14 @@ warden_dir_chck() ...@@ -172,13 +137,14 @@ warden_dir_chck()
echo -n "Checking warden client directory ... " echo -n "Checking warden client directory ... "
if [ ! -d $client_path ]; then if [ ! -d $client_path ]; then
echo "FAILED!" echo "FAILED!"
ls $prefix ls $client_path
exit 1 exit 1
else else
echo "OK" echo "OK"
fi fi
} }
backup() backup()
{ {
echo -n "Backing-up warden client directory ... " echo -n "Backing-up warden client directory ... "
...@@ -192,62 +158,10 @@ backup() ...@@ -192,62 +158,10 @@ backup()
} }
obtain_warden_user() uninstall_warden_client()
{
echo -n "Obtaining warden client directory owner ... "
user=`stat -c %U $conf_file` 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
}
update_warden_dir()
{
echo -n "Updating warden client directory ... "
rsync -q --recursive --archive --delete --exclude="warden-client/etc" --exclude="warden-client/var" warden-client $prefix 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
cp -u CHANGELOG INSTALL LICENSE README README.cesnet "$client_path/doc"
}
make_conf_file()
{ {
echo -n "Creating configuration file ... " echo -n "Uninstalling $package_version package ... "
uri=`cat $conf_file | grep '$URI'` rm -rf $client_path 2> $err; ret_val=`echo $?`
ssl_key_file=`cat $conf_file | grep '$SSL_KEY_FILE'`
ssl_cert_file=`cat $conf_file | grep '$SSL_CERT_FILE'`
ssl_ca_file=`cat $conf_file | grep '$SSL_CA_FILE'`
echo "#
# warden-client.conf - configuration file for the warden sender/receiver client
#
#-------------------------------------------------------------------------------
# URI - URI address of Warden server
#-------------------------------------------------------------------------------
$uri
#-------------------------------------------------------------------------------
# SSL_KEY_FILE - path to client SSL certificate key file
#-------------------------------------------------------------------------------
$ssl_key_file
#-------------------------------------------------------------------------------
# SSL_CERT_FILE - path to client SSL certificate file
#-------------------------------------------------------------------------------
$ssl_cert_file
#-------------------------------------------------------------------------------
# SSL_CA_FILE - path to CA certificate file
#-------------------------------------------------------------------------------
$ssl_ca_file
" > $conf_file 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then if [ $ret_val -eq 0 ]; then
echo "OK" echo "OK"
else else
...@@ -255,27 +169,10 @@ $ssl_ca_file ...@@ -255,27 +169,10 @@ $ssl_ca_file
fi fi
} }
change_permissions()
{
echo -n "Changing permissions to updated package ... "
chown -R $user: $client_path 2>$err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
}
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# MAIN # MAIN
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# list of used Perl modules
modules=(SOAP::Lite IO::Socket::SSL SOAP::Transport::TCP FindBin)
# OS test # OS test
os_chck os_chck
...@@ -299,54 +196,32 @@ root_chck ...@@ -299,54 +196,32 @@ root_chck
params_chck params_chck
# create variables # create variables
[[ $prefix == */ ]] && prefix="${prefix%?}" # remove last char (slash) from prefix
client_path="$prefix/warden-client" client_path="$prefix/warden-client"
etc="$client_path/etc" etc="$client_path/etc"
conf_file="$etc/warden-client.conf" old_package_version_file="$etc/package_version"
err="/tmp/warden-err" err="/tmp/warden-err"
backup_dir="/tmp/warden-backup" backup_dir="/tmp/warden-backup"
# obtain version of installed warden-client package
obtain_package_version
echo echo
echo "------------------------- Dependencies check-in -------------------------" echo "------------------------- Uninstallation process --------------------------------"
# Perl interpreter test
perl_chck
# Perl modules test # check if $prefix/warden-client directory exist
modules_chck
echo
echo "------------------------- Update process --------------------------------"
# check installation directory
installation_dir_chck
# check warden client directory
warden_dir_chck warden_dir_chck
# backup old warden client installation # make backup of currently installed warden-client package
backup backup
# obtain current warden client user # do uninstallation
obtain_warden_user uninstall_warden_client
# make warden client directory
update_warden_dir
# create conf file
make_conf_file
# change permissions
change_permissions
echo
echo "Please check configuration file in $conf_file!"
echo echo
echo "Update was SUCCESSFUL!!!" echo "Uninstallation of $package_version package was SUCCESSFUL!!!"
# cleanup section # cleanup section
rm -rf $err rm -rf $err $backup_dir
rm -rf $backup_dir
exit 0 exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment