From ff14091476a35de16a9ea3208501040cfae93a06 Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 14 Dec 2022 12:55:46 +0100 Subject: MODEL + reorganisation --- src/dependances.php | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/dependances.php (limited to 'src/dependances.php') diff --git a/src/dependances.php b/src/dependances.php new file mode 100644 index 0000000..66ce414 --- /dev/null +++ b/src/dependances.php @@ -0,0 +1,100 @@ + /dev/null") === '') // commande qui n'ouvre pas de fenêtre, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null +{ + printf("Impossible de lancer zenity. Veuillez installer le paquet zenity\n"); + exit(); +} + +// compilateur pdflatex disponible +if(exec("pdflatex -version 2> /dev/null") === '') // erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null +{ + printf("Impossible de lancer pdflatex. Veuillez installer une distribution LaTeX.\n"); + exit(); +} + +// test de la présence du paquet php-sqlite +// compliqué? dépend de l'OS? +// note: l'erreur se produit dès le démarrage de PHP si le php.ini est bon mais qu'il manque le paquet + +// module pdo_sqlite de PHP activé? +if(!extension_loaded("pdo_sqlite")) +{ + printf("Impossible d'utiliser la base de données. Veuillez installer le paquet php-sqlite ET activer l'extension pdo_sqlite dans le fichier php.ini.\n"); + exit(); +} + + +// client sqlite +if($exec_mode === 'gui') +{ + // sqlitebrowser disponible + if(exec("which sqlitebrowser 2> /dev/null") !== '') // which parcourt les dossiers du PATH et affiche les chemins trouvés, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null + { + $sqlitebrowser_enable = true; + } + // terminal en mode graphique disponible, permettra d'y utiliser sqlite dans la console + else + { + printf("Sqlitebrowser n'est pas disponible. J'espère que vous maîtrisez le SQL.\n"); + + if(exec("which xterm 2> /dev/null") !== '' && exec("xterm -v 2> /dev/null") !== '') + { + $x_term_ccommand = 'xterm -e'; + } + elseif(exec("which urxvt 2> /dev/null") !== '') + { + $x_term_ccommand = 'urxvt -e'; + } + elseif(exec("which lxterminal 2> /dev/null") !== '' && exec("lxterminal -v 2> /dev/null") !== '') + { + $x_term_ccommand = 'lxterminal -e'; + } + elseif(exec("which xfce4-terminal 2> /dev/null") !== '' && exec("xfce4-terminal -V 2> /dev/null") !== '') + { + $x_term_ccommand = 'xfce4-terminal -x'; + } + elseif(exec("which gnome-terminal 2> /dev/null") !== '') + { + $x_term_ccommand = 'gnome-terminal --'; + } + elseif(exec("which konsole 2> /dev/null") !== '' && exec("konsole -v 2> /dev/null") !== '') + { + $x_term_ccommand = 'konsole -e'; + } + // pour MAC - NON TESTÉ !! (possibilité de détecter le système avec uname?) + //~ elseif(exec("which Terminal 2> /dev/null") !== '') + //~ { + //~ $x_term_ccommand = 'open -a Terminal -e'; // ne marche probablement pas + //~ } + else + { + printf("Impossible d'ouvrir un terminal pour y lancer sqlite. Veuillez installer un terminal en mode graphique (par exemple xterm).\n"); + } + } +} + +// sqlite CLI disponible +if(exec("which sqlite 2> /dev/null") !== '' && exec("sqlite --version 2> /dev/null") !== '') +{ + $sqlite_cli = 'sqlite'; +} +elseif(exec("which sqlite3 2> /dev/null") !== '' && exec("sqlite3 --version 2> /dev/null") !== '') +{ + $sqlite_cli = 'sqlite3'; +} +else +{ + printf("Impossible de lancer sqlite dans le terminal en utilisant la commande ' . $sqlite_cli . '\n"); +} -- cgit v1.2.3