
#!/bin/sh

# Copyright (c) Members of the EGEE Collaboration. 2004 
# See http://eu-egee.org/partners/ for details on the copyright holders
# For license conditions see the license file or http://eu-egee.org/license.html

# glite-rgma-client_installer v. 5.1.3
#
# The glite-rgma-client_installer installs the gLite RGMA client
#
# Usage: glite-rgma-client_installer [-u|-v|--help]
#        -u          uninstall
#        -v          print version
#        --help      print script usage info
# Return codes: 0 - Ok
#               1 - if a file could not be downloaded

###############################################################################

#Parse the RPMLIST to strip out the RPMS that are already installed
function parseRPMList()
{
        newRPMLIST=""
        localRPMLIST=`rpm -qa`
        for i in $RPMLIST
        do
                g=`echo $i | sed -e 's/\.i386\.rpm//g'`
                g=`echo $g | sed -e 's/\.noarch\.rpm//g'`
                if [ -z "`echo $localRPMLIST | grep $g`" ]; then
                        newRPMLIST="${newRPMLIST} $i"
                else
                        echo "$i is already installed. It will be skipped."
                fi
        done
                                                                                                                                                             
        RPMLIST=$newRPMLIST
}

function parseUserRPMList()
{
        newRPMLIST=""
        localRPMLIST=`rpm -qa --dbpath $basedir/.rpm`
        for i in $RPMLIST
        do
                g=`echo $i | sed -e 's/\.i386\.rpm//g'`
                g=`echo $g | sed -e 's/\.noarch\.rpm//g'`
                if [ -z "`echo $localRPMLIST | grep $g`" ]; then
                        newRPMLIST="${newRPMLIST} $i"
                else
                        echo "$i is already installed. It will be skipped."
                fi
        done
                                                                                                                                                             
        RPMLIST=$newRPMLIST
}

#Parse the SCRIPTLIST to execute all scripts
function parseScriptList()
{
        for i in $SCRIPTLIST
        do
        		if [ "$INSTALL" = "true" ]; then
        			if [ "${basedir}" != "" ]; then
        				$i --basedir $basedir
        			else
	                	$i
	                fi
	            else
	            	$i -u
	            fi
        done
}

