#!/bin/bash # Install telegram bot as a macOS launchd service (auto-start on boot) set -e BOT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$BOT_DIR")" BUN_PATH="$(which bun)" PLIST_NAME="com.cr.telegram-bot" PLIST_PATH="$HOME/Library/LaunchAgents/${PLIST_NAME}.plist" if [ -z "$BUN_PATH" ]; then echo "❌ bun not found in PATH" exit 1 fi if [ ! -f "$PROJECT_DIR/.env" ]; then echo "❌ .env not found at $PROJECT_DIR/.env" exit 1 fi # Unload if already installed launchctl unload "$PLIST_PATH" 2>/dev/null || true cat > "$PLIST_PATH" < Label ${PLIST_NAME} ProgramArguments /bin/bash -c set -a; source ${PROJECT_DIR}/.env; set +a; exec ${BUN_PATH} run ${BOT_DIR}/index.ts WorkingDirectory ${BOT_DIR} RunAtLoad KeepAlive StandardOutPath ${BOT_DIR}/bot.log StandardErrorPath ${BOT_DIR}/bot.err EOF launchctl load "$PLIST_PATH" echo "✅ Installed and started: ${PLIST_NAME}" echo " Logs: ${BOT_DIR}/bot.log" echo " Stop: launchctl unload ${PLIST_PATH}"