gunnar: server install-kolab.sh,1.1,1.2
cvs at kolab.org
cvs at kolab.org
Fri Jul 27 08:23:24 CEST 2007
- Previous message: gunnar: server/perl-kolab/Kolab-Mailer Changes, 1.1, NONE MANIFEST, 1.1, NONE META.yml, 1.1, NONE Mailer.pm.in, 1.1, NONE README, 1.1, NONE
- Next message: gunnar: server/kolab-horde-framework Makefile,1.6,1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: gunnar
Update of /kolabrepository/server
In directory doto:/tmp/cvs-serv16505
Modified Files:
install-kolab.sh
Log Message:
Added some more options to the Kolab installer script.
Index: install-kolab.sh
===================================================================
RCS file: /kolabrepository/server/install-kolab.sh,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- install-kolab.sh 17 Jul 2007 16:30:53 -0000 1.1
+++ install-kolab.sh 27 Jul 2007 06:23:22 -0000 1.2
@@ -1,50 +1,255 @@
#!/bin/sh
KOLAB_VERSION="2.2-beta1"
-PREFIX="/kolab"
+KID="19414"
+
TAG="kolab"
+USER=""
+PREFIX=""
+
+INSTALL=""
+
+#Flags
+FLAG_BASE=""
+FLAG_ENV=""
+FLAG_CLEAN=""
usage() {
echo "Usage:"
- echo " $0 directory/openpkg-*-*.src.sh"
- echo " $0 directory/openpkg-*-*.ix86-debian4.0.sh"
- echo " $0 directory"
+ echo " $0 -i directory/openpkg-*-*.src.sh"
+ echo " $0 -i directory/openpkg-*-*.ix86-debian4.0.sh"
+ echo " $0 -i directory"
+ echo
+ echo " -h (display this help)"
+ echo
+ echo "Advanced options:"
+ echo
+ echo " -t TAG (alternate binary tag; default is kolab)"
+ echo " -I UID (alternate base uid; default is 19414)"
+ echo
+ echo " -c (clean the environment specified with \$PREFIX; DANGEROUS!)"
+ echo
+ echo " -p PREFIX (alternate installation prefix; default is /\$TAG)"
+ echo " -u USER (alternate user name; default is \$TAG)"
+ echo
+ echo " -V VERSION (alternate version; default is 2.2-beta1)"
+ echo
+ echo " -D (generate a binary distribution based on ./ and /\$PREFIX)"
+ echo " -S (generate a source distribution based on ./ and /\$PREFIX)"
+ echo
+ echo " -B (abort after generating the basic openpkg binary)"
+ echo " -E (abort after generating the openpkg environment)"
exit 1
}
-[ $# -ne 1 ] && usage
+while getopts hcBDSEi:V:p:I:u:t: ARGS; do
+ case $ARGS in
+ h) # Display help
+ usage
+ ;;
+ i) # What should be installed?
+ INSTALL="$OPTARG"
+ ;;
+ V) # User specified a specific Kolab version
+ KOLAB_VERSION="$OPTARG"
+ ;;
+ p) # User specified an alternative prefix
+ PREFIX="$OPTARG"
+ ;;
+ I) # User specified an alternative base Kolab UID
+ KID="$OPTARG"
+ ;;
+ u) # User specified an alternative user name
+ USER="$OPTARG"
+ ;;
+ t) # User specified an alternative tag
+ TAG="$OPTARG"
+ ;;
+ B) # User only wants the basic openpkg package in binary form
+ FLAG_BASE="Yes"
+ ;;
+ E) # User only wants the basic openpkg environment
+ FLAG_ENV="Yes"
+ ;;
+ c) # User wants to erase the openpkg environment
+ FLAG_CLEAN="Yes"
+ ;;
+ D) # User wants to collect a set of binary packages into a distribution
+ FLAG_BDIST="Yes"
+ ;;
+ S) # User wants to collect a set of source packages into a distribution
+ FLAG_SDIST="Yes"
+ ;;
+ *) # Unknown Option
+
+ ;;
+ esac
+done
-if echo "$1" | grep '\.src\.sh$' >/dev/null; then
+if [ -z "$USER" ]; then
+ USER=$TAG
+fi
+
+if [ -z "$PREFIX" ]; then
+ PREFIX="/$TAG"
+fi
+
+R_KID=$(($KID + 1))
+N_KID=$(($R_KID + 1))
+
+if [ -n "$FLAG_CLEAN" -o -n "$FLAG_BDIST" -o -n "$FLAG_SDIST" ]; then
+ if [ -x "$PREFIX/bin/openpkg" ]; then
+ if [ -n "$FLAG_CLEAN" ]; then
+ echo
+ echo "This will completely wipe your installation in $PREFIX!"
+ echo "Are you certain you want to do that (YES/NO)?"
+ read ANSWER
+ if [ "$ANSWER" == "YES" ]; then
+ $PREFIX/bin/openpkg rpm -e `$PREFIX/bin/openpkg rpm -qa` || exit $?
+ echo "Erased OpenPKG environment $PREFIX"
+ exit 0
+ else
+ echo "Not cleaning."
+ exit 0
+ fi
+ elif [ -n "$FLAG_SDIST" ]; then
+ SDIST_DIR=$PREFIX/RPM/SDIST
+ INSTALLER=`find . -name openpkg-*.src.sh -print`
+ if [ -z "$INSTALLER" ]; then
+ echo "No source based installer found. Unable to create a source distribution!"
+ exit 1
+ fi
+ mkdir -p $SDIST_DIR
+ cp $0 $SDIST_DIR
+ if [ -n "$INSTALLER" ]; then
+ cp $INSTALLER $SDIST_DIR
+ fi
+ if [ -n "*.src.rpm" ]; then
+ cp *.src.rpm $SDIST_DIR
+ fi
+ if [ -n "$PREFIX/RPM/PKG/*.src.rpm" ]; then
+ cp $PREFIX/RPM/PKG/*.src.rpm $SDIST_DIR
+ fi
+ chown -R $USER:$USER $SDIST_DIR
+ cd $SDIST_DIR && $PREFIX/bin/openpkg index -r . -o 00INDEX.rdf -i .
+ exit 0
+ elif [ -n "$FLAG_BDIST" ]; then
+ PLATTAG=`"$PREFIX/lib/openpkg/shtool" platform --type=binary`-$TAG
+ BDIST_DIR=$PREFIX/RPM/BDIST
+ BINARY=`find . -name openpkg-*$PLATTAG.sh -print`
+ if [ -z "$BINARY" ]; then
+ echo "No binary installer package found. Unable to create a binary distribution!"
+ exit 1
+ fi
+ mkdir -p $BDIST_DIR
+ cp $0 $BDIST_DIR
+ if [ -n "$BINARY" ]; then
+ cp $BINARY $BDIST_DIR
+ fi
+ if [ -n "*$PLATTAG.rpm" ]; then
+ cp *$PLATTAG.rpm $BDIST_DIR
+ fi
+ if [ -n "$PREFIX/RPM/PKG/*$PLATTAG.rpm" ]; then
+ cp $PREFIX/RPM/PKG/*$PLATTAG.rpm $BDIST_DIR
+ fi
+ chown -R $USER:$USER $BDIST_DIR
+ cd $BDIST_DIR && $PREFIX/bin/openpkg index -r . -o 00INDEX.rdf -i -p $PLATTAG .
+ exit 0
+ else
+ echo "\"$PREFIX\" seems to be no OpenPKG environment."
+ exit 1
+ fi
+ fi
+fi
+
+echo
+echo "Kolab installation tag (TAG): $TAG"
+echo "Kolab installation prefix (PREFIX): $PREFIX"
+echo "Kolab version (KOLAB_VERSION): $KOLAB_VERSION"
+echo "Kolab user name (USER): $USER"
+echo "Kolab user base UID (KID): $KID"
+echo "Kolab restricted UID (KID): $R_KID"
+echo "Kolab non-priviledged UID (KID): $N_KID"
+echo
+
+if [ -z "$INSTALL" ]; then
+ # Hm, user wants us to figure out what we should do
+ echo "Received no instructions. Trying to determine required action..."
+ if [ -d "$PREFIX/etc/openpkg" ]; then
+ # Assume an upgrade based on the current directory
+ INSTALL=`pwd`
+ echo "Found an OpenPKG envrionment. Assuming upgrade..."
+ else
+ INSTALLER=`find . -name openpkg-*.src.sh -print`
+ BINARY=`find . -name openpkg-*.sh \! -name openpkg-*.src.sh -print`
+ if [ -z "$INSTALLER" ]; then
+ # No install script? Determine if there is a binary script
+ if [ -z "$BINARY" ]; then
+ echo "Sorry there is no OpenPKG installation script in the current directory!"
+ usage
+ exit 0
+ else
+ # Looks like we only have a binary. Hope that it matches the plattform and install it
+ INSTALL="$BINARY"
+ echo "Found a binary OpenPKG package. This will be installed now."
+ fi
+ else
+ # We have a source package. Check for a matching binary
+ PLATTAG=`sh "$INSTALLER" -t | tar xf - -O shtool | sh -s platform --type=binary`-$TAG
+ BIN=`basename "$INSTALLER" .src.sh`.$PLATTAG.sh
+ if [ "$BINARY" == "$BIN" ]; then
+ # There is a binary with the correct tag. Install it
+ INSTALL=$BIN
+ echo "Found a binary OpenPKG package with a correct tag. This will be installed now."
+ else
+ # Install from source
+ INSTALL=$INSTALLER
+ echo "Found a source based OpenPKG installer. Trying to install Kolab from source."
+ fi
+ fi
+ fi
+fi
+
+if echo "$INSTALL" | grep '\.src\.sh$' >/dev/null; then
# install from source
- SRC="$1"
- PLATTAG=`sh "$1" -t | tar xf - -O shtool | sh -s platform --type=binary`-$TAG
- BIN=`basename "$1" .src.sh`.$PLATTAG.sh
+ SRC="$INSTALL"
+ PLATTAG=`sh "$INSTALL" -t | tar xf - -O shtool | sh -s platform --type=binary`-$TAG
+ BIN=`basename "$INSTALL" .src.sh`.$PLATTAG.sh
DIR=`dirname "$SRC"`
-elif echo "$1" | grep 'openpkg-.*\.sh$' >/dev/null; then
+elif echo "$INSTALL" | grep 'openpkg-.*\.sh$' >/dev/null; then
# install from binary
SRC=""
- BIN="$1"
+ BIN="$INSTALL"
DIR=`dirname "$BIN"`
elif [ -d "$PREFIX/etc/openpkg" ]; then
# upgrade
SRC=""
BIN=""
- DIR="$1"
+ DIR="$INSTALL"
fi
DIR=`cd $DIR; pwd`
if [ -n "$SRC" ]; then
+ echo "Creating binary openpkg package from $SRC!"
sh "$SRC" \
--prefix="$PREFIX" \
- --tag="$TAG" --user="kolab" --group="kolab" \
- --muid="19414" --ruid="19415" --nuid="19416" \
- --mgid="19414" --rgid="19415" --ngid="19416" \
+ --tag="$TAG" --user="$USER" --group="$USER" \
+ --muid="$KID" --ruid="$R_KID" --nuid="$N_KID" \
+ --mgid="$KID" --rgid="$R_KID" --ngid="$N_KID" \
|| exit $?
+ if [ -n "$FLAG_BASE" ]; then
+ echo "Created basic openpkg binary for you platform!"
+ exit 0
+ fi
fi
if [ -n "$BIN" ]; then
sh "$BIN" || exit $?
+ if [ -n "$FLAG_ENV" ]; then
+ echo "Created basic openpkg environment!"
+ exit 0
+ fi
fi
if [ -n "$DIR" ]; then
- Previous message: gunnar: server/perl-kolab/Kolab-Mailer Changes, 1.1, NONE MANIFEST, 1.1, NONE META.yml, 1.1, NONE Mailer.pm.in, 1.1, NONE README, 1.1, NONE
- Next message: gunnar: server/kolab-horde-framework Makefile,1.6,1.7
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the commits
mailing list