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