3 # makebundle -- re-package with add-on components
7 TMP="/var/tmp/isabelle-makebundle$$"
17 echo "Usage: $PRG ARCHIVE COMPONENTS"
19 echo " Re-package Isabelle distribution with add-on components."
31 ## process command line
33 [ "$#" -lt 1 ] && usage
43 mkdir "$TMP" || fail "Cannot create directory $TMP"
45 ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
46 ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
47 ISABELLE_HOME="$TMP/$ISABELLE_NAME"
49 [ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
50 tar -C "$TMP" -x -z -f "$ARCHIVE"
52 echo "#bundled components" >> "$ISABELLE_HOME/etc/components"
54 for COMPONENT in "${COMPONENTS[@]}"
56 tar -C "$ISABELLE_HOME/contrib" -x -z -f "$COMPONENT"
57 NAME="$(basename "$COMPONENT" .tar.gz)"
58 [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $COMPONENT"
60 if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then
61 echo "component $NAME"
62 echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
69 -f "${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle.tar.gz" \
70 Isabelle "$ISABELLE_NAME"