package_server revision 21155e63bac193abc764d791360132392eb79c4d
fa9e4066f08beec538e775443c5be79dd423fcabahrens# Auto package Hets repository
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock# c.prodescu@jacobs-university.de
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock# jonathan.von_schroeder@gmail.com
fa9e4066f08beec538e775443c5be79dd423fcabahrens# Christian.Maeder@dfki.de
fa9e4066f08beec538e775443c5be79dd423fcabahrensCURR_DISTRO=`cat /etc/*-release | grep DISTRIB_CODENAME | cut -d'=' -f2`
99653d4ee642c6528e88224f12409a5f23060994eschrock echo "Create & upload hets packages from the svn trunk."
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor# echo "If these are not present it will try to get them from svn."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " prepare - Prepare the base.tgz files needed by pbuilder
fa9e4066f08beec538e775443c5be79dd423fcabahrens (needed for testing, you only need to call it once -
fa9e4066f08beec538e775443c5be79dd423fcabahrens updating takes place automatically)"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " create - Create source packages from svn trunk"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " upload - Upload packages to launchpad hets ppa"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " package - Do all the above i.e. create source packages,
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor test them and then upload them"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " clean - Remove any checkouts, build files etc."
fa9e4066f08beec538e775443c5be79dd423fcabahrens * prepare and test need you to be either root
fa9e4066f08beec538e775443c5be79dd423fcabahrens or to be able to call sudo"
fa9e4066f08beec538e775443c5be79dd423fcabahrens automatically using apt-get (note requires
fa9e4066f08beec538e775443c5be79dd423fcabahrens you to be root are to be able to call sudo)
fa9e4066f08beec538e775443c5be79dd423fcabahrens -a Execute commands for all available distros
fa9e4066f08beec538e775443c5be79dd423fcabahrens Select distro for commands
fa9e4066f08beec538e775443c5be79dd423fcabahrens -c Select current distro for commands: $CURR_DISTRO
fa9e4066f08beec538e775443c5be79dd423fcabahrens -r REVISION
fa9e4066f08beec538e775443c5be79dd423fcabahrens use revision REVISION instead of the latest HETS revision"
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $? -eq 1 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $AUTO_INSTALL -eq 0 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $? -eq 1 ]; then
99653d4ee642c6528e88224f12409a5f23060994eschrock if [ $UID -eq 0 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $? -eq 1 ]; then
99653d4ee642c6528e88224f12409a5f23060994eschrock if [ $? -eq 1 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Please install $PKG manually or try again with -i ..."
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock if [ -d $REPO_FOLDER ]; then
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock (cd $REPO_FOLDER && git status 1>/dev/null 2>/dev/null)
03a818bc5cc6f80c183dfb3334f4d0ff2ab36fccmmusante if [ $? -eq 0 ]; then
03a818bc5cc6f80c183dfb3334f4d0ff2ab36fccmmusante if [ $? -eq 0 ]; then
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock [[ $REPLY = [yY] ]] && { rm -rf $REPO_FOLDER; } || { echo "Giving up."; exit 1; }
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock if [ $UPTODATE -eq 1 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $? -eq 1 ]; then
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock REVISION=`git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct`
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock if [ ! $? -eq 0 ]; then
181c2f42873ba1b0fdc4d0470593ad30176af1f0mmusante if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$TARGET_REV" ]; then
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock if [ "`cat \"${DATA_DIR}/revision_${SUFF}\" 2>/dev/null`" == "$REVISION" ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ $EXPORT_UPTODATE -eq 1 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens git archive --format=tar master | (cd $FOLDER && tar -xf -)
99653d4ee642c6528e88224f12409a5f23060994eschrock if [ $? -eq 1 ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens git --git-dir=$HETS_REPO_FOLDER/.git log -1 --format=%ct > $DATA_DIR/revision_$SUFF
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Distribution $OPTARG not available ..."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Giving up."
fa9e4066f08beec538e775443c5be79dd423fcabahrensSELECTED_DISTROS=`echo $SELECTED_DISTROS | tr ' ' '\n' | sort -u | tr '\n' ' '`
fa9e4066f08beec538e775443c5be79dd423fcabahrensif echo "$SELECTED_DISTROS" | grep -q "^[[:space:]]*$" ; then
99653d4ee642c6528e88224f12409a5f23060994eschrockecho ":: Selected Distros are: $SELECTED_DISTROS"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Unknown command $arg ..."
181c2f42873ba1b0fdc4d0470593ad30176af1f0mmusanteif [ ! -d $RESULTS_DIR ]; then
181c2f42873ba1b0fdc4d0470593ad30176af1f0mmusante echo "=== Preparing base.tgz"
181c2f42873ba1b0fdc4d0470593ad30176af1f0mmusante echo "Can't find sudo and you're not root ..."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Giving up."
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock echo ":: Creating base.tgz for distro $DIST"
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock echo "See $OLD_PWD/logs/pbuilder_${DIST}_base.tgz.log"
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock $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`"
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock echo ":: Done"
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock echo "=== Cleaning"
46a2abf27af40eda17a3f97e79eda1aef4e3c3c8eschrock echo "=== Creating source packages"
99653d4ee642c6528e88224f12409a5f23060994eschrock export_git_repo "hets" "$HETS_REPO" "$HETS_REPO_FOLDER" "$HETS_FOLDER" "$HETS_REV"
99653d4ee642c6528e88224f12409a5f23060994eschrock echo "Couldn't detect version ..."
99653d4ee642c6528e88224f12409a5f23060994eschrock echo "Giving up."
99653d4ee642c6528e88224f12409a5f23060994eschrock echo ":: Hets version is: $HETS_VERSION"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ":: Revision is: $HETS_REVISION"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ":: Full version is: $HETS_FULL_VERSION"
fa9e4066f08beec538e775443c5be79dd423fcabahrens export_git_repo "lib" "$HETS_LIB_REPO" "$HETS_LIB_REPO_FOLDER" "$HETS_FOLDER/hets-lib"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ":: Compiling Hets OWL Tools"
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ ! -f "$DATA_DIR/owl.done" ]; then
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor make initialize_java 1>/dev/null || { echo Building Hets OWL Tools failed && echo Giving up. && exit 1; }
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor cp $HETS_FOLDER/OWL2/lib/*.jar $HETS_OWL_TOOLS_FOLDER/lib
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor cp $HETS_FOLDER/CASL/Termination/AProVE.jar $HETS_FOLDER/hets-owl-tools
99653d4ee642c6528e88224f12409a5f23060994eschrock cp $HETS_FOLDER/DMU/OntoDMU.jar $HETS_FOLDER/hets-owl-tools
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor echo "Not necessary"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ":: Clearing $HETS_FOLDER"
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor wget http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/$PROGRAMATICA.tar.gz
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ":: Creating orig.tar.gz"
fa9e4066f08beec538e775443c5be79dd423fcabahrens tar -czf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz hets
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ".orig.tar.gz is up to date"
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "::Packaging for $DIST distroseries"
fa9e4066f08beec538e775443c5be79dd423fcabahrens tar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo ::Creating debian folder $HETS_FOLDER and changelog
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor # Creating the changelog
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "hets-server ($HETS_FULL_VERSION-0ubuntu1$ADDITIONAL) `basename $DIST`; urgency=low" > .changelog
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " * Initial release, automatically generated." >> .changelog
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo " -- `cat changelog_name` <`cat changelog_email`> `date -R`" >> .changelog
fa9e4066f08beec538e775443c5be79dd423fcabahrens #merging changelogs
8488aeb5df27784d479c16cde06a9e25cd9a1152taylor ln -s $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
fa9e4066f08beec538e775443c5be79dd423fcabahrens rm $DATA_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
fa9e4066f08beec538e775443c5be79dd423fcabahrens cp $DATA_DIR/hets-server_$HETS_FULL_VERSION* $RESULTS_DIR/
fa9e4066f08beec538e775443c5be79dd423fcabahrenstar -xf $RESULTS_DIR/hets-server_$HETS_FULL_VERSION.orig.tar.gz
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "You need to (re-)create the packages for uploading"
fa9e4066f08beec538e775443c5be79dd423fcabahrensecho "=== Uploading source packages"
fa9e4066f08beec538e775443c5be79dd423fcabahrens if [ ! -f $RESULTS_DIR/hets-server_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes ]; then
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "hets_$HETS_FULL_VERSION-0ubuntu1$ADDITIONAL.changes doesn't exist ..."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Maybe you need to call create first ..."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Giving up."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo :: Upload hets-server_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes
fa9e4066f08beec538e775443c5be79dd423fcabahrens # dput ppa:hets/hets $RESULTS_DIR/hets_"$HETS_FULL_VERSION"-0ubuntu1"$ADDITIONAL"_source.changes
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Testing not yet implemented ..."
fa9e4066f08beec538e775443c5be79dd423fcabahrens echo "Giving up."