#
# TextLib - script parameter beallito
# script [dbase] ...
# script.dbase ...
# hivasoknal beallitja a
# $ext=.dbase
# $par=[dbase]

unset ext par tlver 

# elso parameter [xxx] alaku?
if [ "${1:0:1}" == "[" ]; then
  x=${1/[/};
  x=${x/]/};
  if [ "$x" != "" ]; then ext=.$x; fi
  unset x
  shift
fi

if [ "$ext" != "" ]; then
   par=\[${ext/./}\];
fi

PRGPATH=/usr/share/textlib/exe$tlver
TLMPATH=/usr/share/textlib/tlm$tlver
DBPATH=/var/lib/textlib$ext
MENTPATH=$DBPATH/ment
LOGPATH=/var/log/textlib$ext
TLLOGPATH=$LOGPATH
PIDPATH=/home/textlib/.textlib

TLSRVLOG=$TLLOGPATH/tlsrv.log
NAPLOLOG=$TLLOGPATH/naplo.log
INDEX1LOG=$TLLOGPATH/indexel1.log
INDEXLOG=$TLLOGPATH/indexel.log
BACKUPLOG=$TLLOGPATH/tl_backup.log

BACKUPCFG=$PRGPATH/tl_backup$ext.cfg

TLSRVPID=$PIDPATH/szerver$ext.pid
TLSRVPIDX=/var/run/textlib$ext/szerver.pid
NAPLOPID=$PIDPATH/naplo$ext.pid
TLSRVLOCK=/var/lock/subsys/textlib$ext-szerver
BACKUPPID=$PIDPATH/tl_backup$ext.pid
DBCHKPID=$PIDPATH/dbchk$ext.pid
REINDEXPID=$PIDPATH/reindex$ext.pid

#debug!
COREPATH="/tmp/tl.corefiles"
TLDEBUGRUN=$PRGPATH/tlsrv$ext.debug.run
TLCORERUN=$PRGPATH/tlsrv$ext.core.run

NAPLO=g-naplo.exe
SERVER2=g-tlsrv$ext.exe
SERVER=g-tlsrv.exe
SERVERDBG=g-tlsrv-debug.exe

if [ -x /tlbuild/tlbuild.exe ]; then
    if [ "$ext" != ""  ]; then
       TLDBPAR=`/tlbuild/tlbuild.exe /target tlsrv $par /nullprog`
       #echo "TLDBPAR $par: $TLDBPAR"
    fi   
fi

# Regi szerver pid fajlt atmasolni uj helyre - hogy le tudjam allitani
if [ -f $TLSRVPIDX ]; then
#  mv $TLSRVPIDX $TLSRVPID > /dev/null 2>/dev/null
#  echo "Regi szerver.pid atrakva uj helyre"
   echo "Regi pid file van?"
fi

# PID fajlrol megmondja, hogy
#   - van a file ES fut is a benne leirt PID-u process
#   - Ha PIDfile van, de a progam nem fut, PID fajlt torli.
#  RETURN: 0, ha fut; 1 - ha nem fut
PidRun()
{   RetVal=1
    #nincs pid file - nem fut"
    if [ ! -f $1 ]; then return 1; fi
    if [ "$2" == "" ]; then 
        if [ -f $PRGPATH/$SERVER2 ]; then 
            PidRunNeed=$SERVER2
        else 
            PidRunNeed=$SERVER
        fi
    else 
        PidRunNeed=$2; 
    fi
    PidRunPID=$(cat $1 2> /dev/null)
    if [ "$PidRunPID" == "" ]; then
       echo "Ures file, torles: $1"; rm -rf $1; return 1;
    fi
    # Ez neha szar!!! PidRunProg=$(ps -p $PidRunPID -o comm=)
    PidRunProg=$(ps -p $PidRunPID -o args= | awk '{print $1}' | xargs basename)
    if [ "$PidRunProg" == "" ]; then
       echo "Nem fut program ($PidRunPID), torles: $1"; rm -rf $1; return 1;
    fi
    if [[ $PidRunProg =~ $PidRunNeed ]]; then
       RetVal=0
    else 
       # Ezzel a PID-el valami masik program fut. PID file torolheto
       echo "'Mas program ($PidRunProg/$PidRunNeed), torles: $1"; rm -rf $1
    fi
  (( ! $RetVal ));
}

# WaitPIDClose $NAPLOPID g-naplo.exe
WaitPIDClose()
{
  # 800*3 = 2400 sec = 30 perc
  cnt=0; cntmax=800;
  PidRun $1 $2
  while [ $cnt -le $cntmax -a -f $1 ]; do
   sleep 3
   cnt=$[$cnt+1]
  done
  PidRun $1 $2
  return $?
}
