Skip to content
Snippets Groups Projects
Select Git revision
  • d3f86b068036f86f55c3d7ba6a1266b9c62177f9
  • master default protected
  • rednatco-v2
  • rednatco
  • test
  • ntc-tube-uniform-color
  • ntc-tube-missing-atoms
  • restore-vertex-array-per-program
  • watlas2
  • dnatco_new
  • cleanup-old-nodejs
  • webmmb
  • fix_auth_seq_id
  • update_deps
  • ext_dev
  • ntc_balls
  • nci-2
  • plugin
  • bugfix-0.4.5
  • nci
  • servers
  • v0.5.0-dev.1
  • v0.4.5
  • v0.4.4
  • v0.4.3
  • v0.4.2
  • v0.4.1
  • v0.4.0
  • v0.3.12
  • v0.3.11
  • v0.3.10
  • v0.3.9
  • v0.3.8
  • v0.3.7
  • v0.3.6
  • v0.3.5
  • v0.3.4
  • v0.3.3
  • v0.3.2
  • v0.3.1
  • v0.3.0
41 results

array.ts

Blame
  • install.sh 6.70 KiB
    #!/bin/bash
    #
    # install.sh
    #
    # Copyright (C) 2011-2012 Cesnet z.s.p.o
    #
    # Use of this source is governed by a BSD-style license, see LICENSE file.  
    
    
    VERSION="2.0"
    
    #-------------------------------------------------------------------------------
    #				FUNCTIONS
    #-------------------------------------------------------------------------------
    usage()
    {
    	echo "Usage: `basename $0` [-d <directory>] [-u <user>] [-k <ssl_key_file>] [-c <ssl_cert_file>] [-a <ssl_ca_file>] [-hV]"
    	echo "-d <directory>            installation directory (default: /opt)"
    	echo "-u <user>                 owner of warden client package (user for running detection scripts)"
    	echo "-k <ssl_key_file>         path to SSL certificate key file"
    	echo "-c <ssl_cert_file>        path to SSL certificate file"
    	echo "-a <ssl_ca_file>          path to CA certificate file"
    	echo "-h                        print this help"
    	echo "-V                        print script version number and exit"
    	echo
    	echo "Example: # ./`basename $0` -d /opt -u detector -k /etc/ssl/private/client.key -c /etc/ssl/certs/client.pem -a /etc/ssl/certs/tcs-ca-bundle.pem"
    	echo
    	echo "Note: You must be root for running this script."
    	echo "      For more information about installation process, see README file (section Installation)."
    	echo
    	exit 0
    }
    
    
    version()
    {
    	echo "`basename ${0}` - current version is $VERSION"
    	exit 0
    }
    
    
    err()
    {
    	echo "FAILED!"
    	cat $err
    	rm -rf $err
    	echo
    	echo "Installation of $package_version package FAILED!!!"
    	exit 1
    }
    
    
    err_clean()
    {
    	echo "FAILED!"
    	echo " -> Uninstalling client package ... OK"
    	rm -rf $client_path > /dev/null 2>&1
    	cat $err
    	rm -rf $err
    	echo
    	echo "Installation of $package_version package FAILED!!!"
    	exit 1
    }
    
    
    root_chck()
    {
    	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 $user ]; then
    		echo "Parameter -u <user> is not set!"
    		exit 1
    	fi
    	if [ -z $key ]; then
    		echo "Parameter -k <ssl_key_file> is not set!"
    		exit 1
    	fi
    	if [ -z $cert ]; then
    		echo "Parameter -c <ssl_cert_file> is not set!"
    		exit 1
    	fi
    	if [ -z $ca_file ]; then
    		echo "Parameter -a <ssl_ca_file> is not set!"
    		exit 1
    	fi
    }
    
    
    old_client_chck()
    {
    	old_package_version_file={$etc}/package_version
    	if [ -f $old_package_version_file ]; then
    		old_package_version=`cat $old_package_version_file`
    		echo "Sorry, but $old_package_version package is installed!"
    		echo "For update of warden client package please use update.sh script."
    		exit 1
    	fi
    }
    
    
    perl_chck()
    {
    	echo -n "Checking Perl interpreter ... "
    	if which perl 1> /dev/null; 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 ... "
    		if perl -e "use $module" 2> $err; then
    			echo "OK"
    		else
    			err
    		fi
    	done
    }
    
    
    make_warden_dir()
    {
    	echo -n "Creating warden client directory ... "
    	test -d $prefix || mkdir -p $prefix
    	if cp -R ${dirname}/warden-client $prefix 2> $err; then
    		echo "OK"
    	else
    		err_clean
    	fi
    
    	files=(CHANGELOG INSTALL LICENSE README README.cesnet)
    	for file in ${files[@]};
    	do
    		cp ${dirname}/$file ${client_path}/doc
    	done
    	cp ${dirname}/uninstall.sh $client_path
    }
    
    
    copy_key()
    {
    	echo -n "Copying certificate key file ... "
    	if cp $key $etc 2> $err; then
    		echo "OK"
    	else
    		err_clean
    	fi
    }
    
    
    copy_cert()
    {
    	echo -n "Copying certificate file ... "
    	if cp $cert $etc 2> $err; then
    		echo "OK"
    	else
    		err_clean
    	fi
    }
    
    
    make_conf_file()
    {
    	echo -n "Creating configuration file ... "
    	echo "#
    # warden-client.conf - configuration file for the warden sender/receiver client
    #
    
    #-------------------------------------------------------------------------------
    # URI - URI address of Warden server
    #-------------------------------------------------------------------------------
    \$URI = \"https://warden.cesnet.cz:443/Warden\";
    
    #-------------------------------------------------------------------------------
    # SSL_KEY_FILE - path to client SSL certificate key file
    #-------------------------------------------------------------------------------
    \$SSL_KEY_FILE = \"${etc}/${key_file}\";
    
    #-------------------------------------------------------------------------------
    # SSL_CERT_FILE - path to client SSL certificate file
    #-------------------------------------------------------------------------------
    \$SSL_CERT_FILE = \"${etc}/${cert_file}\";
    
    #-------------------------------------------------------------------------------
    # SSL_CA_FILE - path to CA certificate file
    #-------------------------------------------------------------------------------
    \$SSL_CA_FILE = \"${ca_file}\";
    " > $conf_file 2> $err; ret_val=`echo $?`
    
    	if [ $ret_val -eq 0 ]; then
    		echo "OK"
    	else
    		err_clean
    	fi
    }
    
    
    change_permissions()
    {
    	echo -n "Changing permissions to installed package ... "
    	chown -R $user: $client_path 2> $err || err_clean
    	chmod 400 ${etc}/$key_file ${etc}/$cert_file || err_clean
    	chmod 644 ${etc}/package_version || err_clean
    	if chmod 600 $conf_file; then
    		echo "OK"
    	else
    		err_clean
    	fi
    }
    
    
    
    #-------------------------------------------------------------------------------
    #				MAIN
    #-------------------------------------------------------------------------------
    
    # list of used Perl modules
    modules=(SOAP::Lite IO::Socket::SSL SOAP::Transport::HTTP FindBin DateTime)
    
    # read input
    while getopts "d:u:k:c:a:Vh" options; do
    	case $options in
    		d ) prefix=$OPTARG;;
    		u ) user=$OPTARG;;
    		k ) key=$OPTARG;;
    		c ) cert=$OPTARG;;
    		a ) ca_file=$OPTARG;;
    		h ) usage;;
    		V ) version;;
    		* ) usage;;
    	esac
    done
    
    # root test
    root_chck
    
    # params test
    params_chck
    
    # create variables
    dirname=`dirname $0`
    package_version=`cat ${dirname}/warden-client/etc/package_version`
    key_file=`basename $key`
    cert_file=`basename $cert`
    [[ $prefix == */ ]] && prefix="${prefix%?}" # remove last char (slash) from prefix
    client_path="${prefix}/warden-client"
    etc="${client_path}/etc"
    conf_file="${etc}/warden-client.conf"
    err="/tmp/warden-err"
    
    # check if warden-client is installed
    old_client_chck
    
    echo
    echo "------------------------- Dependencies check-in -------------------------"
    
    # Perl interpreter test
    perl_chck
    
    # Perl modules test
    modules_chck
    
    
    echo
    echo "------------------------- Installation process --------------------------"
    
    # make warden client directory
    make_warden_dir
    
    # copy cert key file 
    copy_key
    
    # copy cert file
    copy_cert
    
    # create conf file
    make_conf_file
    
    # change permissions
    change_permissions
    
    echo
    echo "Please check configuration file in ${conf_file}!"
    echo
    echo "Warden client directory: $client_path"
    echo
    echo "Installation of $package_version package was SUCCESSFUL!!!"
    
    # cleanup section
    rm -rf $err
    
    exit 0