lib/Tools/install
author wenzelm
Tue, 13 Apr 1999 12:36:11 +0200
changeset 6417 39941b906910
parent 6082 590f9e3bf4d8
child 6450 990e6e2dee26
permissions -rwxr-xr-x
-p option; -k option;

#!/bin/bash
#
# $Id$
#
# DESCRIPTION: install standalone Isabelle executables


PRG=$(basename $0)

function usage()
{
  echo
  echo "Usage: $PRG [OPTIONS]"
  echo
  echo "  Options are:"
  echo "    -d DISTDIR   use DISTDIR as Isabelle distribution (default ISABELLE_HOME)"
  echo "    -k           install KDE application icon on Desktop"
  echo "    -p DIR       install standalone binaries in DIR"
  echo
  echo "  Install Isabelle executables with absolute references to the current"
  echo "  distribution directory."
  echo
  exit 1
}

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


## process command line

# options

DISTDIR="$ISABELLE_HOME"
KDE=""
BINDIR=""

while getopts "d:kp:" OPT
do
  case "$OPT" in
    d)
      DISTDIR="$OPTARG"
      ;;
    k)
      KDE=true
      ;;
    p)
      BINDIR="$OPTARG"
      ;;
    \?)
      usage
      ;;
  esac
done

shift $(($OPTIND - 1))


# args

[ $# -ne 0 ] && usage


## main

echo "distribution at $DISTDIR"


# standalone binaries

#set by configure
AUTO_BASH=/bin/bash

if [ -n "$BINDIR" ]; then
  mkdir -p "$BINDIR" || fail "Bad directory: $BINDIR"

  for NAME in isatool isabelle Isabelle
  do
    BIN="$BINDIR/$NAME"
    DIST="$DISTDIR/bin/$NAME"
    echo "installing $BIN"
    echo "#!$AUTO_BASH" >$BIN || fail "Cannot write file: $BIN"
    echo >>$BIN
    echo "exec $DIST \"\$@\"" >>$BIN
    chmod +x $BIN
  done
fi


# install KDE application icon

KDEHOME=~/.kde
KDEAPP=~/Desktop/Isabelle.kdelnk

if [ "$KDE" = true ]; then
  mkdir -p $KDEHOME/share/icons || fail "Bad directory: $KDEHOME/share/icons"

  ICON=$KDEHOME/share/icons/isabelle.xpm
  [ -f $ICON ] || cp $DISTDIR/lib/logo/isabelle-tiny.xpm $ICON || fail "Cannot write file: $ICON"

  echo "installing $KDEAPP"
  echo "# KDE Config File" >$KDEAPP || fail "Cannot write file: $KDEAPP"
  echo "[KDE Desktop Entry]" >>$KDEAPP
  echo "Type=Application" >>$KDEAPP
  echo "Exec=$DISTDIR/bin/Isabelle" >>$KDEAPP
  echo "Icon=isabelle.xpm" >>$KDEAPP
  echo "TerminalOptions=" >>$KDEAPP
  echo "Path=" >>$KDEAPP
  echo "Terminal=0" >>$KDEAPP
  echo "Name=Isabelle" >>$KDEAPP

  type -p kfmclient >/dev/null && kfmclient refreshDesktop
fi