#!/usr/bin/env bash
# ==============================================================================
# Task Scheduler — 1-Click Desktop App Installer for Linux
# Zero root/sudo required. Installs cleanly to user space and creates shortcuts.
# ==============================================================================

set -e

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
APP_DIR="$HOME/.local/share/task-scheduler"
BIN_DIR="$HOME/.local/bin"
DESKTOP_DIR="$HOME/Desktop"
APPS_DIR="$HOME/.local/share/applications"
ICON_DIR="$HOME/.local/share/icons/hicolor/scalable/apps"

echo "======================================================="
echo " 🚀 Installing Task Scheduler Desktop App..."
echo "======================================================="

# 1. Create target directories
mkdir -p "$APP_DIR" "$BIN_DIR" "$APPS_DIR" "$ICON_DIR"

# 2. Copy application bundle and microserver
cp -r "$DIR/../../task-scheduler-app/desktop-runner/dist" "$APP_DIR/"
cp "$DIR/../../task-scheduler-app/desktop-runner/server.js" "$APP_DIR/"

# 3. Create launcher script in ~/.local/bin
cat << 'EOF' > "$BIN_DIR/task-scheduler"
#!/usr/bin/env bash
exec /usr/bin/node "$HOME/.local/share/task-scheduler/server.js" "$@"
EOF
chmod +x "$BIN_DIR/task-scheduler"

# 4. Install desktop app icon
if [ -f "$DIR/../../assets/img/favicon.svg" ]; then
    cp "$DIR/../../assets/img/favicon.svg" "$ICON_DIR/task-scheduler.svg"
fi

# 5. Create Desktop Menu Entry (~/.local/share/applications/task-scheduler.desktop)
cat << EOF > "$APPS_DIR/task-scheduler.desktop"
[Desktop Entry]
Version=1.0
Type=Application
Name=Task Scheduler
GenericName=Study Planner & Task Scheduler
Comment=Track study sessions, streaks, and deadlines with real-time timer
Exec=$BIN_DIR/task-scheduler
Icon=task-scheduler
Terminal=false
Categories=Office;Education;Utility;
StartupWMClass=task-scheduler
Keywords=task;study;timer;planner;student;
EOF
chmod +x "$APPS_DIR/task-scheduler.desktop"

# 6. Create Desktop Shortcut on user's Desktop (if Desktop directory exists)
if [ -d "$DESKTOP_DIR" ]; then
    cp "$APPS_DIR/task-scheduler.desktop" "$DESKTOP_DIR/Task Scheduler.desktop"
    chmod +x "$DESKTOP_DIR/Task Scheduler.desktop"
    echo "✅ Desktop shortcut created: $DESKTOP_DIR/Task Scheduler.desktop"
fi

# 7. Update desktop database if utility exists
if command -v update-desktop-database &> /dev/null; then
    update-desktop-database "$APPS_DIR" 2>/dev/null || true
fi

echo "======================================================="
echo "🎉 TASK SCHEDULER INSTALLED SUCCESSFULLY!"
echo "  • Installed at:     $APP_DIR"
echo "  • Command:          $BIN_DIR/task-scheduler"
echo "  • Desktop Shortcut: $DESKTOP_DIR/Task Scheduler.desktop"
echo "======================================================="

# Launch the app immediately for the user
echo "🚀 Launching Task Scheduler now..."
nohup "$BIN_DIR/task-scheduler" >/dev/null 2>&1 &
echo "App is now running!"
