#!/bin/bash
### Vérification de l'utilisateur root
if [ "$EUID" -ne 0 ]; then
    echo "Erreur : le script ne peut être lancé que par l'utilisateur root. Relancez-le avec root (commande : sudo -s)."
    exit 1
fi

### Configuration
# Version de l'agent à installer
AGENT_VERSION="1.7"
SERVER_ENDPOINT_URL="https://glpi.involv.fr"


### Détection de l'architecture
ARCHITECTURE=$(uname -m)
case $ARCHITECTURE in
    "arm64" )
        AGENT_PKG_SUFFIX="arm64.pkg"
        ;;
    "x86_64" )
        AGENT_PKG_SUFFIX="x86_64.pkg"
        ;;
    * )
        echo "Architecture non supportée: $ARCHITECTURE"
        exit 1
        ;;
esac

### Récupération du tag
read -p "Veuillez entrer le code client (3 caractères alphanumériques en majuscules): " TAG
if ! [[ "$TAG" =~ ^[A-Z0-9]{3}$ ]]; then
    echo "Le tag doit être de 3 caractères alphanumériques en majuscules."
    exit 1
fi

### Récupération installateur et installation
agent_pkg_url="https://github.com/glpi-project/glpi-agent/releases/download/${AGENT_VERSION}/GLPI-Agent-${AGENT_VERSION}_${AGENT_PKG_SUFFIX}"

cd "$(mktemp -d)"
curl -L --output glpi_agent.pkg "${agent_pkg_url}"
installer -pkg ./glpi_agent.pkg -target /Applications

rm glpi_agent.pkg
cd - > /dev/null
rmdir "${OLDPWD}"

### Configuration de l'agent
touch  /applications/GLPI-agent/etc/conf.d
cat > /Applications/GLPI-Agent/etc/conf.d/local.cfg <<EOT
server = ${SERVER_ENDPOINT_URL}
tag = $TAG
delaytime = 1440
EOT


### Première exécution et inventaire

#forcer le premier inventaire
/Applications/GLPI-Agent/bin/glpi-agent --no-fork
# Lancement service (mode "Managed")
# (faire un "launchctl stop …" au préalable si mise à jour depuis ancienne version)
launchctl start org.glpi-project.glpi-agent

# Demande d'inventaire
pkill -USR1 -f -P 1 glpi-agent

# Vérification prise en compte demande (facultatif)
ps aux | grep 'glp[i]'
### Première exécution et inventaire (mode "Managed")
