summaryrefslogtreecommitdiff
path: root/api/gen_conf.php
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2016-03-12 15:40:43 +0100
committerLudovic Pouzenc <ludovic@pouzenc.fr>2016-03-12 15:40:43 +0100
commit82c54972d7cbfd48d325dacc005471b2a8137134 (patch)
tree7a58575b7211e99bfddf398bc2f6807b7546d5c5 /api/gen_conf.php
parentb2c7b3f2d325d8ad52eaa35c558c00088618381b (diff)
downloadchd_gestion-82c54972d7cbfd48d325dacc005471b2a8137134.zip
chd_gestion-82c54972d7cbfd48d325dacc005471b2a8137134.tar.gz
chd_gestion-82c54972d7cbfd48d325dacc005471b2a8137134.tar.bz2
Initial import for API part.
Diffstat (limited to 'api/gen_conf.php')
-rw-r--r--api/gen_conf.php72
1 files changed, 72 insertions, 0 deletions
diff --git a/api/gen_conf.php b/api/gen_conf.php
new file mode 100644
index 0000000..ac910ce
--- /dev/null
+++ b/api/gen_conf.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright 2016 Ludovic Pouzenc <ludovic@pouzenc.fr>
+ * Copyright 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+ *
+ * This file is part of CHD Gestion.
+ *
+ * CHD Gestion is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * CHD Gestion is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with CHD Gestion. If not, see <http://www.gnu.org/licenses/>.
+**/
+
+include_once('inc/config.php');
+$mysqli = new mysqli($db_config['host'], $db_config['username'], $db_config['password'], $db_config['database']);
+unset($db_config);
+$mysqli->query("SET NAMES 'utf8'");
+
+
+$descriptorspec = array(
+ 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
+ 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
+ 2 => array("pipe", "w")
+);
+$pipes=array();
+$proc = proc_open('ssh -p2222 genconf@chd-stg1 sudo genconf_prod', $descriptorspec, $pipes, '/tmp');
+if (!is_resource($proc)) die("Pb ouverture ssh");
+$fd=$pipes[0];
+
+fwrite($fd, "# This is auto-generated from database (see v_api_gen_conf VIEW)\n");
+
+$res = $mysqli->query("SELECT * FROM v_api_gen_conf;");
+
+$meta = $res->fetch_fields();
+if ( $meta !== FALSE ) {
+ fwrite($fd, '# ');
+ foreach ( $meta as $v) {
+ fwrite($fd, $v->name."\t");
+ }
+ fwrite($fd, "\n");
+}
+
+while ( $row = $res->fetch_assoc() ) {
+ foreach ( $row as $v ) {
+ fwrite($fd, ($v==NULL?"-":$v)."\t" );
+ }
+ fwrite($fd, "\n");
+}
+
+fclose($fd);
+
+$out_data = stream_get_contents($pipes[1]);
+fclose($pipes[1]);
+$err_data = stream_get_contents($pipes[2]);
+fclose($pipes[2]);
+$return_value = proc_close($proc);
+
+echo "<pre>\n";
+if ( $return_value !== 0 || strlen($err_data) !== 0 ) {
+ echo $err_data;
+} else {
+ echo $out_data;
+}
+