mirror of https://github.com/oxen-io/lokinet
update packaging for macos add preinstall script that nukes any existing lokinet make uninstaller revert dns to "empty" make cpack use preinstall script in pkg file
This commit is contained in:
parent
384b968cf0
commit
0afe9f0138
|
@ -58,6 +58,7 @@ set(CPACK_COMPONENT_GUI_DESCRIPTION "Small GUI which provides stats and limited
|
|||
|
||||
set(CPACK_GENERATOR "productbuild")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/lokinet")
|
||||
set(CPACK_PREFLIGHT_LOKINET_SCRIPT ${CMAKE_SOURCE_DIR}/contrib/macos/preinstall)
|
||||
set(CPACK_POSTFLIGHT_LOKINET_SCRIPT ${CMAKE_SOURCE_DIR}/contrib/macos/postinstall)
|
||||
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
|
||||
|
|
|
@ -1,10 +1,44 @@
|
|||
#!/bin/sh
|
||||
|
||||
touch /var/lib/lokinet/suspend-launchd-service # Prevent restarting on exit
|
||||
killall lokinet
|
||||
sleep 5 # Give it some time to shut down before we bring launchd into this
|
||||
launchctl stop network.loki.lokinet.daemon
|
||||
launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
# this is for dns tomfoolery
|
||||
scutil_query()
|
||||
{
|
||||
key=$1
|
||||
|
||||
scutil<<EOT
|
||||
open
|
||||
get $key
|
||||
d.show
|
||||
close
|
||||
EOT
|
||||
}
|
||||
|
||||
# get guid for service
|
||||
SERVICE_GUID=`scutil_query State:/Network/Global/IPv4 \
|
||||
| grep "PrimaryService" \
|
||||
| awk '{print $3}'`
|
||||
|
||||
# get name of network service
|
||||
SERVICE_NAME=`scutil_query Setup:/Network/Service/$SERVICE_GUID \
|
||||
| grep "UserDefinedName" \
|
||||
| awk -F': ' '{print $2}'`
|
||||
|
||||
# tell dns to be "empty" so that it's reset
|
||||
networksetup -setdnsservers "$SERVICE_NAME" empty
|
||||
|
||||
# Prevent restarting on exit
|
||||
[ -e /var/lib/lokinet ] && touch /var/lib/lokinet/suspend-launchd-service
|
||||
# kill it
|
||||
killall lokinet || true
|
||||
# Give it some time to shut down before we bring launchd into this
|
||||
sleep 2
|
||||
# make sure it's dead
|
||||
killall -9 lokinet || true
|
||||
# if the launch daemon is there kill it
|
||||
[ -e /Library/LaunchDaemons/network.loki.lokinet.daemon.plist ] && (
|
||||
launchctl stop network.loki.lokinet.daemon ;
|
||||
launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
)
|
||||
|
||||
rm -rf /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
rm -rf /Applications/LokinetGUI.app
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
# this is for dns tomfoolery
|
||||
scutil_query()
|
||||
{
|
||||
key=$1
|
||||
|
||||
scutil<<EOT
|
||||
open
|
||||
get $key
|
||||
d.show
|
||||
close
|
||||
EOT
|
||||
}
|
||||
|
||||
# get guid for service
|
||||
SERVICE_GUID=`scutil_query State:/Network/Global/IPv4 \
|
||||
| grep "PrimaryService" \
|
||||
| awk '{print $3}'`
|
||||
|
||||
# get name of network service
|
||||
SERVICE_NAME=`scutil_query Setup:/Network/Service/$SERVICE_GUID \
|
||||
| grep "UserDefinedName" \
|
||||
| awk -F': ' '{print $2}'`
|
||||
|
||||
# tell dns to be "empty" so that it's reset
|
||||
networksetup -setdnsservers "$SERVICE_NAME" empty
|
||||
# suspend existing lokinet if it's there
|
||||
[ -e /var/lib/lokinet ] && touch /var/lib/lokinet/suspend-launchd-service
|
||||
# kill it
|
||||
killall lokinet || true
|
||||
# wait a sec
|
||||
sleep 1
|
||||
# make sure it's fucking dead
|
||||
killall -9 lokinet || true
|
||||
|
||||
# check for prexisting lokinet and kill it if it's there
|
||||
[ -e /Library/LaunchDaemons/network.loki.lokinet.daemon.plist ] && (
|
||||
launchctl stop network.loki.lokinet.daemon ;
|
||||
launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist ;
|
||||
rm -rf /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
)
|
||||
|
||||
# clear out the install dir beforehand
|
||||
rm -rf /opt/lokinet
|
Loading…
Reference in New Issue