#Downloads and install the module RPMS
function install()
{

	INSTALL=true
	
	version
	echo
	echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	echo x Please wait, downloading the gLite R-GMA Client ... x
	echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	echo

    mkdir -p glite-rgma-client
    cd glite-rgma-client

	# Download global dependencies	
	
 	

	# Download glite-rgma-client scripts from repository
		
	cd ..
			
	cd glite-rgma-client
		

	# Download glite-rgma-client dependencies RPMS from repository
						
				
				
wget -N -nv http://glite.web.cern.ch/glite/packages/externals/bin/rhel30/RPMS/glite-essentials-java-1.2.0-2_EGEE.noarch.rpm
if [ ! -f "glite-essentials-java-1.2.0-2_EGEE.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-essentials-java-1.2.0-2_EGEE.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-essentials-java-1.2.0-2_EGEE.noarch.rpm"
			 
								
				
wget -N -nv http://glite.web.cern.ch/glite/packages/externals/bin/rhel30/RPMS/glite-essentials-cpp-1.1.1-1_EGEE.i386.rpm
if [ ! -f "glite-essentials-cpp-1.1.1-1_EGEE.i386.rpm" ]
then
	echo 
	echo ERROR: glite-essentials-cpp-1.1.1-1_EGEE.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-essentials-cpp-1.1.1-1_EGEE.i386.rpm"
							

				
wget -N -nv http://glite.web.cern.ch/glite/packages/externals/bin/rhel30/RPMS/swig-runtime-1.3.21-1_EGEE.i386.rpm
if [ ! -f "swig-runtime-1.3.21-1_EGEE.i386.rpm" ]
then
	echo 
	echo ERROR: swig-runtime-1.3.21-1_EGEE.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST swig-runtime-1.3.21-1_EGEE.i386.rpm"
																	

			

	# Download glite-rgma-client RPMS from repository
		
			
				
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-config-1.4.11-1.noarch.rpm
if [ ! -f "glite-config-1.4.11-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-config-1.4.11-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-config-1.4.11-1.noarch.rpm"
			
				
				
                
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-common-config-5.0.1-1.noarch.rpm
if [ ! -f "glite-rgma-common-config-5.0.1-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-common-config-5.0.1-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-common-config-5.0.1-1.noarch.rpm"
			
                	
				
                
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-client-config-5.1.3-1.noarch.rpm
if [ ! -f "glite-rgma-client-config-5.1.3-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-client-config-5.1.3-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-client-config-5.1.3-1.noarch.rpm"
			
          	
                
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/i386/RPMS/glite-rgma-api-c-4.1.13-1.i386.rpm
if [ ! -f "glite-rgma-api-c-4.1.13-1.i386.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-api-c-4.1.13-1.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-api-c-4.1.13-1.i386.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/i386/RPMS/glite-rgma-api-cpp-4.1.15-1.i386.rpm
if [ ! -f "glite-rgma-api-cpp-4.1.15-1.i386.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-api-cpp-4.1.15-1.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-api-cpp-4.1.15-1.i386.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-api-java-4.1.5-1.noarch.rpm
if [ ! -f "glite-rgma-api-java-4.1.5-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-api-java-4.1.5-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-api-java-4.1.5-1.noarch.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/i386/RPMS/glite-rgma-api-python-4.1.15-1.i386.rpm
if [ ! -f "glite-rgma-api-python-4.1.15-1.i386.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-api-python-4.1.15-1.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-api-python-4.1.15-1.i386.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-base-4.1.19-1.noarch.rpm
if [ ! -f "glite-rgma-base-4.1.19-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-base-4.1.19-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-base-4.1.19-1.noarch.rpm"
				
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-command-line-4.1.13-1.noarch.rpm
if [ ! -f "glite-rgma-command-line-4.1.13-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-command-line-4.1.13-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-command-line-4.1.13-1.noarch.rpm"
				
							
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-stubs-servlet-java-4.1.13-1.noarch.rpm
if [ ! -f "glite-rgma-stubs-servlet-java-4.1.13-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-stubs-servlet-java-4.1.13-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-stubs-servlet-java-4.1.13-1.noarch.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/i386/RPMS/glite-rgma-system-tests-4.1.8-1.i386.rpm
if [ ! -f "glite-rgma-system-tests-4.1.8-1.i386.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-system-tests-4.1.8-1.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-system-tests-4.1.8-1.i386.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-rgma-log4j-4.1.5-1.noarch.rpm
if [ ! -f "glite-rgma-log4j-4.1.5-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-log4j-4.1.5-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-log4j-4.1.5-1.noarch.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/i386/RPMS/glite-rgma-log4cpp-4.1.4-0.i386.rpm
if [ ! -f "glite-rgma-log4cpp-4.1.4-0.i386.rpm" ]
then
	echo 
	echo ERROR: glite-rgma-log4cpp-4.1.4-0.i386.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-rgma-log4cpp-4.1.4-0.i386.rpm"
			
					
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-security-trustmanager-1.7.3-1.noarch.rpm
if [ ! -f "glite-security-trustmanager-1.7.3-1.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-security-trustmanager-1.7.3-1.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-security-trustmanager-1.7.3-1.noarch.rpm"
			
											
				
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/bin/rhel30/noarch/RPMS/glite-security-util-java-1.1.3-2.noarch.rpm
if [ ! -f "glite-security-util-java-1.1.3-2.noarch.rpm" ]
then
	echo 
	echo ERROR: glite-security-util-java-1.1.3-2.noarch.rpm could not be downloaded!
	exit 1
fi
RPMLIST="$RPMLIST glite-security-util-java-1.1.3-2.noarch.rpm"
			
			

	# Download glite-security-utils scripts from repository
		
	cd ..
			
wget -N -nv http://glite.web.cern.ch/glite/packages/R1.4/R20050916/installers/glite-security-utils_installer.sh
if [ ! -f "glite-security-utils_installer.sh" ]
then
	echo 
	echo ERROR: glite-security-utils_installer.sh could not be downloaded!
	exit 1
fi
chmod u+x glite-security-utils_installer.sh
SCRIPTLIST="$SCRIPTLIST ./glite-security-utils_installer.sh"
			
	cd glite-rgma-client
		

	# Download glite-security-utils dependencies RPMS from repository
		

	# Download glite-security-utils RPMS from repository
		
	# Install all RPMS
	echo
	echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	echo x Please wait, installing the gLite R-GMA client ... x
	echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	echo
	cd ..
	parseScriptList
	cd glite-rgma-client
	parseRPMList
	if [ ! -z "$RPMLIST" ]; then
		if [ `id -u` == 0 ]; then		
			rpm -Uvh $RPMLIST
			rpm_return=$?
		else
			echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
			echo x User installation
			echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
			if [ !  -d $basedir/.rpm ]; then
				mkdir -p $basedir/.rpm
				#cp -R /var/lib/rpm/* $basedir/.rpm
				rpm --initdb --dbpath $basedir/.rpm
				
				touch $basedir/.rpm/packages.sort
			fi
			rpm -qa | sort > $basedir/.rpm/packages.sort~
			diff  $basedir/.rpm/packages.sort $basedir/.rpm/packages.sort~ > /dev/null
			if [ $? != 0 ]; then
					#######################################
					#	Create system.rpm file
					#######################################
					echo Installer is inspecting your installation. It might take a while
					# creation of the system.rpm file
                    if [ -f $HOME/.rpmmacros ]; then
                    	mv $HOME/.rpmmacros $HOME/.rpmmacros~
                    fi
                    echo %_topdir        $basedir/.rpm/rpmbuild >> $HOME/.rpmmacros
                    mkdir -p $basedir/.rpm/rpmbuild/SPECS
                    mkdir -p $basedir/.rpm/rpmbuild/SOURCES
                    mkdir -p $basedir/.rpm/rpmbuild/BUILD
                    mkdir -p $basedir/.rpm/rpmbuild/RPMS
                    touch $basedir/.rpm/rpmbuild/SOURCES/system.tar.gz
					
					echo Verification of installed packages
					dot=0
					for package in `rpm -qa`
					do
						let dot++
						echo -n "."
						if [ $dot -ge 80 ]; then dot=0; echo ""; fi
	        			rpm -q --provides $package >> /tmp/provides
					done
					datestamp=`date +%Y%m%d%H%M`
					grep -v ">" /tmp/provides | sed -e 's/.*\/\(.*\)/\1/g' | sort | uniq > /tmp/provides.uniq
					split --lines 20 /tmp/provides.uniq /tmp/system
					echo
					echo Building of provides information for local rpm database
					dot=0
					for provides in `ls -1 /tmp/system*`
					do
						let dot++
						echo -n "#"
						if [ $dot -ge 80 ]; then dot=0; echo ""; fi
						name=`echo $provides | sed -e 's/\/tmp\///g'`
						#echo $name
						###############
						#       Create .spec file
						##############
						echo "Summary:Provides root installed symbols" > system.spec
						echo "Name:$name" >> system.spec
						echo "Version:0.1.0" >> system.spec
						echo "Release:$datestamp" >> system.spec
						echo "Copyright:Open Source EGEE License" >> system.spec
						echo "Vendor:EU EGEE project" >> system.spec
						echo "Group:System/Application" >> system.spec
						echo "BuildArch:noarch" >> system.spec
						echo "BuildRoot:%{_builddir}/%{name}-%{version}" >> system.spec
						echo "Source:system.tar.gz" >> system.spec
						echo "Provides:/bin/sh" >> system.spec
						echo "Provides:/usr/bin/env" >> system.spec
						echo "Provides:/usr/bin/perl" >> system.spec
						echo "Provides:/bin/env" >> system.spec
						echo "Provides:/sbin/ldconfig" >> system.spec
						echo "Provides:/sbin/install-info" >> system.spec
						echo "Provides:/bin/bash" >> system.spec
						echo "Provides:/bin/csh" >> system.spec
	
				#		grep -v ">" /tmp/provides | sed -e 's/.*\/\(.*\)/\1/g' | sort | uniq > /tmp/provides.uniq
						sed -e 's/\(.*\)/Provides:\1/g' $provides >> system.spec
						
						echo "%define debug_package %{nil}" >> system.spec
	
						echo "%description" >> system.spec
						echo "gLite R-GMA Client installation" >> system.spec
						#echo "%prep" >> system.spec
						#echo "%setup -c" >> system.spec
						#echo "%build" >> system.spec
						#echo "%install" >> system.spec
						echo "%clean" >> system.spec
						echo "%pre" >> system.spec
						echo "%post" >> system.spec
						echo "%preun" >> system.spec
						echo "%postun" >> system.spec
						echo "%files" >> system.spec
						echo "%changelog" >> system.spec
						echo >> system.spec
	
						rpmbuild -bb system.spec > /dev/null 2>/dev/null
					done
					rm /tmp/system*
					if [ -f $HOME/.rpmmacros~ ]; then
						mv $HOME/.rpmmacros~ $HOME/.rpmmacros
					fi
					
					######################################
					#	Update system.rpm file in the database
					######################################
					rpm -U --dbpath $basedir/.rpm $basedir/.rpm/rpmbuild/RPMS/noarch/system*-0.1.0-$datestamp.noarch.rpm
					echo
					echo system examined successfully
					######################################
					#	Update package.list file
					#######################################
					mv $basedir/.rpm/packages.sort~ $basedir/.rpm/packages.sort
					#########################################
					#	Cleanup of not needed files
					#########################################
					rm -rf $basedir/.rpm/rpmbuild
					rm -f /tmp/provides /tmp/provides.uniq
			fi 
			
			parseUserRPMList
			if [ ! -z "$RPMLIST" ]; then
				rpm -Uvh --relocate /opt/glite=$basedir\
					 --relocate /opt/globus=$basedir\
					 --relocate /opt/gpt=$basedir\
			 		 --relocate /opt/edg=$basedir\
			 		 --relocate /usr=$basedir/usr\
			 		 --relocate /etc=$basedir/etc\
			 		 --nopost --dbpath $basedir/.rpm $RPMLIST
				rpm_return=$?
			else
				echo All required RPMS are already installed
				rpm_return=0
			fi
			
			if [ $rpm_return != 0 ]; then
				break
			fi
			###############################################
			#	Fixed hardcoded absolute path in .la files
			###############################################
			for la in `find $basedir -name "*.la"`
			do
				echo -n "."
    			REPL=`echo ${la} | sed -e 's/\(.*\)\/.*$/\1/g'`
    			sed -i~ -e "s|^libdir=.*|libdir=${REPL}|g"  ${la} 
			done
			echo
		fi
	else
		echo All required RPMS are already installed
		rpm_return=0
		fi
		if [ "$rpm_return" == "0" ]; then
			pbasedir=${basedir:-"/opt/glite"}
			echo
			echo Done!
			echo
			echo Before using the R-GMA client, please do the following steps
			echo in order to configure the R-GMA client:
			echo
			echo "(1) Install Java"
			echo
			echo "    If you want to use the java API you need to install Java."
			echo "    Due to license restrictions we cannot redistribute Java."
			echo "    If you have not installed Java, please install Java 1.4.2."
			echo "    You can download it from http://java.sun.com/."
			echo	
			echo "(2) Create configuration"
			echo
			echo "    Create or update the R-GMA common configuration file"
			echo "         $pbasedir/etc/config/glite-rgma-common.cfg.xml ,"
			echo "    the RGMA client configuration file"
			echo "         $pbasedir/etc/config/glite-rgma-client.cfg.xml ,"
			echo "    the security utilities configuration file"
			echo "         $pbasedir/etc/config/glite-security-utils.cfg.xml"
			echo "    and the general glite configuration file"
			echo "         $pbasedir/etc/config/glite-global.cfg.xml"
			echo "    Templates are provided in $pbasedir/etc/config/templates/."
			echo "    Copy these templates if they do not exist yet to $pbasedir/etc/config/"
			echo "    and set the configuration values accordingly."
			echo "    Make sure that all parameters 'changeme' are properly set in the files."
			echo
			echo "(3) Configure the R-GMA client"
			echo
			echo "    Run the configuration script $pbasedir/etc/config/scripts/glite-rgma-client-config.py --configure"
			echo "    The script will completely configure the R-GMA client."
			echo
		else
			echo
			echo An error occurred while installing the R-GMA client RPMS.
			echo Most likely one or more of the RPMS to be installed require
			echo additional dependencies or are older than already installed packages.
			echo Please refer to the rpm error message above for more details.
			echo
		fi
		echo
		echo Done!
		echo
		echo For more information refer to the gLite Installation and User Guides or to the gLite web site \(http:\/\/www.glite.org\)
		echo Please report problems and comments to the gLite Team at glite-bugs@cern.ch
	
		cd ..
		

}

###############################################################################
function uninstall()
{
	INSTALL=false
	
	version

	# Global dependencies	
	
 	

	# glite-rgma-client scripts from repository
		

	# glite-rgma-client dependencies RPMS from repository
						
				
				
RPMLIST="$RPMLIST glite-essentials-java-1.2.0-2_EGEE"
					 
								
				
RPMLIST="$RPMLIST glite-essentials-cpp-1.1.1-1_EGEE"
									

				
RPMLIST="$RPMLIST swig-runtime-1.3.21-1_EGEE"
																			

			

	# glite-rgma-client RPMS from repository
		
			
				
				
RPMLIST="$RPMLIST glite-config-1.4.11-1"
                                        
				
				
                
RPMLIST="$RPMLIST glite-rgma-common-config-5.0.1-1"
                                        
                	
				
                
RPMLIST="$RPMLIST glite-rgma-client-config-5.1.3-1"
                                        
          	
                
				
RPMLIST="$RPMLIST glite-rgma-api-c-4.1.13-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-api-cpp-4.1.15-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-api-java-4.1.5-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-api-python-4.1.15-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-base-4.1.19-1"
                                        	
					
				
RPMLIST="$RPMLIST glite-rgma-command-line-4.1.13-1"
                                        	
							
				
RPMLIST="$RPMLIST glite-rgma-stubs-servlet-java-4.1.13-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-system-tests-4.1.8-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-log4j-4.1.5-1"
                                        
					
				
RPMLIST="$RPMLIST glite-rgma-log4cpp-4.1.4-0"
                                        
					
				
RPMLIST="$RPMLIST glite-security-trustmanager-1.7.3-1"
                                        
											
				
RPMLIST="$RPMLIST glite-security-util-java-1.1.3-2"
                                        
			

	# glite-security-utils scripts from repository
		
SCRIPTLIST="$SCRIPTLIST ./glite-security-utils_installer.sh"
			

	# glite-security-utils dependencies RPMS from repository
		

	# glite-security-utils RPMS from repository
		
		
	# Uninstall all RPMS
	echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
	echo "x  Please wait, uninstalling the gLite R-GMA client ...   x"
	echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
	echo
	$SCRIPTLISTUn
	rpm -ev $RPMLIST
	if [ "$?" == "0" ]; then
		echo
		echo Done!
	else
		echo
		echo An error occurred while removing the R-GMA client RPMS.
		echo Most likely one or more of the RPMS to be removed have
		echo dependent packages.
		echo Please refer to the rpm error message above for more details.
	fi
}

###############################################################################
function usage()
{
	echo 
	echo Copyright \(c\) Members of the EGEE Collaboration. 2004 
	echo See http://eu-egee.org/partners/ for details on the copyright holders
	echo For license conditions see the license file or http://eu-egee.org/license.html
	echo 
	echo glite-rgma-client_installer v. 5.1.3
	echo 
	echo The glite-rgma-client_installer installs the gLite R-GMA client
	echo 
	echo Usage: glite-rgma-client_installer \[-u\|-v\|--help\]
	echo -u          uninstall
	echo -v          print version
	echo --help      print script usage info
	echo --basedir	 set the base directory for the user installation
	echo			 it must be an absolute path
	echo 
	echo Return codes:
	echo 0 - Ok
	echo 1 - if a file could not be downloaded
	echo 
}

###############################################################################
function version
{
	echo 
	echo Copyright \(c\) Members of the EGEE Collaboration. 2004 
	echo See http://eu-egee.org/partners/ for details on the copyright holders
	echo For license conditions see the license file or http://eu-egee.org/license.html
	echo 
	echo glite-rgma-client_installer v. 5.1.3
	echo 
}


RPMLIST=
SCRIPTLIST=
SCRIPTLISTUn=

###############################################################################
# Main

#while getopts uvh opt
#do
#	case $opt in
#		'u') uninstall
#		     exit 0	
#		     ;;
#		'v') version
#		     exit 0	
#		     ;;
#		'h') usage
#		     exit 0	
#		     ;;
#	esac
#done
TEMP=`getopt -o uvh --long uninstall,version,help,basedir: \
     -n 'glite-rgma-client_installer.sh' -- "$@"`

if [ $? != 0 ] ; then echo "Terminating..." ; exit 1 ; fi

# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"

if [ `id -u` != 0 ]; then
	export basedir=`pwd`/glite
fi

while true ; do
        case "$1" in
                -u|--uninstall) uninstall
                				exit 0
                				;;
                -v|--version)	version
                				exit 0
                				;;
                -h|--help)		usage
                				exit 0
                				;;
                --basedir) 		export basedir=$2
                				if [ "${basedir:0:1}" != "/" ]; then
                					echo ERROR: basedir must be an absolute path
                					exit 1
                				fi
                				echo Setting base directory to $basedir
                				shift 2; break ;;
#                *) echo "Internal error!" ; exit 1 ;;
				*) break ;;
        esac
done

install

exit 0
	

