30 lines
900 B
Bash
Executable File
30 lines
900 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
LABEL="com.skg.huobao-canvas.upstream-watch"
|
|
SOURCE_PLIST="$ROOT_DIR/scripts/launchd/$LABEL.plist"
|
|
INSTALL_DIR="$HOME/Library/LaunchAgents"
|
|
INSTALL_PLIST="$INSTALL_DIR/$LABEL.plist"
|
|
LAUNCHD_DOMAIN="gui/$(id -u)"
|
|
LOG_DIR="$ROOT_DIR/.logs/upstream-watch"
|
|
|
|
if [[ ! -f "$SOURCE_PLIST" ]]; then
|
|
echo "missing launchd plist: $SOURCE_PLIST" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$INSTALL_DIR" "$LOG_DIR"
|
|
cp "$SOURCE_PLIST" "$INSTALL_PLIST"
|
|
plutil -lint "$INSTALL_PLIST" >/dev/null
|
|
|
|
launchctl bootout "$LAUNCHD_DOMAIN/$LABEL" >/dev/null 2>&1 || true
|
|
launchctl bootstrap "$LAUNCHD_DOMAIN" "$INSTALL_PLIST"
|
|
launchctl kickstart -k "$LAUNCHD_DOMAIN/$LABEL"
|
|
|
|
echo "huobao-canvas upstream watch installed"
|
|
echo "label: $LABEL"
|
|
echo "schedule: daily 09:30 local time"
|
|
echo "plist: $INSTALL_PLIST"
|
|
echo "state/logs: $LOG_DIR"
|