#!/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}