hets_script revision dfcf19ace3059f0e6c3d82110973f03200e31c7e
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#!/bin/sh -e
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# this script is part of Hets
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# - Heterogenous Tool Set -
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Handling switches
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# -update
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync# -revert
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync#
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsyncif [ "$#" = "1" ]; then
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync case "$1" in
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync -update)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if [ "`id -u`" = "0" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync apt-get install hets-core
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync export HETS_DAILY_VERSION=`date +%Y%m%d`
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncpython << __END__
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport fcntl, os, sys;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncf = open("/var/lib/dpkg/lock", 'w')
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsynctry:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync fcntl.lockf(f, fcntl.LOCK_EX|fcntl.LOCK_NB)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Retrieving latest Hets library...",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync sys.stdout.flush()
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("svn export --force -q https://svn-agbkb.informatik.uni-bremen.de/Hets-lib/trunk \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /usr/lib/hets/hets-lib")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Done"
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync print "Retrieving latest Hets binary...",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync sys.stdout.flush()
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("rm -f /tmp/hets-$HETS_DAILY_VERSION*");
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if os.uname()[4] == "x86_64":
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("curl -sG http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/linux64/daily/hets.bz2 \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync > /tmp/hets-$HETS_DAILY_VERSION.bz2")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync else:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("curl -sG http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/linux/daily/hets.bz2 \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync > /tmp/hets-$HETS_DAILY_VERSION.bz2")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("bunzip2 /tmp/hets-$HETS_DAILY_VERSION.bz2")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("mv /usr/lib/hets/hets \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /usr/lib/hets/hets.backup")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("install -m 755 /tmp/hets-$HETS_DAILY_VERSION \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /usr/lib/hets/hets")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("rm /tmp/hets-$HETS_DAILY_VERSION")
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Done"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexcept IOError:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Could not acquire lock \"/var/lib/dpkg/lock\""
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync sys.exit(0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncsys.exit(0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync__END__
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync echo "Updated to `hets -V`."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync exit 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync else
c8cc094f51df8a2b86a8137eaf65c3a9eb39b858vboxsync echo "Root access required for \"hets -update\""
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync exit 0
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync fi
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync ;;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync -revert)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if [ "`id -u`" = "0" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if [ -f /usr/lib/hets/hets.backup ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncpython << __END__
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport fcntl, os, sys;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncf = open("/var/lib/dpkg/lock", 'w')
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsynctry:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync fcntl.lockf(f, fcntl.LOCK_EX|fcntl.LOCK_NB)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Reverting to previous Hets binary... ",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync os.system("mv /usr/lib/hets/hets.backup \
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /usr/lib/hets/hets");
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Done"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexcept IOError:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync print "Could not acquire lock \"/var/lib/dpkg/lock\""
396f76437ff8f66e088cea96fc7474554ea3fb7bvboxsync sys.exit(0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncsys.exit(0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync__END__
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync echo "Reverted to `hets -V`."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync exit 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync else
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync echo "No hets.backup found to revert."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync exit 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync fi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync else
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync echo "Root access required for \"hets -revert\""
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync exit 0
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync fi
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync esac
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncfi
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync#
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync# Detecting Isabelle version
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync#
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncif which isabelle 2> /dev/null 1> /dev/null; then
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncISABELLE_VERSION=`isabelle version | awk '{ print $1 }' | sed "s/Isabelle//g" | sed "s/://g"`
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsynccase "$ISABELLE_VERSION"
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsyncin
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync 2011*)
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync HETS_ISABELLE_DIR=/usr/lib/hets/hets-lib/Isabelle/2011
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ;;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync HETS_ISABELLE_DIR=/usr/lib/hets/hets-lib/Isabelle
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ;;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncesac
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Setting environment variables
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# and starting Hets
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_LIB=/usr/lib/hets/hets-lib
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_OWL_TOOLS=/usr/lib/hets/hets-owl-tools
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_ISABELLE_LIB=$HETS_ISABELLE_DIR
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_APROVE=$HETS_OWL_TOOLS/AProVE.jar
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_ONTODMU=$HETS_OWL_TOOLS/OntoDMU.jar
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_MAUDE_LIB=/usr/lib/hets/hets-maude-lib
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_HOLLIGHT_TOOLS=/usr/lib/hets/hets-hollight-tools
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_HOL_DIR=/usr/share/hol-light
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport HETS_OCAML_LIB_DIR=/usr/lib/ocaml/compiler-libs
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport PELLET_PATH=/usr/share/pellet
2d97f8baccdd684bc0a8a15eb86bbe9ff2b85374vboxsyncexport TWELF_LIB=/usr/share/twelf/bin
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncexport MAUDE_LIB=/usr/share/maude
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync/usr/lib/hets/hets $@
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync