src/Tools/jEdit/makedist
changeset 43281 8d8b6ed0588c
parent 43280 e5dd0ae1b054
child 43282 5d294220ca43
equal deleted inserted replaced
43280:e5dd0ae1b054 43281:8d8b6ed0588c
     1 #!/usr/bin/env bash
       
     2 #
       
     3 # makedist -- make Isabelle/jEdit distribution
       
     4 
       
     5 ## self references
       
     6 
       
     7 PRG="$(basename "$0")"
       
     8 THIS="$(cd "$(dirname "$0")"; pwd)"
       
     9 SUPER="$(cd "$THIS/.."; pwd)"
       
    10 
       
    11 
       
    12 ## diagnostics
       
    13 
       
    14 JEDIT_HOME=""
       
    15 
       
    16 function usage()
       
    17 {
       
    18   echo
       
    19   echo "Usage: $PRG [OPTIONS]"
       
    20   echo
       
    21   echo "  Options are:"
       
    22   echo "    -j DIR       specify original jEdit distribution"
       
    23   echo
       
    24   echo "  Produce Isabelle/jEdit distribution from Netbeans build"
       
    25   echo "  in $THIS/dist"
       
    26   echo
       
    27   exit 1
       
    28 }
       
    29 
       
    30 fail()
       
    31 {
       
    32   echo "$1" >&2
       
    33   exit 2
       
    34 }
       
    35 
       
    36 
       
    37 ## process command line
       
    38 
       
    39 # options
       
    40 
       
    41 while getopts "j:" OPT
       
    42 do
       
    43   case "$OPT" in
       
    44     j)
       
    45       JEDIT_HOME="$OPTARG"
       
    46       ;;
       
    47     \?)
       
    48       usage
       
    49       ;;
       
    50   esac
       
    51 done
       
    52 
       
    53 shift $(($OPTIND - 1))
       
    54 
       
    55 
       
    56 # args
       
    57 
       
    58 [ "$#" -ne 0 ] && usage
       
    59 
       
    60 
       
    61 ## main
       
    62 
       
    63 cd "$THIS/dist" || fail "Bad directory: $THIS/dist"
       
    64 
       
    65 
       
    66 # target name
       
    67 
       
    68 [ -z "$JEDIT_HOME" ] && fail "Unknown JEDIT_HOME"
       
    69 [ -n "$ISABELLE_HOME" ] || fail "Missing Isabelle settings environment"
       
    70 
       
    71 VERSION="$(basename "$JEDIT_HOME")_Isabelle-$("$ISABELLE_TOOL" version -i)"
       
    72 JEDIT="jedit-${VERSION}"
       
    73 
       
    74 rm -rf "$JEDIT" jedit
       
    75 mkdir "$JEDIT"
       
    76 
       
    77 rm -f jedit && ln -s "$JEDIT" jedit
       
    78 
       
    79 
       
    80 # copy stuff
       
    81 
       
    82 [ "$JEDIT_HOME/jedit.jar" ] || fail "Bad original jEdit directory: $JEDIT_HOME"
       
    83 cp -R "$JEDIT_HOME/." "$JEDIT/."
       
    84 rm -rf "$JEDIT/jEdit" "$JEDIT/build-support"
       
    85 
       
    86 mkdir -p "$JEDIT/jars"
       
    87 cp -R jars/. "$JEDIT/jars/."
       
    88 
       
    89 cp -R "$THIS/dist-template/." "$JEDIT/."
       
    90 cp "$THIS/README" "$JEDIT/."
       
    91 
       
    92 perl -i -e 'while (<>) { if (m/NAME="javacc"/) {
       
    93   print qq,<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="*.thy"/>\n\n,;
       
    94   print qq,<MODE NAME="isabelle-session" FILE="isabelle-session.xml" FILE_NAME_GLOB="session.root"/>\n\n,; }
       
    95   print; }' "$JEDIT/modes/catalog"
       
    96 
       
    97 
       
    98 # build archive
       
    99 
       
   100 echo "${JEDIT}.tar.gz"
       
   101 tar czf "${JEDIT}.tar.gz" "$JEDIT"