Files
DanceVideos/trigger/registerApp.sh
2025-10-10 14:07:59 +02:00

47 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -eux
SCRIPTS_DIR=$(dirname `realpath ${BASH_SOURCE[0]}`)
# Arguments
SCRIPT=${1:-onAirdropDownload.sh}
if [ "$SCRIPT" = `basename $SCRIPT` ]; then
SCRIPT="${SCRIPTS_DIR}/${SCRIPT}"
fi
DISK_PATH_TO_WATCH=${2:-${HOME}/Downloads}
# create App
APP_NAME=`basename $SCRIPT | sed 's#\..*$##' | awk '{print toupper(substr($0,1,1)) substr($0,2)}'`
TEMPLATE_APP="/Applications/HelloWorldTemplate.app"
NEW_APP="/Applications/DanceVideos${APP_NAME}.app"
rm -rf "$NEW_APP"
cp -R "$TEMPLATE_APP" "$NEW_APP"
sed -i '' "s|echo hello world|bash ${SCRIPT}|g" "$NEW_APP/Contents/document.wflow"
sips -s format icns ${SCRIPTS_DIR}/icone.png --out /tmp/monIcone.icns
mv /tmp/monIcone.icns "$NEW_APP/Contents/Resources/ApplicationStub.icns"
# register trigger
PLIST_label=`tr '[:upper:]' '[:lower:]' <<< "com.user.watch_${APP_NAME}"`
PLIST_TEMPLATE_username=${USER}
PLIST_TEMPLATE_app_path=${NEW_APP}
PLIST_TEMPLATE_disk_path=${DISK_PATH_TO_WATCH}
PLIST_FILEPATH="${HOME}/Library/LaunchAgents/${PLIST_label}.plist"
launchctl unload "${PLIST_FILEPATH}" | :
touch ${PLIST_FILEPATH}
cat ${SCRIPTS_DIR}/com.user.template.plist \
| sed "s#template_label#${PLIST_label}#" \
| sed "s#template_username#${PLIST_TEMPLATE_username}#" \
| sed "s#template_app_path#${PLIST_TEMPLATE_app_path}#" \
| sed "s#template_disk_path#${PLIST_TEMPLATE_disk_path}#" \
> "${PLIST_FILEPATH}"
launchctl load "${PLIST_FILEPATH}"
# launchctl list | grep watch_
launchctl start ${PLIST_label}