mirror of https://github.com/oxen-io/lokinet
MacOS installer / runtime nonsense
parent
c2fbc28bbf
commit
e80f20ecb8
@ -1,4 +1,10 @@
|
||||
# macos specific cpack stuff goes here
|
||||
|
||||
# copy files that will be later moved by the postinstall script to proper locations
|
||||
install(FILES ${CMAKE_SOURCE_DIR}/contrib/macos/lokinet_macos_daemon_script.sh
|
||||
${CMAKE_SOURCE_DIR}/contrib/macos/network.loki.lokinet.daemon.plist
|
||||
DESTINATION "extra/")
|
||||
|
||||
set(CPACK_GENERATOR "productbuild")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
|
||||
set(CPACK_POSTFLIGHT_LOKINET_SCRIPT ${CMAKE_SOURCE_DIR}/contrib/macos/postinstall)
|
||||
|
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
scutil_query()
|
||||
{
|
||||
key=$1
|
||||
|
||||
scutil<<EOT
|
||||
open
|
||||
get $key
|
||||
d.show
|
||||
close
|
||||
EOT
|
||||
}
|
||||
|
||||
SERVICE_GUID=`scutil_query State:/Network/Global/IPv4 \
|
||||
| grep "PrimaryService" \
|
||||
| awk '{print $3}'`
|
||||
|
||||
SERVICE_NAME=`scutil_query Setup:/Network/Service/$SERVICE_GUID \
|
||||
| grep "UserDefinedName" \
|
||||
| awk -F': ' '{print $2}'`
|
||||
|
||||
OLD_SERVERS="$(networksetup -getdnsservers "$SERVICE_NAME" \
|
||||
| tr '\n' ' ' \
|
||||
| sed 's/ $//')"
|
||||
|
||||
networksetup -setdnsservers "$SERVICE_NAME" 127.0.0.1
|
||||
|
||||
/usr/local/bin/lokinet /var/lib/lokinet/lokinet.ini
|
||||
|
||||
networksetup -setdnsservers "$SERVICE_NAME" $OLD_SERVERS
|
||||
|
@ -1,10 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
PERMS_OWNER=root
|
||||
PERMS_GROUP=admin
|
||||
CHOWN=$PERMS_OWNER:$PERMS_GROUP
|
||||
|
||||
# set up lokinet data dir
|
||||
[ -e /var/lib/lokinet/ ] || mkdir /var/lib/lokinet
|
||||
chown $CHOWN /var/lib/lokinet
|
||||
chmod g+w /var/lib/lokinet
|
||||
|
||||
# mv files copied into $INSTALL_PREFIX/extra/ to their proper locations
|
||||
mv /usr/local/extra/lokinet_macos_daemon_script.sh /var/lib/lokinet
|
||||
chown $CHOWN /var/lib/lokinet/lokinet_macos_daemon_script.sh
|
||||
chmod 770 /var/lib/lokinet/lokinet_macos_daemon_script.sh
|
||||
|
||||
mv /usr/local/extra/network.loki.lokinet.daemon.plist /Library/LaunchDaemons/
|
||||
chown $CHOWN /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
chmod 640 /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
|
||||
# clean up by removing 'extra/' (so long as it's empty)
|
||||
rmdir /usr/local/extra/
|
||||
|
||||
# bootstrap
|
||||
/usr/local/bin/lokinet-bootstrap mainnet /var/lib/lokinet/bootstrap.signed
|
||||
chown $CHOWN /var/lib/lokinet/bootstrap.signed
|
||||
|
||||
# generate configs
|
||||
/usr/local/bin/lokinet -g /var/lib/lokinet/lokinet.ini
|
||||
# register with launchd
|
||||
chown $CHOWN /var/lib/lokinet/lokinet.ini
|
||||
|
||||
# register with launchd and start
|
||||
launchctl load /Library/LaunchDaemons/network.loki.lokinet.daemon.plist
|
||||
launchctl start network.loki.lokinet.daemon
|
||||
|
Loading…
Reference in New Issue