package_server revision 21155e63bac193abc764d791360132392eb79c4d
21155e63bac193abc764d791360132392eb79c4dcmaeder#!/bin/bash
21155e63bac193abc764d791360132392eb79c4dcmaeder#
21155e63bac193abc764d791360132392eb79c4dcmaeder# Auto package Hets repository
21155e63bac193abc764d791360132392eb79c4dcmaeder#
21155e63bac193abc764d791360132392eb79c4dcmaeder# c.prodescu@jacobs-university.de
21155e63bac193abc764d791360132392eb79c4dcmaeder# jonathan.von_schroeder@gmail.com
21155e63bac193abc764d791360132392eb79c4dcmaeder# Christian.Maeder@dfki.de
21155e63bac193abc764d791360132392eb79c4dcmaeder#
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederMAIN_DISTRO="oneiric"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederAUTO_INSTALL=1
21155e63bac193abc764d791360132392eb79c4dcmaederOPTERR=0
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_REPO=https://github.com/spechub/Hets.git
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_LIB_REPO=https://github.com/spechub/Hets-lib.git
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederPROGRAMATICA=programatica-1.0.0.5
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederDIRNAME="`dirname "$0"`"
21155e63bac193abc764d791360132392eb79c4dcmaederOLD_PWD="`cd $DIRNAME && pwd`"
21155e63bac193abc764d791360132392eb79c4dcmaederDISTRO_DIR=$OLD_PWD/debian
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederOPT_PREPARE=1
21155e63bac193abc764d791360132392eb79c4dcmaederOPT_CREATE=1
21155e63bac193abc764d791360132392eb79c4dcmaederOPT_TEST=1
21155e63bac193abc764d791360132392eb79c4dcmaederOPT_UPLOAD=1
21155e63bac193abc764d791360132392eb79c4dcmaederOPT_CLEAN=1
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederDATA_DIR=$OLD_PWD/data
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_REPO_FOLDER=$DATA_DIR/hets-repo
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_FOLDER=$DATA_DIR/hets
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_OWL_TOOLS_FOLDER=$HETS_FOLDER/hets-owl-tools
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_LIB_REPO_FOLDER=$DATA_DIR/hets-lib-repo
21155e63bac193abc764d791360132392eb79c4dcmaederRESULTS_DIR=$OLD_PWD/results
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaedercd $DISTRO_DIR
21155e63bac193abc764d791360132392eb79c4dcmaederfor f in *
21155e63bac193abc764d791360132392eb79c4dcmaederdo
21155e63bac193abc764d791360132392eb79c4dcmaeder DISTROS="$f ${DISTROS}"
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaedercd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederCURR_DISTRO=`cat /etc/*-release | grep DISTRIB_CODENAME | cut -d'=' -f2`
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederprint_help()
21155e63bac193abc764d791360132392eb79c4dcmaeder{
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Usage: $0 [<option> ...] <command>"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Create & upload hets packages from the svn trunk."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "This scripts needs a few additional files."
21155e63bac193abc764d791360132392eb79c4dcmaeder# echo "If these are not present it will try to get them from svn."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Comands:"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " prepare - Prepare the base.tgz files needed by pbuilder
21155e63bac193abc764d791360132392eb79c4dcmaeder (needed for testing, you only need to call it once -
21155e63bac193abc764d791360132392eb79c4dcmaeder updating takes place automatically)"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " create - Create source packages from svn trunk"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " test - Test building source packages"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " upload - Upload packages to launchpad hets ppa"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " package - Do all the above i.e. create source packages,
21155e63bac193abc764d791360132392eb79c4dcmaeder test them and then upload them"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " clean - Remove any checkouts, build files etc."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Please note:
21155e63bac193abc764d791360132392eb79c4dcmaeder * prepare and test need you to be either root
21155e63bac193abc764d791360132392eb79c4dcmaeder or to be able to call sudo"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Options:"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " -h Print this help"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " -i Try to install dependencies of this script
21155e63bac193abc764d791360132392eb79c4dcmaeder automatically using apt-get (note requires
21155e63bac193abc764d791360132392eb79c4dcmaeder you to be root are to be able to call sudo)
21155e63bac193abc764d791360132392eb79c4dcmaeder -a Execute commands for all available distros
21155e63bac193abc764d791360132392eb79c4dcmaeder -s DISTRO
21155e63bac193abc764d791360132392eb79c4dcmaeder Select distro for commands
21155e63bac193abc764d791360132392eb79c4dcmaeder -c Select current distro for commands: $CURR_DISTRO
21155e63bac193abc764d791360132392eb79c4dcmaeder -r REVISION
21155e63bac193abc764d791360132392eb79c4dcmaeder use revision REVISION instead of the latest HETS revision"
21155e63bac193abc764d791360132392eb79c4dcmaeder}
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederensure_package_installed()
21155e63bac193abc764d791360132392eb79c4dcmaeder{
21155e63bac193abc764d791360132392eb79c4dcmaeder local PKG="$1"
21155e63bac193abc764d791360132392eb79c4dcmaeder dpkg -s $PKG 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $AUTO_INSTALL -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Installing $PKG"
21155e63bac193abc764d791360132392eb79c4dcmaeder which apt-get 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Can't find apt-get ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $UID -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder local CMD="apt-get install"
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder which sudo 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Can't find sudo and you're not root ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder local CMD="sudo apt-get install"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder $CMD $PKG
21155e63bac193abc764d791360132392eb79c4dcmaeder dpkg -s $PKG 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Installing $PKG seems to have failed ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Package $PKG is now installed"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Package $PKG not installed"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Auto-install option not given ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Please install $PKG manually or try again with -i ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Package $PKG installed"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder}
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederexport_git_repo()
21155e63bac193abc764d791360132392eb79c4dcmaeder{
21155e63bac193abc764d791360132392eb79c4dcmaeder local SUFF="$1"
21155e63bac193abc764d791360132392eb79c4dcmaeder local REPO="$2"
21155e63bac193abc764d791360132392eb79c4dcmaeder local REPO_FOLDER="$3"
21155e63bac193abc764d791360132392eb79c4dcmaeder local FOLDER="$4"
21155e63bac193abc764d791360132392eb79c4dcmaeder local TARGET_REV="$5"
21155e63bac193abc764d791360132392eb79c4dcmaeder local UPTODATE=1
21155e63bac193abc764d791360132392eb79c4dcmaeder EXPORT_UPTODATE=1
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ -d $REPO_FOLDER ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder (cd $REPO_FOLDER && git status 1>/dev/null 2>/dev/null)
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Updating previous checkout of $REPO"
21155e63bac193abc764d791360132392eb79c4dcmaeder (cd $REPO_FOLDER && git pull)
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder UPTODATE=0
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "$REPO_FOLDER exists ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "But it is not a git repository ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder read -n1 -p " Delete it? (y/n) "
21155e63bac193abc764d791360132392eb79c4dcmaeder echo
21155e63bac193abc764d791360132392eb79c4dcmaeder [[ $REPLY = [yY] ]] && { rm -rf $REPO_FOLDER; } || { echo "Giving up."; exit 1; }
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $UPTODATE -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Checking out $REPO ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $REPO_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder git clone $REPO $REPO_FOLDER >/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Check out failed ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder REVISION=`git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct`
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Couldn't detect revision ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "$TARGET_REV" != "" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder GIT_TARGET_REV=$TARGET_REV
21155e63bac193abc764d791360132392eb79c4dcmaeder (cd $REPO_FOLDER && git checkout $GIT_TARGET_REV)
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$TARGET_REV" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder EXPORT_UPTODATE=0
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$REVISION" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder EXPORT_UPTODATE=0
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $EXPORT_UPTODATE -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -f $DATA_DIR/revision_$SUFF 2> /dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Exporting $REPO ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $REPO_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder git archive --format=tar master | (cd $FOLDER && tar -xf -)
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Check out failed ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct > $DATA_DIR/revision_$SUFF
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Export of $REPO is up to date"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder}
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederSELECTED_DISTROS=""
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_REV=""
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederwhile getopts ":hias:cr:" opt; do
21155e63bac193abc764d791360132392eb79c4dcmaeder case $opt in
21155e63bac193abc764d791360132392eb79c4dcmaeder \?)
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Invalid option: -$OPTARG" >&2
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder print_help
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder h)
21155e63bac193abc764d791360132392eb79c4dcmaeder print_help
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder i)
21155e63bac193abc764d791360132392eb79c4dcmaeder AUTO_INSTALL=0
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder a)
21155e63bac193abc764d791360132392eb79c4dcmaeder SELECTED_DISTROS="$DISTROS $SELECTED_DISTROS"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder s)
21155e63bac193abc764d791360132392eb79c4dcmaeder if grep -q "$OPTARG" <<<$DISTROS; then
21155e63bac193abc764d791360132392eb79c4dcmaeder SELECTED_DISTROS="$OPTARG $SELECTED_DISTROS"
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Distribution $OPTARG not available ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder c)
21155e63bac193abc764d791360132392eb79c4dcmaeder SELECTED_DISTROS="$CURR_DISTRO $SELECTED_DISTROS"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder r)
21155e63bac193abc764d791360132392eb79c4dcmaeder HETS_REV="$OPTARG"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder esac
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederSELECTED_DISTROS=`echo $SELECTED_DISTROS | tr ' ' '\n' | sort -u | tr '\n' ' '`
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif echo "$SELECTED_DISTROS" | grep -q "^[[:space:]]*$" ; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "No Distro selected " >&2
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ""
21155e63bac193abc764d791360132392eb79c4dcmaeder print_help
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederecho ":: Selected Distros are: $SELECTED_DISTROS"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaedershift $(($OPTIND - 1))
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederset_option()
21155e63bac193abc764d791360132392eb79c4dcmaeder{
21155e63bac193abc764d791360132392eb79c4dcmaeder OPTION=OPT_$1
21155e63bac193abc764d791360132392eb79c4dcmaeder export $OPTION=0
21155e63bac193abc764d791360132392eb79c4dcmaeder}
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederfor arg in "$@"
21155e63bac193abc764d791360132392eb79c4dcmaederdo
21155e63bac193abc764d791360132392eb79c4dcmaeder case `echo $arg | tr [:upper:] [:lower:]` in
21155e63bac193abc764d791360132392eb79c4dcmaeder prepare)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "PREPARE"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder create)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "CREATE"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder test)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "TEST"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder upload)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "UPLOAD"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder package)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "CREATE"
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "TEST"
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "UPLOAD"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder clean)
21155e63bac193abc764d791360132392eb79c4dcmaeder set_option "CLEAN"
21155e63bac193abc764d791360132392eb79c4dcmaeder ;;
21155e63bac193abc764d791360132392eb79c4dcmaeder *)
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Unknown command $arg ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo
21155e63bac193abc764d791360132392eb79c4dcmaeder print_help
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder esac
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaedermkdir -p $OLD_PWD/logs/
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ ! -d $RESULTS_DIR ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $RESULTS_DIR
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ $OPT_PREPARE -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Preparing base.tgz"
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $OLD_PWD/pbuilder/
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $UID -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder CMD="pbuilder"
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder which sudo 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Can't find sudo and you're not root ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder CMD="sudo pbuilder"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder for DIST in $SELECTED_DISTROS
21155e63bac193abc764d791360132392eb79c4dcmaederdo
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Creating base.tgz for distro $DIST"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "See $OLD_PWD/logs/pbuilder_${DIST}_base.tgz.log"
21155e63bac193abc764d791360132392eb79c4dcmaeder $CMD create --basetgz "$OLD_PWD/pbuilder/${DIST}_base.tgz" --distribution $DIST --othermirror "deb http://archive.ubuntu.com/ubuntu $DIST main restricted universe multiverse|deb http://ppa.launchpad.net/hets/hets/ubuntu $DIST main" > "$OLD_PWD/logs/pbuilder_${DIST}_base.tgz.log`date +%s`"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Done"
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ $OPT_CLEAN -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Cleaning"
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $OLD_PWD/data/
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ $OPT_CREATE -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Creating source packages"
21155e63bac193abc764d791360132392eb79c4dcmaeder ensure_package_installed git
21155e63bac193abc764d791360132392eb79c4dcmaeder ensure_package_installed "git-svn"
21155e63bac193abc764d791360132392eb79c4dcmaeder ensure_package_installed ant
21155e63bac193abc764d791360132392eb79c4dcmaeder ensure_package_installed "openjdk-7-jdk"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder export_git_repo "hets" "$HETS_REPO" "$HETS_REPO_FOLDER" "$HETS_FOLDER" "$HETS_REV"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $EXPORT_UPTODATE -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -f $DATA_DIR/*.done 2> /dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -f $DATA_DIR/revision_lib 2> /dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder HETS_VERSION=`cat $HETS_FOLDER/version_nr`
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Couldn't detect version ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Hets version is: $HETS_VERSION"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder HETS_REVISION=$REVISION
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Revision is: $HETS_REVISION"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder HETS_FULL_VERSION="$HETS_VERSION"r"$HETS_REVISION"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Full version is: $HETS_FULL_VERSION"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder export_git_repo "lib" "$HETS_LIB_REPO" "$HETS_LIB_REPO_FOLDER" "$HETS_FOLDER/hets-lib"
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Compiling Hets OWL Tools"
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! -f "$DATA_DIR/owl.done" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $HETS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder make initialize_java 1>/dev/null || { echo Building Hets OWL Tools failed && echo Giving up. && exit 1; }
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $HETS_OWL_TOOLS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $HETS_FOLDER/OWL2
21155e63bac193abc764d791360132392eb79c4dcmaeder cp -r OWL*.jar $HETS_OWL_TOOLS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $HETS_OWL_TOOLS_FOLDER/lib
21155e63bac193abc764d791360132392eb79c4dcmaeder cp $HETS_FOLDER/OWL2/lib/*.jar $HETS_OWL_TOOLS_FOLDER/lib
21155e63bac193abc764d791360132392eb79c4dcmaeder cp $HETS_FOLDER/CASL/Termination/AProVE.jar $HETS_FOLDER/hets-owl-tools
21155e63bac193abc764d791360132392eb79c4dcmaeder cp $HETS_FOLDER/DMU/OntoDMU.jar $HETS_FOLDER/hets-owl-tools
21155e63bac193abc764d791360132392eb79c4dcmaeder touch $DATA_DIR/owl.done
21155e63bac193abc764d791360132392eb79c4dcmaeder rm $DATA_DIR/clean.done 2> /dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Not necessary"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Clearing $HETS_FOLDER"
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! -f $DATA_DIR/clean.done ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $HETS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder make distclean 1>/dev/null 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder rm programatica 2>/dev/null
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf GMP mini
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p programatica
21155e63bac193abc764d791360132392eb79c4dcmaeder wget http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/$PROGRAMATICA.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder tar -xf $PROGRAMATICA.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder mv $PROGRAMATICA programatica/tools
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -r $PROGRAMATICA.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder touch $DATA_DIR/clean.done
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! -f $DATA_DIR/orig.done ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Creating orig.tar.gz"
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $HETS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder echo $HETS_REVISION >> rev.txt
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/.gitignore
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/OWL2/java/OwlApi
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/utils/nightly
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/utils/debian
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/utils/macports
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER/utils/ubuntu
21155e63bac193abc764d791360132392eb79c4dcmaeder cd ..
21155e63bac193abc764d791360132392eb79c4dcmaeder tar -czf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz hets
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder touch $DATA_DIR/orig.done
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ".orig.tar.gz is up to date"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder for DIST in $SELECTED_DISTROS
21155e63bac193abc764d791360132392eb79c4dcmaederdo
21155e63bac193abc764d791360132392eb79c4dcmaeder rm -rf $HETS_FOLDER
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "::Packaging for $DIST distroseries"
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $DATA_DIR
21155e63bac193abc764d791360132392eb79c4dcmaeder tar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ::Creating debian folder $HETS_FOLDER and changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder mkdir -p $HETS_FOLDER/debian
21155e63bac193abc764d791360132392eb79c4dcmaeder cp -rf $OLD_PWD/debian-server/* $HETS_FOLDER/debian
21155e63bac193abc764d791360132392eb79c4dcmaeder cp -rf $OLD_PWD/debian/$DIST/* $HETS_FOLDER/debian
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder # Creating the changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "$DIST" = "$MAIN_DISTRO" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder ADDITIONAL=""
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder ADDITIONAL="~$DIST"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "hets-server ($HETS_FULL_VERSION-0ubuntu1$ADDITIONAL) `basename $DIST`; urgency=low" > .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " * Initial release, automatically generated." >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " -- `cat changelog_name` <`cat changelog_email`> `date -R`" >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder #merging changelogs
21155e63bac193abc764d791360132392eb79c4dcmaeder mv .changelog $HETS_FOLDER/debian/changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ::Done
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ::Starting package building and signing;
21155e63bac193abc764d791360132392eb79c4dcmaeder ln -s $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $HETS_FOLDER;
21155e63bac193abc764d791360132392eb79c4dcmaeder debuild -S -sa
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ::Done
21155e63bac193abc764d791360132392eb79c4dcmaeder cd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder rm $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder cp $DATA_DIR/hets-server_$HETS_FULL_VERSION* $RESULTS_DIR/
21155e63bac193abc764d791360132392eb79c4dcmaeder rm $DATA_DIR/hets-server_$HETS_FULL_VERSION*
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaedercd $DATA_DIR
21155e63bac193abc764d791360132392eb79c4dcmaedertar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaedercd $OLD_PWD
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ $OPT_UPLOAD -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! $OPT_CREATE -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "You need to (re-)create the packages for uploading"
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederecho "=== Uploading source packages"
21155e63bac193abc764d791360132392eb79c4dcmaederfor DIST in $SELECTED_DISTROS
21155e63bac193abc764d791360132392eb79c4dcmaederdo
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "$DIST" = "$MAIN_DISTRO" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder ADDITIONAL=""
21155e63bac193abc764d791360132392eb79c4dcmaeder else
21155e63bac193abc764d791360132392eb79c4dcmaeder ADDITIONAL="~$DIST"
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! -f $RESULTS_DIR/hets-server_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "hets_$HETS_FULL_VERSION-0ubuntu1$ADDITIONAL.changes doesn't exist ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Maybe you need to call create first ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit
21155e63bac193abc764d791360132392eb79c4dcmaeder fi
21155e63bac193abc764d791360132392eb79c4dcmaeder echo :: Upload hets-server_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes
21155e63bac193abc764d791360132392eb79c4dcmaeder # dput ppa:hets/hets $RESULTS_DIR/hets_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes
21155e63bac193abc764d791360132392eb79c4dcmaederdone
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederfi
21155e63bac193abc764d791360132392eb79c4dcmaeder
21155e63bac193abc764d791360132392eb79c4dcmaederif [ $OPT_TEST -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Testing not yet implemented ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder exit 1
21155e63bac193abc764d791360132392eb79c4dcmaederfi