
* Add uninstall option and output pkg Improve installer mode detection Fix macOS installer packaging Fix default selection for uninstall choice Remove obsolete tar handling and clean script copies * Improve macOS build script * fix: update macos firewall and package scripts for better compatibility and cleanup * Add DeveloperID certificate and improve macOS signing script Use keychain option for codesign and restore login keychain to list after signing * Update build_macos.sh * feat: add script to quit GUI application during uninstall on macos * fix: handle macos post-install when app is unpacked into localized folder * fix: improve post_install script to handle missing service plist and provide error logging
48 lines
1.5 KiB
Bash
Executable file
48 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
APP_NAME=AmneziaVPN
|
|
PLIST_NAME=$APP_NAME.plist
|
|
LAUNCH_DAEMONS_PLIST_NAME=/Library/LaunchDaemons/$PLIST_NAME
|
|
LOG_FOLDER=/var/log/$APP_NAME
|
|
LOG_FILE="$LOG_FOLDER/post-install.log"
|
|
APP_PATH=/Applications/$APP_NAME.app
|
|
|
|
# Handle new installations unpacked into localized folder
|
|
if [ -d "/Applications/${APP_NAME}.localized" ]; then
|
|
echo "`date` Detected ${APP_NAME}.localized, migrating to standard path" >> $LOG_FILE
|
|
sudo rm -rf "$APP_PATH"
|
|
sudo mv "/Applications/${APP_NAME}.localized/${APP_NAME}.app" "$APP_PATH"
|
|
sudo rm -rf "/Applications/${APP_NAME}.localized"
|
|
fi
|
|
|
|
if launchctl list "$APP_NAME-service" &> /dev/null; then
|
|
launchctl unload "$LAUNCH_DAEMONS_PLIST_NAME"
|
|
rm -f "$LAUNCH_DAEMONS_PLIST_NAME"
|
|
fi
|
|
|
|
sudo chmod -R a-w "$APP_PATH/"
|
|
sudo chown -R root "$APP_PATH/"
|
|
sudo chgrp -R wheel "$APP_PATH/"
|
|
|
|
rm -rf $LOG_FOLDER
|
|
mkdir -p $LOG_FOLDER
|
|
|
|
echo "`date` Script started" > $LOG_FILE
|
|
|
|
echo "Requesting ${APP_NAME} to quit gracefully" >> "$LOG_FILE"
|
|
osascript -e 'tell application "AmneziaVPN" to quit'
|
|
|
|
PLIST_SOURCE="$APP_PATH/Contents/Resources/$PLIST_NAME"
|
|
if [ -f "$PLIST_SOURCE" ]; then
|
|
mv -f "$PLIST_SOURCE" "$LAUNCH_DAEMONS_PLIST_NAME" 2>> $LOG_FILE
|
|
else
|
|
echo "`date` ERROR: service plist not found at $PLIST_SOURCE" >> $LOG_FILE
|
|
fi
|
|
|
|
chown root:wheel "$LAUNCH_DAEMONS_PLIST_NAME"
|
|
launchctl load "$LAUNCH_DAEMONS_PLIST_NAME"
|
|
echo "`date` Launching ${APP_NAME} application" >> $LOG_FILE
|
|
open -a "$APP_PATH" 2>> $LOG_FILE || true
|
|
|
|
echo "`date` Service status: $?" >> $LOG_FILE
|
|
echo "`date` Script finished" >> $LOG_FILE
|