8774e07ad3c80fe4388642c5e33448aab2fef612
[ghc-hetmet.git] / distrib / MacOS / installer-scripts / Uninstaller.in
1 #!/bin/sh
2
3 # Uninstaller script for GHC.framework 
4 # (currently only for system volume installations)
5
6 INSTALL_DEST=/Library/Frameworks
7 INSTALL_BASE=/
8
9 # Turn off things that might make /usr/bin/ls give funky output
10 unset CLICOLOR
11 unset CLICOLOR_FORCE
12 unset LSCOLORS
13
14 if [ ${INSTALL_BASE} = / ]; then
15   INSTALL_BASE=/usr
16 fi
17 INSTALL_BIN=${INSTALL_BASE}/bin
18 INSTALL_MAN1=${INSTALL_BASE}/share/man/man1
19 INSTALL_HTML=${INSTALL_BASE}/share/doc
20
21 if [ ! -x ${INSTALL_DEST}/GHC.framework ]; then
22   echo "${INSTALL_DEST}/GHC.framework does not exit"
23   exit 1
24 fi
25
26 if [ ${USER} != root ]; then
27   echo "GHC.framework installer must be run with admin privileges"
28   echo "Prefix command by 'sudo'"
29   exit 1
30 fi
31
32 FRAMEWORK_DIRECTORY="$INSTALL_DEST/GHC.framework"
33 VERSIONS_DIRECTORY="$FRAMEWORK_DIRECTORY/Versions"
34
35 MY_VERSION=@ProjectVersion@-@TargetArch_CPP@
36 MY_DIRECTORY="$VERSIONS_DIRECTORY/$MY_VERSION"
37
38 CURRENT_DIRECTORY="$VERSIONS_DIRECTORY/Current"
39 CURRENT_VERSION=`readlink "$CURRENT_DIRECTORY"`
40
41 if [ "$CURRENT_VERSION" = "$MY_VERSION" ]
42 then
43     rm -f "$CURRENT_DIRECTORY"
44
45     removeLinksFrom () {
46         for f in `ls -1 "$MY_DIRECTORY/$1"`
47         do
48             qf="$1/$f"
49             # Sanity check that it is a link like we expect
50             l=`readlink "$qf" | grep GHC.framework/Versions`
51             if [ "$l" != "" ]
52             then
53                 rm -f "$qf"
54             fi
55         done
56     }
57
58     removeLinksFrom /usr/bin
59     removeLinksFrom /usr/share/man/man1
60     removeLinksFrom /usr/share/doc
61 fi
62
63 echo "Removing $MY_DIRECTORY"
64 rm -rf "$MY_DIRECTORY"
65
66 if [ "$CURRENT_VERSION" = "$MY_VERSION" ]
67 then
68     # This isn't ideal, but it's a vague approximation to
69     # "the most recent version":
70     NEW_VERSION=`ls -1 "$VERSIONS_DIRECTORY" | tail -1`
71     if [ "$NEW_VERSION" = "" ]
72     then
73         echo "Removing $FRAMEWORK_DIRECTORY"
74         rm -rf "$FRAMEWORK_DIRECTORY"
75     else
76         ln -s "$NEW_VERSION" "$CURRENT_DIRECTORY"
77         NEW_CREATE_LINKS="$VERSIONS_DIRECTORY/$NEW_VERSION/Tools/create-links"
78         if [ -f "$NEW_CREATE_LINKS" ]
79         then
80             sh "$NEW_CREATE_LINKS"
81         fi
82     fi
83 fi
84
85 echo "Removing package receipt"
86 # The first is for Leopard packages and the second for Tiger packages.
87 rm -f "/Library/Receipts/boms/org.haskell.ghc.$MY_VERSION.bom"
88 rm -rf "/Library/Receipts/ghc.$MY_VERSION.pkg"
89
90 echo "Done."
91