#!/bin/sh
# San Phonebook shortcut installer
# Host this file at: https://update.sansoftwares.com/SanPhonebook/install-shortcut.sh
# Run as root (via cron/systemd timer, see bootstrap-phonebook-agent.sh).
#
# What it does:
#   1. Creates the Desktop shortcut for every existing user under /home
#   2. Also drops it into /etc/skel so any NEW AD user created later
#      gets the shortcut automatically on first login
#
# Safe to re-run repeatedly — only writes the file if missing or outdated.

set -e

PHONEBOOK_URL="https://update.sansoftwares.com/SanPhonebook/phonebook.html"
SHORTCUT_NAME="San-Phonebook.desktop"

write_shortcut() {
    target_dir="$1"
    target_file="$target_dir/$SHORTCUT_NAME"

    mkdir -p "$target_dir" 2>/dev/null || return 0

    cat > "$target_file" <<EOF
[Desktop Entry]
Version=1.0
Type=Link
Name=San Phonebook
Comment=Open the SAN company phonebook
Icon=phone
URL=$PHONEBOOK_URL
EOF
    chmod 644 "$target_file" 2>/dev/null || true
}

# --- 1. Existing users ---
for home_dir in /home/*; do
    [ -d "$home_dir" ] || continue
    user_name=$(basename "$home_dir")

    # Skip system/service accounts without a real login shell
    getent passwd "$user_name" >/dev/null 2>&1 || continue

    desktop_dir="$home_dir/Desktop"
    write_shortcut "$desktop_dir"

    # Fix ownership so the user (not root) owns their shortcut
    chown "$user_name":"$user_name" "$desktop_dir/$SHORTCUT_NAME" 2>/dev/null || true

    # Mark trusted for GNOME/Nautilus if gio is available, running as that user
    if command -v gio >/dev/null 2>&1; then
        su -s /bin/sh -c "gio set '$desktop_dir/$SHORTCUT_NAME' metadata::trusted true" "$user_name" 2>/dev/null || true
    fi
done

# --- 2. Template for future new users ---
write_shortcut "/etc/skel/Desktop"

echo "San Phonebook shortcut installed/updated: $(date)"
