#!/usr/bin/php
<?php
 $allcfg = array( 'system' => array( 'hosts' => array(), ), 'bukwserver' => array( 'pserver' => array(), 'payterm' => array(), ), 'bukts' => array( 'kassa' => array(), 'arcus' => array(), 'cachcode' => array(), 'pplus' => array(), 'expos' => array(), 'reader' => array(), 'level' => array(), 'it' => array(), 'buk' => array(), 'cdisplay' => array(), 'pdisplay' => array(), 'wplaces' => array(), 'pserver' => array(), ), );
$allcfg2write = array( 'system' => array( 'hosts' => array( 'bukserver' => false, ), ), 'bukwserver' => array( 'pserver' => array( 'placenum' => false, 'siebel_terminal_id' => false, 'pumps' => '', 'host' => 'bukserver', 'placetyp' => 5, 'home_page' => 'payterm', ), 'payterm' => array( 'payments' => 'card,wcard', 'siebel' => 'on', 'paymode' => 'pauth', 'slideshow_delay' => 10, 'languages' => 'ru', 'syspwdk' => '1111', 'syspwda' => '9999', 'timeout0' => 5, 'timeout1' => 45, 'timeout2' => 120, 'scaner_id' => '040b:6543', ), ), 'bukts' => array( 'kassa' => array( 'com' => '/dev/ttyS0', 'speed' => false, 'typ' => 11, 'ver' => 6, 'alg' => 3, 'tax' => '0,5,4', ), 'arcus' => array( 'com' => false, 'eth_port' =>false, 'ver' => 9, 'par' => 1, 'host' => 'bukserver', 'pwd' => false, ), 'cachcode' => array( 'com' => false, 'banknotes' => false, 'typ' => 1, 'speed' => 9600, 'com_bits' => 7, 'com_parity' => 2, 'com_stops' => 1, 'pwd' => false, ), ), );
$cfg = array( 'host' => array( 'name' => 'IP-адрес сервера', 'isip' => true, ), 'placenum' => array( 'name' => 'Номер рабочего места ТСО', 'min' => 1, 'max' => 16, ), 'pwd' => array( 'name' => 'Пароль USB-ключа', ), 'kassa_speed' => array( 'name' => "Скорость обмена данными с кассой ПРИМ", ), 'is_arcus_com' => array( 'name' => "Терминал Аркус подключен через USB", 'yesno' => true, ), 'eth_port' => array( 'name' => "Порт для ArcusIP (ETH_PORT)", 'dependInv' => 'is_arcus_com', ), 'ispcard' => array( 'name' => 'Принимать оплату банковской картой', 'yesno' => true, ), 'iswcard' => array( 'name' => 'Принимать оплату топливной картой', 'yesno' => true, ), 'isnal' => array( 'name' => 'Принимать оплату наличными', 'yesno' => true, ), 'cachcode_com' => array( 'name' => 'СОМ-порт купюроприемника', 'istxt' => true, 'depend' => 'isnal', ), 'is5000' => array( 'name' => 'Принимать купюры 5000 руб', 'yesno' => true, 'depend' => 'isnal', ), 'issiebel' => array( 'name' => 'Принимать карты Siebel/КЧ', 'yesno' => true, ), 'siebel_terminal_id' => array( 'name' => 'ID терминала для Siebel', 'istxt' => true, 'depend' => 'issiebel', ), 'isallpumps' => array( 'name' => 'Управлять всеми ТРК', 'yesno' => true, ), 'pumps' => array( 'name' => 'Список подключенных ТРК', 'istxt' => true, 'dependInv' => 'isallpumps', ), );
function init_cfg_by_default($cfg, $allcfg) { if (!empty($allcfg['system']['hosts']['bukserver'])) { $bukserver = $allcfg['system']['hosts']['bukserver'];
$cfg['host']['val'] = ($bukserver == '127.0.0.1') ? 'localhost' : $bukserver;
}
if (!empty($allcfg['bukwserver']['pserver']['placenum'])) { $cfg['placenum']['val'] = $allcfg['bukwserver']['pserver']['placenum'];
}
if (!empty($allcfg['bukwserver']['payterm']['payments'])) { $a = explode(',', $allcfg['bukwserver']['payterm']['payments']);
$cfg['ispcard']['val'] = in_array('card', $a) ? 'yes' : 'no';
$cfg['iswcard']['val'] = in_array('wcard', $a) ? 'yes' : 'no';
}
if (!empty($allcfg['bukwserver']['payterm']['siebel'])) { $cfg['issiebel']['val'] = $allcfg['bukwserver']['payterm']['siebel'] == 'on' ? 'yes' : 'no';
}
if (!empty($allcfg['bukwserver']['pserver']['siebel_terminal_id'])) { $cfg['siebel_terminal_id']['val'] = $allcfg['bukwserver']['pserver']['siebel_terminal_id'];
}
if (!empty($allcfg['bukts']['cachcode']['com'])) { $cfg['isnal']['val'] = in_array('wcard', $a) ? 'yes' : 'no';
$cfg['cachcode_com']['val'] = $allcfg['bukts']['cachcode']['com'];
}
if (!empty($allcfg['bukts']['cachcode']['pwd'])) { $cfg['pwd']['val'] = $allcfg['bukts']['cachcode']['pwd'];
}
if (!empty($allcfg['bukts']['cachcode']['banknotes'])) { $cfg['is5000']['val'] = strstr($allcfg['bukts']['cachcode']['banknotes'],'5000') !== false ? 'yes' : 'no';
}
if (!empty($allcfg['bukts']['arcus']['com'])) { $cfg['is_arcus_com']['val'] = $allcfg['bukts']['arcus']['com'] == 'localhost' ? 'no' : 'yes';
}
if (!empty($allcfg['bukts']['arcus']['eth_port'])) { $cfg['eth_port']['val'] = $allcfg['bukts']['arcus']['eth_port'];
}
if (!empty($allcfg['bukts']['kassa']['speed'])) { $cfg['kassa_speed']['val'] = $allcfg['bukts']['kassa']['speed'];
}
$cfg['isallpumps']['val'] = empty($allcfg['bukwserver']['pserver']['pumps']) ? 'yes' : 'no';
$cfg['pumps']['val'] = $allcfg['bukwserver']['pserver']['pumps'];
return $cfg;
}
$ops_ow = array( 1 => "1=1,43,ПРЕДАВТОРИЗАЦИЯ\n" ."2=5,6,ОТМЕНА ПОСЛ.\n" ."3=1,4,ВОЗВРАТ\n" ."4=1,5,УНИВЕРСАЛЬНАЯ ОТМЕНА\n" ."7=1,3,ПРЕАВТОРИЗАЦИЯ\n" ."8=5,44,ЗАВЕРШЕНИЕ РАСЧЕТА\n" ."13=2,1,СВЕРКА ИТОГОВ\n" ."15=1,5,ОТМЕНА\n" ."17=2,0,ПОЛНЫЙ ЖУРНАЛ\n" ."18=2,10,КРАТКИЙ ОТЧЕТ\n" ."55=9,8,ЧТЕНИЕ КАРТЫ (HOLD CHIP)\n" ."60=2,27,ПЕЧАТЬ ДУБЛИКАТА ПОСЛЕДНЕНО ЧЕКА\n" ."61=2,14,ПЕЧАТЬ ДУБЛИКАТА ЧЕКА NNN\n" ."84=1,84,DLSDBN\n" ."85=1,85,DLSDB\n" ."86=1,86,DLSRBN\n" ."87=1,87,DLSRB\n" ."88=1,88,DLSBB\n" ."96=2,18, ТЕСТ СВЯЗИ EXCHANGE\n" ."98=2,2,МЕНЮ КАССИРА\n" ."99=3,5,МЕНЮ АДМИНИСТРАТОРА\n" ."100=3,4,СЕССИЯ ТМС\n" ."203=2,21,ИНФО ТЕРМИНАЛА\n" , 2 => "1=1,1,ОПЛАТА ТОВАРА\n" ."2=5,6,ОТМЕНА ПОСЛ.\n" ."3=5,5,ВОЗВРАТ\n" ."4=5,5,УНИВЕРСАЛЬНАЯ ОТМЕНА\n" ."7=1,3,ПРЕАВТОРИЗАЦИЯ\n" ."8=1,4,ЗАВЕРШЕНИЕ РАСЧЕТА\n" ."13=2,1,СВЕРКА ИТОГОВ\n" ."15=5,6,ОТМЕНА\n" ."17=2,0,ПОЛНЫЙ ЖУРНАЛ\n" ."18=2,10,КРАТКИЙ ОТЧЕТ\n" ."60=2,27,ПЕЧАТЬ ДУБЛИКАТА ПОСЛЕДНЕНО ЧЕКА\n" ."61=2,14,ПЕЧАТЬ ДУБЛИКАТА ЧЕКА NNN\n" ."96=2,18, ТЕСТ СВЯЗИ EXCHANGE\n" ."98=2,2,МЕНЮ КАССИРА\n" ."99=3,5,МЕНЮ АДМИНИСТРАТОРА\n" ."100=3,4,СЕССИЯ ТМС\n" ."203=2,21,ИНФО ТЕРМИНАЛА\n" , );
function hosts_get($name) { $val = false;
$s = file_get_contents('/etc/hosts');
foreach (explode("\n",$s) as $line) { if (empty($line)) continue;
$l = trim($line);
if (empty($l) || $l[0] == '#') continue;
$l = preg_replace('/\s+/', "\t", $l);
$a = explode("\t",$l);
if (empty($a[1])) continue;
for ($n = 1;
$n < count($a);
$n++) { if ($a[$n] == $name) { $val = $a[0];
break;
}
}
}
return $val;
}
function hosts_edit($name, $val) { $out = '';
$dowr = false;
$isbs = false;
$s = file_get_contents('/etc/hosts');
foreach (explode("\n",$s) as $line) { if (!empty($line)) { $l = trim($line);
if (empty($l) || $l[0] == '#') continue;
$l = preg_replace('/\s+/', "\t", $l);
$a = explode("\t",$l);
if (!empty($a[1])) { $vv = false;
for ($n = 1;
$n < count($a);
$n++) { if ($a[$n] == $name) { $isbs = true;
$vv = $a[0];
break;
}
}
if ($vv !== false && $vv != $val) { $dowr = true;
$line = $val;
for ($n = 1;
$n < count($a);
$n++) { $line .= "\t".$a[$n];
}
}
}
}
$out .= "$line\n";
}
if ($isbs == false) { $out .= "$val\t$name\n";
$dowr = true;
}
if ($dowr) { file_put_contents('/etc/hosts', $out);
}
return $dowr;
}
function get_bukts_cfg() { $cfg = array();
$file = '/etc/opt/bukts/conf/bukts.cfg';
if (!is_file($file)) { $file = '/etc/opt/bukts/bukts.cfg';
}
if (!is_file($file)) { return $cfg;
}
foreach (explode("\n", file_get_contents($file)) as $line) { if (empty($line)) continue;
$l = trim($line);
if (empty($l)) continue;
if ($l[0] != '%') continue;
$a = explode(' ', $l);
if ($a[0] == '%include') { $ar = explode("\n", str_replace(array(' ',"\t","\r",':','#',';'), array('','','',":\n","\n#","\n#"), file_get_contents($a[1])));
$nn = 1;
$sec = false;
foreach ($ar as $line) { if (empty($line)) continue;
$l = trim($line);
if (empty($l) || $l[0]=='#') continue;
if ($l[0] == '[') { $b = explode(']',substr($l,1));
$sec = $b[0];
continue;
}
if ($sec === false) continue;
$a = explode('=', $l);
if (isset($a[1])) { $k = strtolower($a[0]);
if ($nn == 1) { $cfg[$sec][$k] = $a[1];
}
else { $cfg["$sec:$nn"][$k] = $a[1];
}
}
else if (strpos($l, ':') !== false) { $b = explode(':', $a[0]);
$nn = $b[0];
}
}
}
}
return $cfg;
}
function get_cfg($file) { $cfg = array();
$ar = explode("\n", str_replace(array(' ',"\t","\r",'#',';'), array('','','',"\n#","\n#"), file_get_contents($file)));
foreach ($ar as $line) { if (empty($line)) continue;
$l = trim($line);
if (empty($l) || $l[0]=='#') continue;
$a = explode('=', $l);
if (isset($a[1])) { $k = strtolower($a[0]);
$cfg[$k] = $a[1];
}
}
return $cfg;
}
function get_bukwserver_cfg() { $cfg = array();
foreach (array('pserver', 'payterm') as $sec) { switch($sec) { case 'pserver': $file = "/opt/bukwserver/html/config/$sec.cfg";
break;
case 'payterm': $file="/opt/bukwserver/html/modules/payterm/cfg/$sec.cfg";
break;
default: $file = '';
break;
}
if (!is_file($file)) continue;
$cfg[$sec] = get_cfg($file);
}
return $cfg;
}
function make_cfg_file($arr) { $s = '';
foreach($arr as $k => $v) { $s .= strtoupper($k).'='.$v."\n";
}
return $s;
}
function make_cfg_bukts($arr) { $aout = array('bukts.cfg' => "#%VER=2;
Версия формата файла, не удаляйте эту строку!\n");
$s = '';
$n = 1;
foreach($arr as $sec => $aa) { $aout["bukts-$sec.cfg"] = "[$sec]\n$n:\n";
$aout["bukts.cfg"] .= "%include /etc/opt/bukts/bukts-$sec.cfg\n";
foreach($aa as $k => $v) { $t = explode(':', $k);
if (!empty($t[1])) { $k = $t[0];
if ($n != $t[1]) { $n = $t[1];
$aout["bukts-$sec.cfg"] .= "$n\n";
}
}
if ($v !== false) { $aout["bukts-$sec.cfg"] .= strtoupper($k).'='.$v."\n";
}
}
}
return $aout;
}
function out($s) { echo $s."\n";
}
function oerr($s, $add = 'Повторите ввод') { echo $s;
if (!empty($add)) { echo '. '.$add;
}
echo "\n";
}
function fin($s='') { echo "\n";
if (empty($s)) { $s = "Работа прервана пользователем";
}
echo $s."\n";
exit(1);
}
function do_confirm($in) { while(true) { $s = fgets($in);
if ($s === false) return false;
$s = trim(strtolower($s));
if (!empty($s)) { if ($s[0] == 'n') return false;
if ($s[0] == 'y') break;
}
echo "Нажмите N или Y > ";
}
return true;
}
function input_cfg($in, &$cfg) { foreach ($cfg as $cfkey => $apar) { if (!empty($apar['depend'])) { $depk = $apar['depend'];
if (empty($cfg[$depk]['val']) || $cfg[$depk]['val'] == 'no') { $cfg[$cfkey]['val'] = '';
continue;
}
}
else if (!empty($apar['dependInv'])) { $depk = $apar['dependInv'];
if (!empty($cfg[$depk]['val']) && $cfg[$depk]['val'] == 'yes') { $cfg[$cfkey]['val'] = '';
continue;
}
}
while(true) { $deftxt = '';
$defval = false;
if (!empty($apar['yesno'])) { $deftxt .= ' (y/n)';
}
if (isset($apar['val'])) { $defval = $apar['val'];
$deftxt .= " [$defval]";
}
echo $apar['name'].$deftxt.' > ';
$s = fgets($in);
if ($s === false) { fin();
}
$v = trim($s);
if (empty($v)) { if ($defval === false) { oerr('Введите запрашиваемое значение или нажмите Ctrl+D для завершения.', false);
continue;
}
else { $v = $defval;
}
}
else { $vlow = strtolower($v);
if (!empty($apar['isip'])) { if ($v != 'localhost') { $t = explode('.', $v);
if (!isset($t[3]) || isset($t[4]) || !is_numeric($t[0]) || !is_numeric($t[1]) || !is_numeric($t[2]) || !is_numeric($t[3])) { oerr('IP-адрес должен быть в виде XXX.XXX.XXX.XXX');
continue;
}
}
}
else if (!empty($apar['yesno'])) { if ($vlow == 'y' || $vlow == 'yes') { $v = 'yes';
}
else if ($vlow == 'n' || $vlow == 'no') { $v = 'no';
}
else { oerr('Введите y или n');
continue;
}
}
else if (is_numeric($v) == false) { if (empty($apar['istxt'])) { oerr('Значение должно быть числом');
continue;
}
}
else { $min = !empty($apar['min']) ? $apar['min'] : 0;
$max = !empty($apar['max']) ? $apar['max'] : 0;
if ($v < $min) { out("Значение должно быть от $min до $max, повторите ввод");
continue;
}
if (!empty($max) && $v > $max) { out("Значение должно быть от $min до $max, повторите ввод");
continue;
}
}
}
$cfg[$cfkey]['val'] = $v;
break;
}
}
}
$in = fopen("php://stdin","r");
$ISROOT = (getenv('USER') == 'root');
if (!$ISROOT) { echo "=== ВНИМАНИЕ! ==============================================================\n" ."ДЛЯ ИЗМЕНЕНИЯ КОНФИГУРАЦИОННЫХ ФАЙЛОВ СКРИПТ СЛЕДУЕТ ВЫПОЛНЯТЬ ОТ root\n" ."Без прав root конфигурационные файлы будут созданы в текущем каталоге.\n\n" ."ПРОДОЛЖИТЬ РАБОТУ БЕЗ ПРАВ root? (y/n) > ";
if (!do_confirm($in)) fin();
}
$bukserver = hosts_get('bukserver');
if (!empty($bukserver)) { $allcfg['system']['hosts']['bukserver'] = $bukserver;
}
$a = get_bukts_cfg();
foreach ($a as $sec => $aa) { $allcfg['bukts'][$sec] = $aa;
}
$a = get_bukwserver_cfg();
foreach ($a as $sec => $aa) { $allcfg['bukwserver'][$sec] = $aa;
}
$cfg = init_cfg_by_default($cfg, $allcfg);
echo "============================================================================\n" ."НАСТРОЙКА TSG-G НА ДАННОМ РАБОЧЕМ МЕСТЕ\n" ."============================================================================\n" ."=== ВНИМАНИЕ! ==============================================================\n" ."Cкрипт предназначен для настройки ТСО-G с новым терминалом, который:\n" ."a) поддерживает два типа карт: банковcкие и топливные;\n" ."б) производит обслуживание банковских карт только в режиме ПРЕДАВТОРИЗАЦИИ.\n\n" ."В ТСО установлена эта верcия банковского терминала? (y/n) > ";
if (!do_confirm($in)) fin();
echo "\nВВЕДИТЕ ЗАПРАШИВАЕМЫЕ ДАННЫЕ ДЛЯ НАСТРОЙКИ ТСО-G:\n";
input_cfg($in, $cfg);
echo "\n";
if (!empty($cfg['is_arcus_com']['val']) && $cfg['is_arcus_com']['val'] == 'yes') { while(true) { $scr = 'UN=$(lsusb | grep INGENICO | awk \'{print $6}\');' .'vendor=$(echo $UN | cut -d\':\' -f1);' .'product=$(echo $UN | cut -d\':\' -f2);' .'if [ -z "$vendor" ];
then exit;
fi;' .'if [ -z "$product" ];
then exit;
fi;' .'for i in /sys/bus/usb/devices/*;
do ' .'if [ ! -e "$i/idVendor" ];
then continue;
fi;' .'vid=$(cat "$i/idVendor");' .'pid=$(cat "$i/idProduct");' .'if [ "$vid" != "$vendor" ];
then continue;
fi;' .'if [ "$pid" != "$product" ];
then continue;
fi;' .'echo $(basename $i);
break;' .'done';
$ingenico = exec($scr);
if (!empty($ingenico)) { out("+ ТЕРМИНАЛ Ingenico НАЙДЕН НА USB $ingenico");
$allcfg2write['bukts']['arcus']['com'] = 'usb'.$ingenico;
break;
}
else { echo "ЗАДАНО ПОДКЛЮЧЕНИЕ Aricus ЧЕРЕЗ USB, НО ТЕРМИНАЛ НЕ НАЙДЕН,\n" ."ВОЗМОЖНО ОН ВЫКЛЮЧЕН ИЛИ НЕ ПОДКЛЮЧЕН.\n" ."ПОВТОРИТЬ ПОИСК? (y/n) > ";
if (!do_confirm($in)) { echo "ПОДКЛЮЧЕНИЕ Aricus БУДЕТ НАСТРОЕНО ЧЕРЕЗ /dev/ttyACM0\n";
$allcfg2write['bukts']['arcus']['com'] = '/dev/ttyACM0';
break;
}
}
}
$allcfg['system']['usb']['ingenico'] = $ingenico;
}
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
foreach ($cfg as $k => $a) { $que = $a['name'];
$val = $a['val'];
if ($val !== false) { echo "$que\t$val\n";
}
}
echo "\n++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
echo 'ВСЕ ВЕРНО? (y/n) > ';
if (!do_confirm($in)) fin();
echo "\n";
$host = $cfg['host']['val'];
if ($host == 'localhost') $host = '127.0.0.1';
else if ($host == 'bukserver') $host = false;
if ($ISROOT && $host !== false) { out('Настройка /etc/hosts');
hosts_edit('bukserver', $host);
}
foreach(array('placenum', 'siebel_terminal_id') as $w) { if (!empty($cfg[$w]['val'])) { $allcfg2write['bukwserver']['pserver'][$w] = $cfg[$w]['val'];
}
}
if (!empty($cfg['isallpumps']['val']) && $cfg['isallpumps']['val'] == 'yes') { $allcfg2write['bukwserver']['pserver']['pumps'] = '';
}
else { $allcfg2write['bukwserver']['pserver']['pumps'] = !empty($cfg['pumps']['val']) ? $cfg['pumps']['val'] : '';
}
$s = make_cfg_file($allcfg2write['bukwserver']['pserver']);
$fcfg_pserver = $ISROOT ? '/opt/bukwserver/html/config/pserver.cfg' : 'pserver.cfg';
out("Настройка $fcfg_pserver");
file_put_contents($fcfg_pserver, $s);
chmod($fcfg_pserver, 0664);
if ($ISROOT) { chown($fcfg_pserver,'www-data');
chgrp($fcfg_pserver,'bukts');
}
$payments = '';
if ($cfg['ispcard']['val'] == 'yes') { $payments .= 'card';
}
if ($cfg['iswcard']['val'] == 'yes') { if ($payments != '') $payments .= ',';
$payments .= 'wcard';
}
$allcfg2write['bukwserver']['payterm']['payments'] = $payments;
$allcfg2write['bukwserver']['payterm']['siebel'] = (!empty($cfg['issiebel']['val']) && $cfg['issiebel']['val'] == 'yes') ? 'on' : 'off';
$s = make_cfg_file($allcfg2write['bukwserver']['payterm']);
$fcfg_payterm = $ISROOT ? '/opt/bukwserver/html/modules/payterm/cfg/payterm.cfg' : 'payterm.cfg';
out("Настройка $fcfg_payterm");
file_put_contents($fcfg_payterm, $s);
chmod($fcfg_payterm, 0664);
if ($ISROOT) { chown($fcfg_payterm,'www-data');
chgrp($fcfg_payterm,'bukts');
}
foreach(array('pserver.cfg', 'config.cfg', 'payterm.cfg') as $lnk) { $flnk = '/etc/opt/bukwserver/'.$lnk;
if($ISROOT) { if (is_file($flnk)) { unlink($flnk);
}
$f = $lnk == 'payterm.cfg' ? $fcfg_payterm : $fcfg_pserver;
out("Создание символической ссылки $flnk => $f");
symlink ($f, $flnk);
}
}
if (!empty($cfg['pwd']['val'])) { $pwd = $cfg['pwd']['val'];
$allcfg2write['bukts']['cachcode']['pwd'] = $pwd;
$allcfg2write['bukts']['arcus']['pwd'] = $pwd;
}
if (empty($cfg['cachcode_com']['val']) || empty($cfg['isnal']['val']) || $cfg['isnal']['val'] == 'no') { $allcfg2write['bukts']['cachcode'] = array();
}
else { $allcfg2write['bukts']['cachcode']['com'] = $cfg['cachcode_com']['val'];
if (!empty($cfg['is5000']['val']) && $cfg['is5000']['val'] == 'yes') { $allcfg2write['bukts']['cachcode']['banknotes'] = '50,100,200,500,1000,2000,5000';
}
else { $allcfg2write['bukts']['cachcode']['banknotes'] = '50,100,200,500,1000,2000';
}
}
$allcfg2write['bukts']['kassa']['speed'] = $cfg['kassa_speed']['val'];
if (!empty($cfg['is_arcus_com']['val']) && $cfg['is_arcus_com']['val'] == 'yes') { $allcfg2write['bukts']['arcus']['eth_port'] = false;
$fcfg = '/etc/opt/arcusip/arcusip.cfg';
if ($ISROOT && is_file($fcfg)) { out("Удаление $fcfg");
unlink($fcfg);
}
}
else { $allcfg2write['bukts']['arcus']['com'] = 'localhost';
$allcfg2write['bukts']['arcus']['eth_port'] = $port1 = $cfg['eth_port']['val'];
$fcfg = $ISROOT ? '/etc/opt/arcusip/arcusip.cfg' : 'arcusip.cfg';
out("Настройка $fcfg");
$port0 = $port1 - 1;
file_put_contents($fcfg, "TERMINAL_PORT=$port0\nARCUS_PORT=$port1\n");
chmod($fcfg, 0664);
if ($ISROOT) { chown($fcfg,'bukts');
chgrp($fcfg,'bukts');
}
}
$path = $ISROOT ? '/etc/opt/bukts/' : '';
$pathc = $ISROOT ? '/etc/opt/bukts/conf/' : '';
foreach (make_cfg_bukts($allcfg2write['bukts']) as $file => $txt) { if ($ISROOT && is_file($pathc.$file)) { out('Удаление '.$pathc.$file);
unlink($pathc.$file);
}
out('Настройка '.$path.$file);
file_put_contents($path.$file, $txt);
chmod($path.$file, 0664);
if ($ISROOT) { chown($path.$file,'bukts');
chgrp($path.$file,'bukts');
}
}
$fcfg = $path.'bukts-loader.cfg';
if ($ISROOT && is_file($fcfg)) { out("Удаление $fcfg");
unlink($fcfg);
}
for ($i = 1;
$i <= 2;
$i++) { $file = $ISROOT ? '/etc/opt/bukts/arcus2/ops_ow.ini.'.$i : 'ops_ow.ini.'.$i;
out("Настройка $file");
file_put_contents($file, $ops_ow[$i]);
chmod($file, 0664);
if ($ISROOT) { chown($file,'bukts');
chgrp($file,'bukts');
}
}
$a = array('/etc/opt/bukwserver-oem/oem.cfg', '/opt/bukwserver/html/modules/payterm/cfg/oem.cfg');
foreach ($a as $f) { if ($ISROOT && is_file($f)) { out("Удаление $f");
unlink($f);
}
}
exit(0);
?>
