Admin/makebundle
changeset 37333 af2adf0ae97d
parent 33923 473f859e1c29
child 37343 c333da19fe67
     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