#!/bin/bash

#TERMINAL=sakura
#TERMINAL=lxterminal
#TERMINAL=gnome-terminal
#TERMINAL=mate-terminal
TERMINAL=xfce4-terminal
#TERMINAL=konsole

PROV=`ps -A|grep fp-ide-en`
if [ ! -z "$PROV" ]
then
  notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru "Внимание!" "В запуске Free Pascal IDE (русский) было отказано, так как запущен Free Pascal IDE (английский)."
  echo "В запуске Free Pascal IDE (русский) было отказано, так как запущен Free Pascal IDE (английский)."
  exit 1
fi

mkdir -p "$HOME/fp-ide-ru"
cd "$HOME/fp-ide-ru"

ENCA=`which enca`

CODE=CP866

if [ ! -f ./fp.cfg ]
then
  cp -f /usr/share/fp-ide-ru/fp.cfg ./ > /dev/null 2>&1
fi

if [ ! -f ./fp.ini ]
then
  cp -f /usr/share/fp-ide-ru/fp.ini ./ > /dev/null 2>&1
fi

encoding_cp866 () {
  flag1=false
  flag2=false
  for j in $(find ./ -name "$ext"); do
    for i in `enca -r -p --language=russian $j|grep UTF-8|cut -d ":" --fields=1`; do
      if [ "$flag1" = "false" ]
      then
        notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru 'Внимание!' "Начинается рекурсивное переконвертирование $ext из UTF-8 в CP866 в директории $HOME/fp-ide-ru."
        echo "Начинается рекурсивное переконвертирование $ext из UTF-8 в CP866 в директории $HOME/fp-ide-ru."
        flag1=true
      fi
      cp -f "$i" "$i".old
      iconv -f UTF-8 -t CP866 "$i" >"$i.tmp"; mv -f "$i.tmp" "$i"
    done
    if [ "$flag2" = "false" ]
    then
      if [ "$flag1" = "true" ]
      then
        notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru 'Внимание!' "Переконвертирование $ext завершено."
        echo "Переконвертирование $ext завершено."
        flag2=true
      fi
    fi
  done
}

if [ ! -z "$ENCA" ]
then
  ext="*.pas"
  encoding_cp866
  ext="*.inc"
  encoding_cp866
  ext="*.lpr"
  encoding_cp866
fi

check_terminal () {
  PROV=`ps -A|grep $TERMINAL`
  if [ ! -z "$PROV" ]
  then
    notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru "Внимание!" "В запуске Free Pascal IDE (русский) было отказано, так как $TERMINAL уже запущен."
    echo "В запуске Free Pascal IDE (русский) было отказано, так как $TERMINAL уже запущен."
    exit 1
  fi
}

check_sakura_terminal () {
  PROV=`ps -Af|grep sakura_fp-ide-ru.conf|grep -v grep`
  if [ ! -z "$PROV" ]
  then
    notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru "Внимание!" "В запуске Free Pascal IDE (русский) было отказано, так как в $TERMINAL уже запущен другой Free Pascal IDE (русский)."
    echo "В запуске Free Pascal IDE (русский) было отказано, так как в $TERMINAL уже запущен другой Free Pascal IDE (русский)."
    exit 1
  fi
}

case $TERMINAL in
   sakura)
     check_sakura_terminal
     mkdir -p "$HOME/.config/sakura"
     if [ ! -f "$HOME/.config/sakura/sakura_fp-ide-ru.conf" ]
     then
       cp -f /usr/share/fp-ide-ru/sakura_fp-ide-ru.conf "$HOME/.config/sakura/" > /dev/null 2>&1
     fi
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --title=Free_Pascal_IDE --fullscreen --config-file=sakura_fp-ide-ru.conf -x /usr/share/fp-ide-ru/fp-ide-ru
   ;;
   lxterminal)
     check_terminal
     if [ ! -f "$HOME/.config/lxterminal/lxterminal.conf" ]
     then
       notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru 'Внимание!' 'LXTerminal запускается впервые, идёт его преднастройка.'
       echo 'LXTerminal запускается впервые, идёт его преднастройка.'
       lxterminal -e /bin/true
       notify-send --expire-time=4000 --app-name=fp-ide-ru --icon=fp-ide-ru 'Внимание!' 'LXTerminal был преднастроен.'
       echo 'LXTerminal был преднастроен.'
     fi
     sed -i -e "s|disablef10=false|disablef10=true|g" $HOME/.config/lxterminal/lxterminal.conf
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --geometry=97x34 --title=Free_Pascal_IDE -e /usr/share/fp-ide-ru/fp-ide-ru
   ;;
   gnome-terminal)
     check_terminal
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --full-screen --title=Free_Pascal_IDE -e /usr/share/fp-ide-ru/fp-ide-ru
   ;;
   mate-terminal)
     check_terminal
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --full-screen --title=Free_Pascal_IDE -e /usr/share/fp-ide-ru/fp-ide-ru
   ;;
   xfce4-terminal)
     check_terminal
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --fullscreen --title=Free_Pascal_IDE -e /usr/share/fp-ide-ru/fp-ide-ru
   ;;
   konsole)
     check_terminal
     export LANG="ru_RU.$CODE" && export LC_CTYPE="ru_RU.$CODE" && $TERMINAL --fullscreen --title=Free_Pascal_IDE --workdir=$HOME/fp-ide-ru -e /usr/share/fp-ide-ru/fp-ide-ru
   ;;
esac

killall fp-ide-ru
