on Airdrop Download trigger
This commit is contained in:
47
trigger/registerApp.sh
Executable file
47
trigger/registerApp.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/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}
|
||||
Reference in New Issue
Block a user