added config check

This commit is contained in:
john30
2017-03-19 21:21:08 +01:00
parent e206d975d4
commit ce45e69774
2 changed files with 28 additions and 9 deletions
+4 -3
View File
@@ -1,5 +1,6 @@
#!/bin/sh #!/bin/sh
version=`head -n 1 VERSION` version=`head -n 1 ../../VERSION`
revision=`git describe --always` revision=`git describe --always`
echo "ebusd=${version}.${revision}" > versions.txt echo "ebusd=${version},${revision}" > versions.txt
#TODO add calculation for config files files=`find config/ -type f -or -type l`
../../src/lib/ebus/test/test_filereader $files|sed -e 's#^config/##' -e 's#^\([^ ]*\) #\1=#' -e 's# #,#g'|sort >> versions.txt
+24 -6
View File
@@ -1,8 +1,6 @@
<?php <?php
$agent = $_SERVER['HTTP_USER_AGENT']; $agent = $_SERVER['HTTP_USER_AGENT'];
if (substr($agent, 0, 5)==='ebusd') { if (substr($agent, 0, 5)==='ebusd') {
$t = time();
$a = $_SERVER["REMOTE_ADDR"];
$r = @file_get_contents('php://input'); $r = @file_get_contents('php://input');
$v = @file_get_contents('versions.txt'); $v = @file_get_contents('versions.txt');
$versions = array(); $versions = array();
@@ -20,17 +18,37 @@ if (substr($agent, 0, 5)==='ebusd') {
header('Content-Type: text/plain'); header('Content-Type: text/plain');
$ret = 'unknown'; $ret = 'unknown';
$r = @json_decode($r, true); $r = @json_decode($r, true);
if (!$r || !isset($r['v'])) { if (!$r || !isset($r['v']) || !isset($r['r'])) {
$ret = 'invalid request'; $ret = 'invalid request';
} else { } else {
if (isset($versions['ebusd'])) { if (isset($versions['ebusd'])) {
if ($r['v']==$versions['ebusd'][0]) { if ($r['v']==$versions['ebusd'][0] && $r['r']==$versions['ebusd'][1]) {
$ret = 'OK'; $ret = 'OK';
} else if ($r['v']==$versions['ebusd'][0]) {
$ret = 'revision '.$versions['ebusd'][1].' available';
} else { } else {
$ret = 'ebusd '.$versions['ebusd'][0].' available'; $ret = 'version '.$versions['ebusd'][0].' available';
} }
} }
// TODO add check for config files $configs = '';
$neweravail = 0;
$func = function($val, $k) {
global $versions, $configs, $neweravail;
$v = $versions[$k];
if ($v) {
$newer = $v[2]>$val['t'];
if ($newer || $v[0]!=$val['h'] || $v[1]!=$val['s']) {
if ($newer) $neweravail++;
$configs .= ', '.$k.': '.($newer?'newer':'different').' version available';
}
}
};
array_walk($r['l'], $func);
if (strlen($configs)>100) {
$ret .= ($neweravail?$neweravail.', newer ':', different').' configuration files available';
} else {
$ret .= $configs;
}
} }
echo $ret; echo $ret;
exit; exit;