summaryrefslogtreecommitdiff
path: root/ext/installfiles/mac
diff options
context:
space:
mode:
Diffstat (limited to 'ext/installfiles/mac')
-rwxr-xr-xext/installfiles/mac/launch.sh22
-rwxr-xr-xext/installfiles/mac/uninstall.sh24
2 files changed, 30 insertions, 16 deletions
diff --git a/ext/installfiles/mac/launch.sh b/ext/installfiles/mac/launch.sh
index ed517029..dc7c2229 100755
--- a/ext/installfiles/mac/launch.sh
+++ b/ext/installfiles/mac/launch.sh
@@ -1,22 +1,26 @@
#!/bin/bash
zthome="/Library/Application Support/ZeroTier/One"
-ztapp="/Applications/ZeroTier One.app"
-
export PATH="/bin:/usr/bin:/sbin:/usr/sbin:$zthome"
+ztapp=`mdfind kMDItemCFBundleIdentifier == 'com.zerotier.ZeroTierOne'`
-# Uninstall if the .app has been thrown away
-if [ ! -d "$ztapp" ]; then
- if [ -e "$zthome/uninstall.sh" ]; then
- cd "$zthome"
- ./uninstall.sh -q
- exit
+# Clean all other stuff off the system if the user has trashed the .app
+if [ -z "$ztapp" -o ! -d "$ztapp" ]; then
+ # Double-check default location just in case there is some issue with mdfind
+ ztapp="/Applications/ZeroTier One.app"
+ if [ ! -d "$ztapp" ]; then
+ if [ -e "$zthome/uninstall.sh" ]; then
+ cd "$zthome"
+ ./uninstall.sh -q
+ exit
+ fi
fi
fi
# Create the app deletion notification symlink if it does
# not already exist.
-if [ ! -L "$zthome/shutdownIfUnreadable" ]; then
+shutdownIfUnreadablePointsTo=`readlink "$zthome/shutdownIfUnreadable"`
+if [ -z "$shutdownIfUnreadablePointsTo" -o "$shutdownIfUnreadablePointsTo" != "$ztapp/Contents/Info.plist" ]; then
rm -f "$zthome/shutdownIfUnreadable"
ln -sf "$ztapp/Contents/Info.plist" "$zthome/shutdownIfUnreadable"
fi
diff --git a/ext/installfiles/mac/uninstall.sh b/ext/installfiles/mac/uninstall.sh
index 79955a65..73eac91d 100755
--- a/ext/installfiles/mac/uninstall.sh
+++ b/ext/installfiles/mac/uninstall.sh
@@ -2,14 +2,19 @@
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
-ztpath="/Library/Application Support/ZeroTier/One"
-ztapp="/Applications/ZeroTier One.app"
+zthome="/Library/Application Support/ZeroTier/One"
+ztapp=`mdfind kMDItemCFBundleIdentifier == 'com.zerotier.ZeroTierOne'`
if [ "$UID" -ne 0 ]; then
echo "Must be run as root; try: sudo $0"
exit 1
fi
+# Try default location if something's up with mdfind
+if [ ! -d "$ztapp" ]; then
+ ztapp="/Applications/ZeroTier One.app"
+fi
+
# Run with -q to be quieter and run without delay
quickAndQuiet=0
if [ "$1" = "-q" ]; then
@@ -36,15 +41,20 @@ killall -KILL zerotier-one >>/dev/null 2>&1
sleep 1
echo "Unloading kernel extension..."
-kextunload "$ztpath/tap.kext" >>/dev/null 2>&1
+kextunload "$zthome/tap.kext" >>/dev/null 2>&1
+
+echo "Erasing GUI app (if installed)..."
+if [ -d "$ztapp" ]; then
+ rm -rfv "$ztapp"
+fi
-echo "Erasing UI app, binary, and support files..."
-cd "$ztpath"
-rm -rfv "$ztapp" zerotier-one *.persist authtoken.secret identity.public *.log *.pid *.kext *.sh networks.d updates.d shutdownIfUnreadable
+echo "Erasing service and support files..."
+cd "$zthome"
+rm -rfv zerotier-one *.persist authtoken.secret identity.public *.log *.pid *.kext *.sh networks.d updates.d shutdownIfUnreadable
echo "Done."
echo
-echo "Your ZeroTier One identity is still preserved in $ztpath"
+echo "Your ZeroTier One identity is still in: $zthome"
echo "as identity.secret and can be manually deleted if you wish. Save it if"
echo "you wish to re-use the address of this node, as it cannot be regenerated."