1 #!/bin/bash 2 # 3 # install.sh [--uninstall] sourcefile targetfile 4 # 5 6 7 # Check for uninstall option 8 if test "x$1" == "x--uninstall" ; then 9 UNINSTALL=true 10 SOURCE=$2 11 TARGET=$3 12 else 13 UNINSTALL=false 14 SOURCE=$1 15 TARGET=$2 16 fi 17 18 # Check usage 19 if test -z "$SOURCE" || test -z "$TARGET" ; then 20 echo Usage: install.sh [--uninstall] source target >&2 21 exit 1 22 fi 23 24 25 # 26 # do_install(SOURCE_FILE, TARGET_FILE) 27 # 28 29 do_install() 30 { 31 local SOURCE=$1 32 local TARGET=$2 33 34 install -D $SOURCE $TARGET 35 } 36 37 38 # 39 # do_uninstall(SOURCE_FILE, TARGET_FILE) 40 # 41 42 do_uninstall() 43 { 44 local SOURCE=$1 45 local TARGET=$2 46 47 # Does target exist? 48 if test -r $TARGET ; then 49 # Is target of the same version as this package? 50 if diff $SOURCE $TARGET >/dev/null; then 51 rm -f $TARGET 52 else 53 echo WARNING: Skipping uninstall for $TARGET - versions differ! >&2 54 fi 55 else 56 echo WARNING: Skipping uninstall for $TARGET - not installed! >&2 57 fi 58 } 59 60 61 # Call sub routine 62 if $UNINSTALL ; then 63 do_uninstall $SOURCE $TARGET 64 else 65 do_install $SOURCE $TARGET 66 fi 67 68 exit 0 69