1.1 --- a/Admin/makebundle Fri Jun 04 15:48:13 2010 +0200
1.2 +++ b/Admin/makebundle Fri Jun 04 16:47:36 2010 +0200
1.3 @@ -2,11 +2,6 @@
1.4 #
1.5 # makebundle -- re-package with add-on components
1.6
1.7 -## global settings
1.8 -
1.9 -TMP="/var/tmp/isabelle-makebundle$$"
1.10 -
1.11 -
1.12 ## diagnostics
1.13
1.14 PRG=$(basename "$0")
1.15 @@ -14,9 +9,10 @@
1.16 function usage()
1.17 {
1.18 echo
1.19 - echo "Usage: $PRG ARCHIVE COMPONENTS"
1.20 + echo "Usage: $PRG ARCHIVE PLATFORM"
1.21 echo
1.22 - echo " Re-package Isabelle distribution with add-on components."
1.23 + echo " Re-package Isabelle source distribution with add-on components"
1.24 + echo " and logic images"
1.25 echo
1.26 exit 1
1.27 }
1.28 @@ -28,34 +24,37 @@
1.29 }
1.30
1.31
1.32 -## process command line
1.33 +## implicit and explicit arguments
1.34
1.35 -[ "$#" -lt 1 ] && usage
1.36 +TMP="/var/tmp/isabelle-makebundle$$"
1.37 +mkdir "$TMP" || fail "Cannot create directory $TMP"
1.38 +
1.39 +LOGICS="HOL HOL-Nominal HOLCF ZF"
1.40 +
1.41 +[ "$#" -ne 2 ] && usage
1.42
1.43 ARCHIVE="$1"; shift
1.44 +PLATFORM="$1"; shift
1.45
1.46 -declare -a COMPONENTS
1.47 -COMPONENTS=("$@")
1.48 +[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE"
1.49
1.50
1.51 ## main
1.52
1.53 -mkdir "$TMP" || fail "Cannot create directory $TMP"
1.54 -
1.55 ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
1.56 ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
1.57 ISABELLE_HOME="$TMP/$ISABELLE_NAME"
1.58
1.59 -[ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
1.60 tar -C "$TMP" -x -z -f "$ARCHIVE"
1.61
1.62 +
1.63 echo "#bundled components" >> "$ISABELLE_HOME/etc/components"
1.64
1.65 -for COMPONENT in "${COMPONENTS[@]}"
1.66 +for CONTRIB in "$ARCHIVE_DIR"/contrib/*.tar.gz
1.67 do
1.68 - tar -C "$ISABELLE_HOME/contrib" -x -z -f "$COMPONENT"
1.69 - NAME="$(basename "$COMPONENT" .tar.gz)"
1.70 - [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $COMPONENT"
1.71 + tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB"
1.72 + NAME="$(basename "$CONTRIB" .tar.gz)"
1.73 + [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB"
1.74
1.75 if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then
1.76 echo "component $NAME"
1.77 @@ -65,9 +64,20 @@
1.78 fi
1.79 done
1.80
1.81 -tar -C "$TMP" -c -z \
1.82 - -f "${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle.tar.gz" \
1.83 - Isabelle "$ISABELLE_NAME"
1.84 +
1.85 +for LOGIC in $LOGICS
1.86 +do
1.87 + LOGIC_ARCHIVE="$ARCHIVE_DIR/${LOGIC}_${PLATFORM}.tar.gz"
1.88 + [ -f "$LOGIC_ARCHIVE" ] || fail "Bad logic archive: $LOGIC_ARCHIVE"
1.89 + echo "logic $LOGIC"
1.90 + tar -C "$ISABELLE_HOME" -x -z -f "$LOGIC_ARCHIVE"
1.91 +done
1.92 +
1.93 +
1.94 +BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
1.95 +
1.96 +echo "$(basename "$BUNDLE_ARCHIVE")"
1.97 +tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" Isabelle "$ISABELLE_NAME"
1.98
1.99
1.100 # clean up