#!/bin/sh

# Скрипт установки uTalk клиента для Linux
# Copyright (c) 2008, Unio-Talk Group
#
# Автор: Eugene MC
#
# Вы можете свободно распространять этот скрипт.
#
# Назначение этого скрипта - автоматизация процесса установки uTalk
# под Linux системой

UTALK_TEMP_DIR=/tmp/utalk
UTALK_NAME="uTalk"
UTALK_URL=http://utalk.su/files/utalk-x86-svn.exe
UTALK_EXE=utalk-x86-svn.exe
GDIPLUS_NAME="GDI+"
GDIPLUS_URL=http://www.geopainting.com/download/gdiplus.zip
GDIPLUS_FILE=gdiplus.zip
LIBS_NAME="LIBS"
LIBS_URL=http://dl.dropbox.com/u/31331705/user.reg
LIBS_FILE=user.reg
FONTS_NAME="Tahoma fonts"
FONTS_URL=http://dl.dropbox.com/u/31331705/Tahoma.tar.gz
FONTS_FILE=Tahoma.tar.gz
FONTS_OPTION=1
FONT_INSTALL_DIR=~/.fonts
IMAGE_VIEW_NAME="Fast Stone Maxview 2.1"
IMAGE_VIEW_URL=http://www.faststone.org/DN/FSMaxViewSetup21.exe
IMAGE_VIEW_EXE=FSMaxViewSetup21.exe
IMAGE_VIEW_OPTION=1
DOWNLOAD_URL=""
DOWNLOAD_NAME=""
OPTION=1

create_temp_dir()
{
  if [ ! -d $UTALK_TEMP_DIR ]; then 
    echo "Создаем временную папку $UTALK_TEMP_DIR куда качается uTalk..."
    mkdir $UTALK_TEMP_DIR 
  fi
}

clean_temp_files()
{
  echo "Очищается временные файлы..."
  rm -fR $UTALK_TEMP_DIR
}

ask_option()
{
  echo "Если вы хотите установить $DOWNLOAD_NAME нажмите 1, если нет нажмите 0, и затем [ENTER]:"
  read OPTION
}

download_file()
{
  echo "Загрузка $DOWNLOAD_NAME..."
  if [ `which wget` ]; then
    wget -N -P /tmp/utalk $DOWNLOAD_URL
    if [ $? -ne 0 ]; then
      echo "Ошибка загрузки $DOWNLOAD_NAME. Отмена..."
      exit 1
    fi
  else
    echo "Ошибка: Этот скрипт требует wget чтобы установить все файлы"
    clean_temp_files
    exit 1
  fi
}

install_u_talk()
{
  if [ `which wine` ]; then
    echo "Установка $GDIPLUS_NAME..."
    if [ ! -d ~/.wine/drive_c/windows/system32 ]; then 
      mkdir -p ~/.wine/drive_c/windows/system32
    fi
    cd ~/.wine/drive_c/windows/system32
    unzip /tmp/utalk/$GDIPLUS_FILE
    if [ $? -ne 0 ]; then
      echo "Ошибка при распаковке $GDIPLUS_NAME"
      exit 1   
    fi
      echo "Установка $LIBS_NAME..."
      wine regedit /tmp/utalk/$LIBS_FILE 
    if [ $FONTS_OPTION -ne 0 ]; then
      echo "Установка $FONTS_NAME..."
      if [ ! -d ~/.fonts ]; then 
	mkdir ~/.fonts
      fi
      cd ~/.fonts
      tar xvfz /tmp/utalk/$FONTS_FILE
      if [ $? -ne 0 ]; then
	echo "Ошибка при распаковке шрифтов"
	exit 1
      fi
      if [ `which fc-cache` ]; then
	fc-cache
      else
	echo "Невозможно установить Tahoma шрифт в вашей системе. Это опционально"
	echo "но uTalk будет выглядеть лучше с ним. Вы можете скачать его с $FONTS_URL"
      fi
    fi
    if [ $IMAGE_VIEW_OPTION -ne 0 ]; then
      echo "Установка $IMAGE_VIEW_NAME. Проверьте что вы ассоциировали JPG файлы с ним."
      wineconsole /tmp/utalk/$IMAGE_VIEW_EXE
    fi
    echo "Установка $UTALK_NAME..."
    wineconsole /tmp/utalk/$UTALK_EXE
    clean_temp_files
    echo "uTalk клиент удачно установлен на Вашу систему"
  else
    if [ `which apt-get` ]; then
      echo "Запустите sudo 'apt-get install wine' чтобы установить wine и затем запускайте этот скрипт снова"
    elif [ `which yum` ]; then
      echo "Запустите 'sudo yum install wine' чтобы установить wine и затем запускайте этот скрипт снова"
    else
      echo "Установите wine и затем запускайте этот скрипт снова"
    fi
    echo "Все скачанные файлы будут сохранены для следующего раза как вы запустите этот скрипт"
    exit 1
  fi
}

cat <<EOF
*****************************************************************************
*                Скрипт установски uTalk клиента для Linux                  *
*                                                                           *
* Установка шрифтов и просмотрщика картинок опционально. Но если вы не      *
* имеете других просмотрщиков установленных в wine вы не сможете смотреть   *
* фото сообщения                                                            *
*****************************************************************************
EOF

create_temp_dir

DOWNLOAD_URL=$UTALK_URL
DOWNLOAD_NAME=$UTALK_NAME
download_file

DOWNLOAD_URL=$GDIPLUS_URL
DOWNLOAD_NAME=$GDIPLUS_NAME
download_file

DOWNLOAD_URL=$LIBS_URL
DOWNLOAD_NAME=$LIBS_NAME
download_file

DOWNLOAD_URL=$FONTS_URL
DOWNLOAD_NAME=$FONTS_NAME
ask_option
FONTS_OPTION=$OPTION
if [ $FONTS_OPTION -ne 0 ]; then
  download_file
fi

DOWNLOAD_URL=$IMAGE_VIEW_URL
DOWNLOAD_NAME=$IMAGE_VIEW_NAME
ask_option
IMAGE_VIEW_OPTION=$OPTION
if [ $IMAGE_VIEW_OPTION -ne 0 ]; then
  download_file
fi

install_u_talk

