#!/bin/bash
set -euo pipefail
fail() { echo "Micro-System : $*" >&2; exit 1; }
[[ "${3:-/}" == / ]] || fail 'Choisissez le disque de démarrage du Mac.'
[[ $(id -u) == 0 ]] || fail 'Les droits administrateur sont nécessaires.'
ms_user=$(stat -f '%Su' /dev/console)
[[ "$ms_user" != root && "$ms_user" != loginwindow && "$ms_user" != _mbsetupuser ]] || fail 'Ouvrez une session utilisateur sur le Mac avant cette installation.'
# Do not stop a running assistance session or modify a live preferences file.
if pgrep -x RustDesk >/dev/null; then
    fail 'RustDesk est en cours d’exécution. Quittez RustDesk et arrêtez son service depuis ses réglages, puis relancez cet installateur.'
fi
if [[ -e /Applications/RustDesk.app ]]; then
    [[ ! -L /Applications/RustDesk.app ]] || fail 'Le dossier Applications contient un lien symbolique RustDesk.'
    ms_version=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/RustDesk.app/Contents/Info.plist)
    /usr/bin/perl -e 'my @v=split /\./,$ARGV[0];my @max=(1,4,9);for(0..2){exit 1 if ($v[$_]//0)>$max[$_];exit 0 if ($v[$_]//0)<$max[$_]}' "$ms_version" || fail 'Une version de RustDesk plus récente est installée. Elle a été conservée ; contactez Micro-System pour la raccorder.'
fi
# No settings have been changed by these preflight checks.
