#!/bin/bash
set -euo pipefail
echo "You understand that OCCT Personal cannot be used in a commercial or business environment. In that context, a Pro, Enterprise or Enterprise+ license is required."
# Ne pas installer dans /root par erreur.
if [[ $EUID -eq 0 ]]; then
echo "Erreur : ne lancez pas ce script avec sudo ou en root." >&2
exit 1
fi
# --- Configuration des chemins ---
# répertoires
APP_DIR="$HOME/OCbase"
ICON_DIR="$APP_DIR"
ICON_FILE="$ICON_DIR/occt.svg"
APP_EXE="$APP_DIR/OCCT"
# Répertoire standard des lanceurs utilisateur
DESKTOP_DIR="$HOME/.local/share/applications"
# URL de téléchargement
URL_BIN="https://www.ocbase.com/download/edition:Personal/os:Linux"
URL_ICON="https://www.ocbase.com/images/occt/logomark.occt.svg"
if ! command -v wget >/dev/null 2>&1; then
echo "Erreur : wget est requis." >&2
exit 1
fi
echo "==> Préparation des répertoires..."
mkdir -p -- "$APP_DIR" "$DESKTOP_DIR"
# Utilisation d'un dossier temporaire sécurisé
TMP_DIR="$(mktemp -d)"
trap 'rm -rf -- "$TMP_DIR"' EXIT INT TERM
echo "==> Téléchargement d'OCCT et de son icône..."
wget -q --show-progress -O "$TMP_DIR/OCCT" "$URL_BIN"
wget -q --show-progress -O "$TMP_DIR/occt.svg" "$URL_ICON"
# Vérification minimale : évite l'installation d'un fichier vide.
if [[ ! -s "$TMP_DIR/OCCT" || ! -s "$TMP_DIR/occt.svg" ]]; then
echo "Erreur : téléchargement invalide ou incomplet." >&2
exit 1
fi
#vérification du type d fichier
if [[ "$(head -c 4 "$TMP_DIR/OCCT" | od -An -tx1 | tr -d '[:space:]')" != "7f454c46" ]]; then
echo "Erreur : le fichier téléchargé ne semble pas être un binaire ELF Linux." >&2
exit 1
fi
echo "==> Installation des fichiers..."
install -Dm755 "$TMP_DIR/OCCT" "$APP_EXE"
install -Dm644 "$TMP_DIR/occt.svg" "$ICON_FILE"
echo "==> Génération des raccourcis d'application (.desktop)..."
echo "==> Création du lanceur normal..."
# 1. Lanceur Standard
cat <<EOF > "$DESKTOP_DIR/occt.desktop"
[Desktop Entry]
Name=OCCT
GenericName=OverClock Checking Tool
Comment=Outil de stress test et diagnostique matériel
Exec="$APP_EXE"
Path=$APP_DIR
Icon=$ICON_FILE
Terminal=false
Type=Application
Categories=System;Utility;
Keywords=stress;test;benchmarking;monitoring;
StartupNotify=true
EOF
echo "==> Création du lanceur administrateur..."
# 2. Lanceur Administrateur
echo "Le lanceur administrateur se fera via la commande sudo dans un terminal texte, qui restera affiché durant la session admin de occt."
cat > "$DESKTOP_DIR/occt-admin.desktop" <<EOF
[Desktop Entry]
Name=OCCT (Admin)
GenericName=OverClock Checking Tool
Comment=Outil de stress test et de diagnostic matériel
Exec=sudo "$APP_EXE"
Path=$APP_DIR
Icon=$ICON_FILE
Terminal=true
Type=Application
Categories=System;Utility;
Keywords=stress;test;benchmark;benchmarking;monitoring;
StartupNotify=true
EOF
chmod 0644 -- \
"$DESKTOP_DIR/occt.desktop" \
"$DESKTOP_DIR/occt-admin.desktop"
echo "==> Installation terminée."
echo " Lancez OCCT depuis le menu ou via : $APP_EXE"
echo " Le premier lancement en mode utilisateur normal permet de créer"
echo " les fichiers de configuration sans droits root."
echo " Note : en mode Admin, les logs créés appartiendront à root."
echo " En cas de souci d'écriture : sudo chown -R \"\$USER\" \"$APP_DIR\""
|