summaryrefslogtreecommitdiff
path: root/php/dependances.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/dependances.php')
-rw-r--r--php/dependances.php100
1 files changed, 100 insertions, 0 deletions
diff --git a/php/dependances.php b/php/dependances.php
new file mode 100644
index 0000000..4a5667e
--- /dev/null
+++ b/php/dependances.php
@@ -0,0 +1,100 @@
1<?php
2// php/dependances.php
3// Vérification des dépendances nécessaires au fonctionnement de ce programmes.
4
5// Environnement dans lequel ce programmes a été créé:
6// - système archlinux avec l'interpréteur bash
7// - PHP 8.1 + paquet php-sqlite
8// - module pdo_sqlite activé dans le fichier php.ini
9// - sqlitebrowser (interface graphique pour sqlite)
10// - distribution LaTeX texlive
11// - zenity
12
13// zenity disponible
14if(exec("zenity --version 2> /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
15{
16 printf("Impossible de lancer zenity. Veuillez installer le paquet zenity\n");
17 exit();
18}
19
20// compilateur pdflatex disponible
21if(exec("pdflatex -version 2> /dev/null") == '') // erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null
22{
23 printf("Impossible de lancer pdflatex. Veuillez installer une distribution LaTeX.\n");
24 exit();
25}
26
27// test de la présence du paquet php-sqlite
28// compliqué? dépend de l'OS?
29// note: l'erreur se produit dès le démarrage de PHP si le php.ini est bon mais qu'il manque le paquet
30
31// module pdo_sqlite de PHP activé?
32if(!extension_loaded("pdo_sqlite"))
33{
34 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");
35 exit();
36}
37
38
39// client sqlite
40if($exec_mode == 'gui')
41{
42 // sqlitebrowser disponible
43 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
44 {
45 $sqlitebrowser_enable = true;
46 }
47 // terminal en mode graphique disponible, permettra d'y utiliser sqlite dans la console
48 else
49 {
50 printf("Sqlitebrowser n'est pas disponible. J'espère que vous maîtrisez le SQL.\n");
51
52 if(exec("which xterm 2> /dev/null") != '' && exec("xterm -v 2> /dev/null") != '')
53 {
54 $x_term_ccommand = 'xterm -e';
55 }
56 elseif(exec("which urxvt 2> /dev/null") != '')
57 {
58 $x_term_ccommand = 'urxvt -e';
59 }
60 elseif(exec("which lxterminal 2> /dev/null") != '' && exec("lxterminal -v 2> /dev/null") != '')
61 {
62 $x_term_ccommand = 'lxterminal -e';
63 }
64 elseif(exec("which xfce4-terminal 2> /dev/null") != '' && exec("xfce4-terminal -V 2> /dev/null") != '')
65 {
66 $x_term_ccommand = 'xfce4-terminal -x';
67 }
68 elseif(exec("which gnome-terminal 2> /dev/null") != '')
69 {
70 $x_term_ccommand = 'gnome-terminal --';
71 }
72 elseif(exec("which konsole 2> /dev/null") != '' && exec("konsole -v 2> /dev/null") != '')
73 {
74 $x_term_ccommand = 'konsole -e';
75 }
76 // pour MAC - NON TESTÉ !! (possibilité de détecter le système avec uname?)
77 //~ elseif(exec("which Terminal 2> /dev/null") != '')
78 //~ {
79 //~ $x_term_ccommand = 'open -a Terminal -e'; // ne marche probablement pas
80 //~ }
81 else
82 {
83 printf("Impossible d'ouvrir un terminal pour y lancer sqlite. Veuillez installer un terminal en mode graphique (par exemple xterm).\n");
84 }
85 }
86}
87
88// sqlite CLI disponible
89if(exec("which sqlite 2> /dev/null") != '' && exec("sqlite --version 2> /dev/null") != '')
90{
91 $sqlite_cli = 'sqlite';
92}
93elseif(exec("which sqlite3 2> /dev/null") != '' && exec("sqlite3 --version 2> /dev/null") != '')
94{
95 $sqlite_cli = 'sqlite3';
96}
97else
98{
99 printf("Impossible de lancer sqlite dans le terminal en utilisant la commande ' . $sqlite_cli . '\n");
100}