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

zmena verze skriptu; pridano zjistovani verze klienta urceneho k updatu; zmena odsazeni

parent 1b980a3c
No related branches found
No related tags found
No related merge requests found
......@@ -39,199 +39,213 @@ VERSION="1.0"
#-------------------------------------------------------------------------------
usage()
{
echo "Usage: `basename $0` [-d <directory>] [-hV]"
echo "-d <directory> installation directory (default: /opt)"
echo "-h print this help"
echo "-V print script version number and exit"
echo
echo "Example: ./`basename $0` -d /opt"
echo
echo "Note: You must be root for running this script."
echo " For more information about update process, see README file (section Update)."
echo
exit 0
echo "Usage: `basename $0` [-d <directory>] [-hV]"
echo "-d <directory> installation directory (default: /opt)"
echo "-h print this help"
echo "-V print script version number and exit"
echo
echo "Example: ./`basename $0` -d /opt"
echo
echo "Note: You must be root for running this script."
echo " For more information about update process, see README file (section Update)."
echo
exit 0
}
version()
{
echo "`basename ${0}` - current version is $VERSION"
exit 0
echo "`basename ${0}` - current version is $VERSION"
exit 0
}
err()
{
echo "FAILED!"
cat $err
rm -rf $err
rm -rf $backup_dir
echo
echo "Update to $package_name package FAILED!!!"
exit 1
echo "FAILED!"
cat $err
rm -rf $err
rm -rf $backup_dir
echo
echo "Update from $old_package_name to $package_name package FAILED!!!"
exit 1
}
err_clean()
{
echo "FAILED!"
echo " -> Reverting changes of warden client package ... OK"
rm -rf "$client_path/*" > /dev/null 2>&1
cp -R "$backup_dir/*" $client_path
cat $err
rm -rf $err
rm -rf $backup_dir
echo
echo "Update to $package_name package FAILED!!!"
exit 1
echo "FAILED!"
echo " -> Reverting changes of warden client package ... OK"
rm -rf "$client_path/*" > /dev/null 2>&1
cp -R "$backup_dir/*" $client_path
cat $err
rm -rf $err $backup_dir
echo
echo "Update from $old_package_name to $package_name package FAILED!!!"
exit 1
}
os_chck()
{
OS=`uname`
if [ "$OS" != "Linux" ]; then
echo "Sorry, unsupported operating system detected - \"$OS\"!"
exit 1
fi
OS=`uname`
if [ "$OS" != "Linux" ]; then
echo "Sorry, unsupported operating system detected - \"$OS\"!"
exit 1
fi
}
shell_chck()
{
SHELL=`echo $SHELL`
if [ "$SHELL" != "/bin/bash" ]; then
echo "Sorry, this script is usable in Bourne Again Shell (bash) only!"
exit 1
fi
SHELL=`echo $SHELL`
if [ "$SHELL" != "/bin/bash" ]; then
echo "Sorry, this script is usable in Bourne Again Shell (bash) only!"
exit 1
fi
}
root_chck()
{
if [ $UID -ne 0 ]; then
echo "You must be root for running this script!"
exit 1
fi
if [ $UID -ne 0 ]; then
echo "You must be root for running this script!"
exit 1
fi
}
params_chck()
{
if [ -z $prefix ]; then
prefix=/opt
echo "Warning: parameter -d <directory> is not set - default installation directory is $prefix!"
fi
if [ -z $prefix ]; then
prefix=/opt
echo "Warning: parameter -d <directory> is not set - default installation directory is $prefix!"
fi
}
obtain_package_version()
{
if [ -f $old_package_version_file ]; then
old_package_version=`cat $old_package_version_file`
else
echo "Sorry, but warden-client package is not installed!"
echo "For installation of warden client package please use install.sh script."
exit 1
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
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
}
modules_chck()
{
for module in ${modules[@]};
do
echo -n "Checking $module module ... "
perl -e "use $module" 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
done
for module in ${modules[@]};
do
echo -n "Checking $module module ... "
perl -e "use $module" 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
done
}
installation_dir_chck()
{
echo -n "Checking installation directory ... "
if [ ! -d $prefix ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi
echo -n "Checking installation directory ... "
if [ ! -d $prefix ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi
}
warden_dir_chck()
{
echo -n "Checking warden client directory ... "
if [ ! -d $client_path ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi
echo -n "Checking warden client directory ... "
if [ ! -d $client_path ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi
}
backup()
{
echo -n "Backing-up warden client directory ... "
mkdir $backup_dir
cp -R $client_path $backup_dir 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
echo -n "Backing-up warden client directory ... "
mkdir $backup_dir
cp -R $client_path $backup_dir 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
}
obtain_warden_user()
{
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
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
files=(CHANGELOG INSTALL LICENSE README README.cesnet)
for file in ${files[@]};
do
cp -u "`dirname $0`/$file" "$client_path/doc"
done
cp -u "`dirname $0`/uninstall.sh" "$client_path"
echo -n "Updating warden client directory ... "
rsync -q --recursive --archive --delete --exclude="$dirname/warden-client/etc"\
--include="$dirname/warden-client/etc/package_version.txt"\
--exclude="$dirname/warden-client/var"\
warden-client $prefix 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
files=(CHANGELOG INSTALL LICENSE README README.cesnet)
for file in ${files[@]};
do
cp -u "$dirname/$file" "$client_path/doc"
done
cp -u "$dirname/uninstall.sh" "$client_path"
}
make_conf_file()
{
echo -n "Creating configuration file ... "
uri=`cat $conf_file | grep '$URI'`
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 "#
echo -n "Creating configuration file ... "
uri=`cat $conf_file | grep '$URI'`
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
#
......@@ -255,23 +269,24 @@ $ssl_cert_file
#-------------------------------------------------------------------------------
$ssl_ca_file
" > $conf_file 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
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
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
}
......@@ -291,12 +306,12 @@ shell_chck
# read input
while getopts "d:Vh" options; do
case $options in
d ) prefix=$OPTARG;;
h ) usage;;
V ) version;;
* ) usage;;
esac
case $options in
d ) prefix=$OPTARG;;
h ) usage;;
V ) version;;
* ) usage;;
esac
done
# root test
......@@ -306,13 +321,18 @@ root_chck
params_chck
# create variables
package_name="warden-client-$VERSION"
dirname=`dirname $0`
package_version=`cat $dirname/warden-client/etc/package_version.txt`
client_path="$prefix/warden-client"
etc="$client_path/etc"
old_package_version_file="$etc/package_version.txt"
conf_file="$etc/warden-client.conf"
err="/tmp/warden-err"
backup_dir="/tmp/warden-backup"
# obtain version of old warden client
#obtain_package_version # ENABLE for next client package
old_package_version="1.0.0"
echo
echo "------------------------- Dependencies check-in -------------------------"
......@@ -323,7 +343,6 @@ perl_chck
# Perl modules test
modules_chck
echo
echo "------------------------- Update process --------------------------------"
......@@ -351,10 +370,9 @@ change_permissions
echo
echo "Please check configuration file in $conf_file!"
echo
echo "Update to $package_name package was SUCCESSFUL!!!"
echo "Update from $old_package_version to $package_version package was SUCCESSFUL!!!"
# cleanup section
rm -rf $err
rm -rf $backup_dir
rm -rf $err $backup_dir
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment