| #!/bin/bash |
| # |
| # install.sh [--uninstall] sourcefile targetfile |
| # |
| |
| |
| # Check for uninstall option |
| if test "x$1" == "x--uninstall" ; then |
| UNINSTALL=true |
| SOURCE=$2 |
| TARGET=$3 |
| else |
| UNINSTALL=false |
| SOURCE=$1 |
| TARGET=$2 |
| fi |
| |
| # Check usage |
| if test -z "$SOURCE" || test -z "$TARGET" ; then |
| echo Usage: install.sh [--uninstall] source target >&2 |
| exit 1 |
| fi |
| |
| |
| # |
| # do_install(SOURCE_FILE, TARGET_FILE) |
| # |
| |
| do_install() |
| { |
| local SOURCE=$1 |
| local TARGET=$2 |
| |
| install -D $SOURCE $TARGET |
| } |
| |
| |
| # |
| # do_uninstall(SOURCE_FILE, TARGET_FILE) |
| # |
| |
| do_uninstall() |
| { |
| local SOURCE=$1 |
| local TARGET=$2 |
| |
| # Does target exist? |
| if test -r $TARGET ; then |
| # Is target of the same version as this package? |
| if diff $SOURCE $TARGET >/dev/null; then |
| rm -f $TARGET |
| else |
| echo WARNING: Skipping uninstall for $TARGET - versions differ! >&2 |
| fi |
| else |
| echo WARNING: Skipping uninstall for $TARGET - not installed! >&2 |
| fi |
| } |
| |
| |
| # Call sub routine |
| if $UNINSTALL ; then |
| do_uninstall $SOURCE $TARGET |
| else |
| do_install $SOURCE $TARGET |
| fi |
| |
| exit 0 |