#!/usr/bin/php
<?php
// ------------------------------------------------------------
// 
// wsjt-x ADIF log rewite to jtlinker
// 
// T.Kabu/JS1FVG    https://js1fvg.kabu.direct/
// 
// ------------------------------------------------------------
?>
<?php
// ----------------------------------------------------------------------
// Init Routine
// ----------------------------------------------------------------------
require(__DIR__."/adifrewrited_init.php");
?>
<?php
// ----------------------------------------------------------------------
// Main Routine
// ----------------------------------------------------------------------
// --------------------------------
// コマンドラインオプションを解析(その一)
// --------------------------------
// 短いオプション(無し)
$ADIFREWRITEC_SHORTOPT = "";

// 長いオプション
$ADIFREWRITEC_LONGOPT  = array(
    "qslmsg-type",                // comment, qslmsg タグの内容をどのタイプにするか(0:commentのみ、1:tx_pwr + comment、2:tx_pwr + comment 3:tx_pwr + comment + operator
    "qslmsg:",                    // comment, qslmsg タグの内容をこれに置き換える、値が必須
    "add-qslmsg:",                // comment, qslmsg タグの内容にこれを追加する、値が必須(comment + add_qslmsg、となる)
);

// コマンドラインオプションを解析
$ADIFREWRITEC_OPTIONS = getopt($ADIFREWRITEC_SHORTOPT, $ADIFREWRITEC_LONGOPT);

// 第一引数による処理分岐
switch($argv[1])
{
    case "start" :
        // adifrewritedを起動
        exec(__DIR__.'/adifrewrited > /dev/null &');
        print 'adifrewrited start ... Please check LOG file.'."\n";
        // 終わり
        exit;
    case "stop" :
        // adifrewritedプロセスをすべてkillする
        exec('/usr/bin/killall adifrewrited');
        // 少し待ってから
        usleep(100000);
        // PIDファイルがあれば
        if (is_file($ADIFREWRITED_CONF['pid_file']))
        {
            // PIDファイルを削除する
            unlink($ADIFREWRITED_CONF['pid_file']);
        }
        print 'adifrewrited stop'."\n";
        // 終わり
        exit;
    case "restart" :
        // adifrewritedプロセスをすべてkillする
        exec('/usr/bin/killall adifrewrited');
        // 少し待ってから
        usleep(100000);
        // PIDファイルがあれば
        if (is_file($ADIFREWRITED_CONF['pid_file']))
        {
            // PIDファイルを削除する
            unlink($ADIFREWRITED_CONF['pid_file']);
        }
        // adifrewritedを起動
        exec(__DIR__.'/adifrewrited > /dev/null &');
        print 'adifrewrited restart ... Please check LOG file.'."\n";
        // 終わり
        exit;
    case "reload" :
        // adifrewritedプロセスをすべてSIGHUPする
        exec('/usr/bin/killall -s SIGHUP adifrewrited');
        print 'adifrewrited reload ... Please check LOG file.'."\n";
        // 終わり
        exit;
}

// --------------------------------
// 上記以外はヘルプメッセージを表示して終わり
// --------------------------------
print <<<EOF

wsjt-x ADIF log rewite to jtlinker controler (adifrewritec)

Usage:

   adifrewritec start    ... adifrewrited start.
   adifrewritec stop     ... adifrewrited stop.
   adifrewritec restart  ... adifrewrited stop and start.
   adifrewritec reload   ... reload config file. (not unban existing settings).

T.Kabu/JS1FVG    https://js1fvg.kabu.direct/


EOF;
?>
