src/Tools/jEdit/makedist
author wenzelm
Mon, 07 Jun 2010 13:20:05 +0200
changeset 37355 1255ba99ed1e
parent 37218 ffd587207d5d
child 41513 0ffd5ea44078
permissions -rwxr-xr-x
no symlinks; tuned;

#!/usr/bin/env bash
#
# makedist -- make Isabelle/jEdit distribution

## self references

PRG=$(basename "$0")
THIS=$(cd "$(dirname "$0")"; pwd)
SUPER=$(cd "$THIS/.."; pwd)


## diagnostics

JEDIT_HOME=""

function usage()
{
  echo
  echo "Usage: $PRG [OPTIONS]"
  echo
  echo "  Options are:"
  echo "    -j DIR       specify original jEdit distribution"
  echo
  echo "  Produce Isabelle/jEdit distribution from Netbeans build"
  echo "  in $THIS/dist"
  echo
  exit 1
}

fail()
{
  echo "$1" >&2
  exit 2
}


## process command line

# options

while getopts "j:s:" OPT
do
  case "$OPT" in
    j)
      JEDIT_HOME="$OPTARG"
      ;;
    \?)
      usage
      ;;
  esac
done

shift $(($OPTIND - 1))


# args

[ "$#" -ne 0 ] && usage


## main

cd "$THIS/dist" || fail "Bad directory: $THIS/dist"


# target name

[ -z "$JEDIT_HOME" ] && fail "Unknown JEDIT_HOME"

VERSION=$(basename "$JEDIT_HOME")
JEDIT="jedit-${VERSION}"

rm -rf "$JEDIT" jedit
mkdir "$JEDIT"


# copy stuff

[ "$JEDIT_HOME/jedit.jar" ] || fail "Bad original jEdit directory: $JEDIT_HOME"
cp -R "$JEDIT_HOME/." "$JEDIT/."
rm -rf "$JEDIT/jEdit" "$JEDIT/build-support"

mkdir -p "$JEDIT/jars"
cp -R jars/. "$JEDIT/jars/."

cp -R "$THIS/dist-template/." "$JEDIT/."
cp "$THIS/README" "$JEDIT/."

perl -i -e 'while (<>) { if (m/NAME="javacc"/) {
  print qq,<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="*.thy"/>\n\n,;
  print qq,<MODE NAME="isabelle-session" FILE="isabelle-session.xml" FILE_NAME_GLOB="session.root"/>\n\n,; }
  print; }' "$JEDIT/modes/catalog"


# build archive

echo "${JEDIT}.tar.gz"
tar czf "${JEDIT}.tar.gz" "$JEDIT"