summaryrefslogtreecommitdiffstats
path: root/third_party/lcov/bin/install.sh
blob: 9d4a9daf22e05dbbddcd4456c5c9c84b8b0f1f73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/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