package_server revision 21155e63bac193abc764d791360132392eb79c4d
21155e63bac193abc764d791360132392eb79c4dcmaeder# Auto package Hets repository
21155e63bac193abc764d791360132392eb79c4dcmaeder# c.prodescu@jacobs-university.de
21155e63bac193abc764d791360132392eb79c4dcmaeder# jonathan.von_schroeder@gmail.com
21155e63bac193abc764d791360132392eb79c4dcmaeder# Christian.Maeder@dfki.de
21155e63bac193abc764d791360132392eb79c4dcmaederHETS_LIB_REPO=https://github.com/spechub/Hets-lib.git
21155e63bac193abc764d791360132392eb79c4dcmaederCURR_DISTRO=`cat /etc/*-release | grep DISTRIB_CODENAME | cut -d'=' -f2`
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Create & upload hets packages from the svn trunk."
21155e63bac193abc764d791360132392eb79c4dcmaeder# echo "If these are not present it will try to get them from svn."
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 " 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 * prepare and test need you to be either root
21155e63bac193abc764d791360132392eb79c4dcmaeder or to be able to call sudo"
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 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 if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $AUTO_INSTALL -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $UID -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Please install $PKG manually or try again with -i ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ -d $REPO_FOLDER ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder (cd $REPO_FOLDER && git status 1>/dev/null 2>/dev/null)
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder [[ $REPLY = [yY] ]] && { rm -rf $REPO_FOLDER; } || { echo "Giving up."; exit 1; }
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $UPTODATE -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder REVISION=`git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct`
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! $? -eq 0 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$TARGET_REV" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$REVISION" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $EXPORT_UPTODATE -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder git archive --format=tar master | (cd $FOLDER && tar -xf -)
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ $? -eq 1 ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct > $DATA_DIR/revision_$SUFF
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Distribution $OPTARG not available ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaederSELECTED_DISTROS=`echo $SELECTED_DISTROS | tr ' ' '\n' | sort -u | tr '\n' ' '`
21155e63bac193abc764d791360132392eb79c4dcmaederif echo "$SELECTED_DISTROS" | grep -q "^[[:space:]]*$" ; then
21155e63bac193abc764d791360132392eb79c4dcmaederecho ":: Selected Distros are: $SELECTED_DISTROS"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Unknown command $arg ..."
21155e63bac193abc764d791360132392eb79c4dcmaederif [ ! -d $RESULTS_DIR ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Preparing base.tgz"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Can't find sudo and you're not root ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
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"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Cleaning"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "=== Creating source packages"
21155e63bac193abc764d791360132392eb79c4dcmaeder export_git_repo "hets" "$HETS_REPO" "$HETS_REPO_FOLDER" "$HETS_FOLDER" "$HETS_REV"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Couldn't detect version ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Hets version is: $HETS_VERSION"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Revision is: $HETS_REVISION"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Full version is: $HETS_FULL_VERSION"
21155e63bac193abc764d791360132392eb79c4dcmaeder export_git_repo "lib" "$HETS_LIB_REPO" "$HETS_LIB_REPO_FOLDER" "$HETS_FOLDER/hets-lib"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Compiling Hets OWL Tools"
21155e63bac193abc764d791360132392eb79c4dcmaeder if [ ! -f "$DATA_DIR/owl.done" ]; then
21155e63bac193abc764d791360132392eb79c4dcmaeder make initialize_java 1>/dev/null || { echo Building Hets OWL Tools failed && echo Giving up. && exit 1; }
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 echo "Not necessary"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Clearing $HETS_FOLDER"
21155e63bac193abc764d791360132392eb79c4dcmaeder wget http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/$PROGRAMATICA.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ":: Creating orig.tar.gz"
21155e63bac193abc764d791360132392eb79c4dcmaeder tar -czf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz hets
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ".orig.tar.gz is up to date"
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "::Packaging for $DIST distroseries"
21155e63bac193abc764d791360132392eb79c4dcmaeder tar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder echo ::Creating debian folder $HETS_FOLDER and changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder # Creating the changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "hets-server ($HETS_FULL_VERSION-0ubuntu1$ADDITIONAL) `basename $DIST`; urgency=low" > .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " * Initial release, automatically generated." >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder echo " -- `cat changelog_name` <`cat changelog_email`> `date -R`" >> .changelog
21155e63bac193abc764d791360132392eb79c4dcmaeder #merging changelogs
21155e63bac193abc764d791360132392eb79c4dcmaeder ln -s $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder rm $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder cp $DATA_DIR/hets-server_$HETS_FULL_VERSION* $RESULTS_DIR/
21155e63bac193abc764d791360132392eb79c4dcmaedertar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "You need to (re-)create the packages for uploading"
21155e63bac193abc764d791360132392eb79c4dcmaederecho "=== Uploading source packages"
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 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
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Testing not yet implemented ..."
21155e63bac193abc764d791360132392eb79c4dcmaeder echo "Giving up."