diff options
Diffstat (limited to 'src/dependances.php')
-rw-r--r-- | src/dependances.php | 100 |
1 files changed, 100 insertions, 0 deletions
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 @@ | |||
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 | ||
14 | if(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 | ||
21 | if(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é? | ||
32 | if(!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 | ||
40 | if($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 | ||
89 | if(exec("which sqlite 2> /dev/null") !== '' && exec("sqlite --version 2> /dev/null") !== '') | ||
90 | { | ||
91 | $sqlite_cli = 'sqlite'; | ||
92 | } | ||
93 | elseif(exec("which sqlite3 2> /dev/null") !== '' && exec("sqlite3 --version 2> /dev/null") !== '') | ||
94 | { | ||
95 | $sqlite_cli = 'sqlite3'; | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | printf("Impossible de lancer sqlite dans le terminal en utilisant la commande ' . $sqlite_cli . '\n"); | ||
100 | } | ||