gunnar: server cvs-kolab.sh,NONE,1.1

cvs at kolab.org cvs at kolab.org
Fri Aug 24 15:49:07 CEST 2007


Author: gunnar

Update of /kolabrepository/server
In directory doto:/tmp/cvs-serv7898

Added Files:
	cvs-kolab.sh 
Log Message:
A draft shell script for installing a kolav-cvs environment.

--- NEW FILE: cvs-kolab.sh ---
#!/bin/bash

KOLAB_PACKAGES=/kolab-packages
KOLAB_DEV_USER=koldev

ACTION_INSTALL=0
ACTION_UPDATE=0
ACTION_CLEAN=0

FLAG_HORDE=0
FLAG_FBVIEW=0

INSTALL_OPTS=""

usage() {
    echo "This tool allows you to install a CVS based Kolab server."
    echo "The script is still highly experimental and might not work as expected."
    echo
    echo "Usage:"
    echo "  -i         create a Kolab CVS environment"
    echo "  -u         Update the CVS and installed system"
    echo "  -c         uninstall the Kolab CVS environment"
    echo "  -h         (display this help)"
    echo
    echo "Options:"
    echo "  -b         Package directory (default: ${KOLAB_PACKAGES})"
    echo "  -d         Kolab development user (default: ${KOLAB_DEV_USER})"
    exit 1
}

install() {
    if [ ! -e "/${KOLAB_DEV_USER}/CVS" ]; then
	mkdir -p "${KOLAB_PACKAGES}/source-original"
	cd "${KOLAB_PACKAGES}/source-original"
	wget -r -l1 -nd --no-parent http://ftp.belnet.be/packages/kolab/server/beta/kolab-server-2.2-beta-1/sources/
	gpg --recv-key 5816791A
	gpg --verify MD5SUMS
	md5sum -c MD5SUMS
	cvs -d :pserver:anonymous at intevation.de:/home/kroupware/jail/kolabrepository  co server/install-kolab.sh
	rm install-kolab.sh 
	mv server/install-kolab.sh .
	./install-kolab.sh -t "${KOLAB_DEV_USER}" -I 20414
	mkdir "/${KOLAB_DEV_USER}/CVS"
    fi

    cd "/${KOLAB_DEV_USER}/CVS"
    if [ ! -e "server" ]; then
	cvs -q -d :pserver:anonymous at intevation.de:/home/kroupware/jail/kolabrepository  co server
	cd server
    else
	cd server
	cvs -q update -P -d
    fi
    chown -R "${KOLAB_DEV_USER}:" "/${KOLAB_DEV_USER}/CVS"
    su "${KOLAB_DEV_USER}" -c make
    cd "${KOLAB_PACKAGES}/source-original"

    if [ ! -e "${KOLAB_PACKAGES}/binary-${KOLAB_DEV_USER}" ]; then
	./install-kolab.sh -D -t "${KOLAB_DEV_USER}"
	mv "/${KOLAB_DEV_USER}/RPM/BDIST/" "${KOLAB_PACKAGES}/binary-${KOLAB_DEV_USER}"
    fi

    ./install-kolab.sh -S -t "${KOLAB_DEV_USER}"
    if [ ! -e "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}" ]; then
	mv "/${KOLAB_DEV_USER}/RPM/SDIST/" "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}"
    else
	rsync -avz "/${KOLAB_DEV_USER}/RPM/SDIST/" "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}/"
    fi

    cd "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}"
    ./install-kolab.sh ${INSTALL_OPTS}
    ./install-kolab.sh -D
    if [ ! -e "${KOLAB_PACKAGES}/binary-kolab" ]; then
	mv /kolab/RPM/BDIST/ "${KOLAB_PACKAGES}/binary-kolab"
    else
	rsync -avz /kolab/RPM/BDIST/ "${KOLAB_PACKAGES}/binary-kolab/"
    fi

    echo "Everything finished!"
    echo "You should now run:"
    echo
    echo " /kolab/etc/kolab/kolab_bootstrap -b"
    echo " /kolab/bin/openpkg rc all start"
    exit 0
}

update() {
    cd "/${KOLAB_DEV_USER}/CVS/server"
    cvs -q update -P -d
    chown -R "${KOLAB_DEV_USER}:" "/${KOLAB_DEV_USER}/CVS"
    su "${KOLAB_DEV_USER}" -c make
    cd "${KOLAB_PACKAGES}/source-original"
    ./install-kolab.sh -S -t "${KOLAB_DEV_USER}"
    rsync -avz "/${KOLAB_DEV_USER}/RPM/SDIST/" "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}/"
    ./install-kolab.sh -D -t "${KOLAB_DEV_USER}"
    rsync -avz "/${KOLAB_DEV_USER}/RPM/BDIST/" "${KOLAB_PACKAGES}/binary-${KOLAB_DEV_USER}/"
    cd "${KOLAB_PACKAGES}/source-${KOLAB_DEV_USER}"
    ./install-kolab.sh ${INSTALL_OPTS}
    ./install-kolab.sh -D
    rsync -avz /kolab/RPM/BDIST/ "${KOLAB_PACKAGES}/binary-kolab/"
    /kolab/sbin/kolabconf
    /kolab/bin/openpkg rc all restart
    exit 0
}

clean() {
    echo "This will completely wipe ${KOLAB_PACKAGES}, /${KOLAB_DEV_USER}, and /kolab."
    echo "Are you certain you want to do that (YES/NO)?"
    read ANSWER
    if [ "$ANSWER" == "YES" ]; then
	rm -rf "${KOLAB_PACKAGES}"
	rm -rf "/${KOLAB_DEV_USER}"
	rm -rf "/kolab"
        exit 0
    else
        echo "Not cleaning."
	exit 0
    fi
}



while getopts hicuHFb:d: ARGS; do
    case $ARGS in
	h) # Display help
	    usage
            ;;
	i) # Install
	    ACTION_INSTALL=1
            ;;
	c) # Clean
	    ACTION_CLEAN=1
            ;;
	u) # Update
	    ACTION_UPDATE=1
            ;;
	H) # Include Horde in the installation
	    FLAG_HORDE=1
            ;;
	F) # Include Fbview in the installation
	    FLAG_FBVIEW=1
            ;;
	b) # User wants a different package directory
            KOLAB_PACKAGES="${OPTARG}"
	    ;;
	d) # User wants a different development user
            KOLAB_DEV_USER="${OPTARG}"
	    ;;
    esac
done

if [ "${FLAG_HORDE}" == "1" ]; then
    INSTALL_OPTS="${INSTALL_OPTS} -H"
fi

if [ "${FLAG_FBVIEW}" == "1" ]; then
    INSTALL_OPTS="${INSTALL_OPTS} -F"
fi

if [ "${ACTION_INSTALL}" == "1" ]; then
    install
fi

if [ "${ACTION_CLEAN}" == "1" ]; then
    clean
fi

update




More information about the commits mailing list