0b79258f25f4fd37862ee04bebe44b37e9b2229b
[ghc-hetmet.git] / distrib / MacOS / installer-scripts / Uninstaller
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 if [ ${INSTALL_BASE} = / ]; then
10   INSTALL_BASE=/usr
11 fi
12 INSTALL_BIN=${INSTALL_BASE}/bin
13 INSTALL_MAN1=${INSTALL_BASE}/share/man/man1
14 INSTALL_HTML=${INSTALL_BASE}/share/doc
15
16 if [ ! -x ${INSTALL_DEST}/GHC.framework ]; then
17   echo "${INSTALL_DEST}/GHC.framework does not exit"
18   exit 1
19 fi
20
21 if [ ${USER} != root ]; then
22   echo "GHC.framework installer must be run with admin privileges"
23   echo "Prefix command by 'sudo'"
24   exit 1
25 fi
26
27 VERSIONS=(`ls ${INSTALL_DEST}/GHC.framework/Versions`)
28 NO_VERSIONS=${#VERSIONS[@]}
29
30 if [ ${VERSIONS[${NO_VERSIONS}-1]} != Current ]; then
31   echo "Fatal error: last version should be Current"
32   echo "Found versions: ${VERSIONS[@]}"
33   exit 1
34 fi
35 CURRENT_PHYS=`cd /Library/Frameworks/GHC.framework/Versions/Current; pwd -P`
36 CURRENT=`basename ${CURRENT_PHYS}`
37
38 if [ ${NO_VERSIONS} -ne 2 ]; then
39   echo "Multiple versions of GHC.framework are currently installed."
40   echo "This uninstaller removes GHC.framework entirely and should only"
41   echo "be used if there is exactly one version."
42   echo
43   echo "To remove individual old versions, simply delete the directory"
44   echo "${INSTALL_DEST}/GHC.framework/Versions/VERSION_TO_REMOVE"
45   echo
46   echo "Found versions: ${VERSIONS[@]}(= ${CURRENT})"
47   exit 1
48 fi
49
50 echo "Removing symbolic links into GHC.framework"
51 for thisfile in `ls ${INSTALL_BIN}`; do
52   if ls -l ${INSTALL_BIN}/${thisfile} | grep -q GHC.framework/Versions; then
53     rm -f ${INSTALL_BIN}/${thisfile}
54   fi
55 done
56 for thisfile in `ls ${INSTALL_MAN1}`; do
57   if ls -l ${INSTALL_MAN1}/${thisfile} | grep -q GHC.framework/Versions; then
58     rm -f ${INSTALL_MAN1}/${thisfile}
59   fi
60 done
61 for thisfile in `ls ${INSTALL_HTML}`; do
62   if ls -l ${INSTALL_HTML}/${thisfile} | grep -q GHC.framework/Versions; then
63     rm -f ${INSTALL_HTML}/${thisfile}
64   fi
65 done
66
67 echo "Removing ${INSTALL_DEST}/GHC.framework"
68 rm -rf ${INSTALL_DEST}/GHC.framework
69
70 echo "Removing package recipt"
71 rm -f /Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
72
73 echo "${INSTALL_DEST}/GHC.framework has been purged!"