#!/bin/sh

if [ "$LINTER_DIR"A = A ]; then
  LINTER_DIR=..
fi

curent_dir=`pwd`
SY00="$curent_dir/storage"
LINTER_MBX=22563
NET_MBX=$LINTER_MBX

LINTER="\"$LINTER_DIR/bin/linter\" "
INL="\"$LINTER_DIR/bin/inl\" -u SYSTEM/MANAGER "
SLEEP='sleep 15'
LOADREL="\"$LINTER_DIR/bin/loarel\" -u SYSTEM/MANAGER "
GENDB="\"$LINTER_DIR/bin/gendb\" "
SHUT="\"$LINTER_DIR/bin/shut\" -u SYSTEM/MANAGER "
SYNCD="\"$LINTER_DIR/bin/lsyncd\""
CHKLIN="\"$LINTER_DIR/bin/chklinter\" -r -t 1"

while [ 1 -eq 1 ]; do
  NET_MBX=$LINTER_MBX
  export NET_MBX
  export LINTER_MBX
  eval "$CHKLIN" || break
  LINTER_MBX=`expr $LINTER_MBX + 1`
done
export SY00 LINTER_MBX NET_MBX

n=1
sle()
{
  count=$1
  [ A"$count" = A ] && count=1
  sleep $count
  echo $n
  n=`expr $n + 1`
}


wait_linter()
{
  for i in 1 3 10 15; do
    eval "$CHKLIN" && break
    sleep $i
  done
}


delete_db()
{
  rm -rf storage
}

create_db()
{
  [ ! -d "storage" ] && mkdir storage

  eval "$GENDB" "\"$LINTER_DIR/dict/storage.gdb\""
  sle 3

  eval "$LINTER"
  wait_linter

  eval "$INL" -f "\"$LINTER_DIR/dict/arepl.sql\""
  sle 1
  eval "$SHUT"
  sle 3

  eval "$SYNCD"
  rm -f storage/linter.out
}

[ A"$1" = A"delete" ] && {
  delete_db
  exit
  }

create_db
