#!/bin/bash

# pearl-office script lets you install an office app you like
# Copyright 2015-2020 Paweł "pavroo" Pijanowski <pavroo@onet.eu>
# Licensed under the GPLv2 license see /usr/share/common-licenses/GPL-2
# Created 2015/05/19
# Last update 2020/10/30

# get default's locale file
DEFLOCDIR="/usr/share/pearl/pearl-office"
if [ "`cat /etc/default/locale | grep LANG= | grep de`" != "" ]; then
. $DEFLOCDIR/de
elif [ "`cat /etc/default/locale | grep LANG= | grep el`" != "" ]; then
. $DEFLOCDIR/el
elif [ "`cat /etc/default/locale | grep LANG= | grep es`" != "" ]; then
. $DEFLOCDIR/es
elif [ "`cat /etc/default/locale | grep LANG= | grep fr`" != "" ]; then
. $DEFLOCDIR/fr
elif [ "`cat /etc/default/locale | grep LANG= | grep hu`" != "" ]; then
. $DEFLOCDIR/hu
elif [ "`cat /etc/default/locale | grep LANG= | grep id_ID`" != "" ]; then
. $DEFLOCDIR/id_ID
elif [ "`cat /etc/default/locale | grep LANG= | grep it`" != "" ]; then
. $DEFLOCDIR/it
elif [ "`cat /etc/default/locale | grep LANG= | grep ja_JP`" != "" ]; then
. $DEFLOCDIR/ja
elif [ "`cat /etc/default/locale | grep LANG= | grep pl`" != "" ]; then
. $DEFLOCDIR/pl
elif [ "`cat /etc/default/locale | grep LANG= | grep pt_BR`" != "" ]; then
. $DEFLOCDIR/pt_BR
elif [ "`cat /etc/default/locale | grep LANG= | grep pt_PT`" != "" ]; then
. $DEFLOCDIR/pt_PT
elif [ "`cat /etc/default/locale | grep LANG= | grep ru`" != "" ]; then
. $DEFLOCDIR/ru
elif [ "`cat /etc/default/locale | grep LANG= | grep zh_CN`" != "" ]; then
. $DEFLOCDIR/zh_CN
else
. $DEFLOCDIR/en
fi

testroot="`whoami`"
if [ "$testroot" != "root" ]; then
	echo "Must be root... Exiting now..."
	exit 1
fi

DIALOG480="yad --window-icon=x-office-document --width=520 --height=420 --center"
DIALOG="yad --window-icon=x-office-document --width=400 --height=200 --center"
TITLE="--always-print-result --dialog-sep --image=x-office-document --title="
TEXT="--text="
MENU="--list --column=$LOCAL1 --column=$LOCAL2"
OKEXIT=" --button=Ok:0 --button=$LOCAL3:1"
MSGBOX="--button=Ok:0"
TITLETEXT="$LOCAL4"
BUTTONREMOVE="--button=$LOCAL54:3"
BUTTONREINSTALL="--button=$LOCAL55:4"
BUTTONINSTALL="--button=$LOCAL56:0"
BUTTONEXIT="--button=$LOCAL3:1"
INSTALL="apt-get install"
REINSTALL="apt-get install --reinstall"
UNINSTALL="apt-get purge"
if [ -f /usr/bin/pearl-xterm ];then
	PEARLXTERM="/usr/bin/pearl-xterm"
else
	echo "pearl-xterm is missing... Exiting..."
	exit 1
fi
PINGTEST=$(ping -c 1 debian.org | grep [0-9])
ARCHARM="`uname -m | grep arm`"
ARCH64="`uname -m | grep x86_64`"
ARCH32="`uname -m | grep 686`"
#PEARLVERCHECK4="`cat /etc/os-release | grep Tyche`"
#PEARLVERCHECK5="`cat /etc/os-release | grep Nibiru`"

# recive package name
case $1 in
  abiword)
	PACKAGE="abiword"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  atril)
	PACKAGE="atril"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  bluegriffon)
	PACKAGE="bluegriffon"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  boostnote)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="boostnote"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  brackets)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="brackets"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  calibre)
	PACKAGE="calibre"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  calligra)
	PACKAGE="calligra"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  cherrytree)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="cherrytree"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  code)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="code"
	CHECKPACKAGE="/usr/share/$PACKAGE"
     ;;
  codium)
	if [ "$ARCH32" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="codium"
	CHECKPACKAGE="/usr/share/$PACKAGE"
     ;;
  cudatext)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="cudatext"
	CHECKPACKAGE="/usr/share/$PACKAGE"
     ;;
  emacs)
	PACKAGE="emacs"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  evince)
	PACKAGE="evince"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  feathernotes)
	PACKAGE="feathernotes"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  featherpad)
	PACKAGE="featherpad"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  freeoffice)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="softmaker-freeoffice-2018"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  galculator)
	PACKAGE="galculator"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  geany)
	PACKAGE="geany"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  gedit)
	PACKAGE="gedit"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  gnome-calculator)
	PACKAGE="gnome-calculator"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  gnumeric)
	PACKAGE="gnumeric"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
   hiero)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="hiero"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  joplin)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="joplin"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  kate)
	PACKAGE="kate"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  kwrite)
	PACKAGE="kwrite"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  leo)
	PACKAGE="leo"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  libreoffice)
	# check is OpenOffice installed
	if [ -f /opt/openoffice4/program/soffice ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL25\n\n$LOCAL14"
	exit 1
	fi
	PACKAGE="libreoffice"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  lite-editor)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="lite-editor"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  master-pdf-editor)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="master-pdf-editor"
	CHECKPACKAGE="/opt/master-pdf-editor-4/masterpdfeditor4"
     ;;
  mcomix)
	PACKAGE="mcomix"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  mousepad)
	PACKAGE="mousepad"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  ms-online-apps)
	PACKAGE="ms-online-apps"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  msfont)
	PACKAGE="ttf-mscorefonts-installer"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;  
  mupdf)
	PACKAGE="mupdf"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  notepadqq)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="notepadqq"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  okular)
	PACKAGE="okular"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  onlyoffice)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="onlyoffice-desktopeditors"
	CHECKPACKAGE="/opt/onlyoffice"
     ;;
  openoffice)
	# check is LibreOffice installed
	if [ -f /usr/bin/libreoffice ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL31\n\n$LOCAL14"
		exit 1
	fi
	PACKAGE="openoffice"
	OOPACKAGES="openoffice-brand-en-us openoffice-brand-writer openoffice-brand-calc openoffice-brand-impress openoffice-brand-base openoffice-brand-draw openoffice-brand-math openoffice-pyuno openoffice-ooofonts openoffice-ooolinguistic openoffice-debian-menus"
	CHECKPACKAGE="/opt/openoffice4/program/soffice"
     ;;
  pluma)
	PACKAGE="pluma"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  qpdfview)
	PACKAGE="qpdfview"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  scribus)
	PACKAGE="scribus"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  simple-scan)
	PACKAGE="simple-scan"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  vim)
	PACKAGE="vim"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  wps-office)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL49\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGES="wps-office"
	WPSPACKAGES="wps-office wps-office-fonts"
	CHECKPACKAGE="/usr/bin/wps"
     ;;
  xpdf)
	PACKAGE="xpdf"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  xsane)
	PACKAGE="xsane"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
  zim)
	PACKAGE="zim"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE"
     ;;
esac

# install, reinstall or remove openoffice
if [ "$1" = "openoffice" ]; then
	if [ -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL57\n$LOCAL58" $TITLE"$TITLETEXT" $BUTTONREMOVE $BUTTONREINSTALL $BUTTONEXIT
		ret=$?
		if [[ $ret -eq 3 ]]; then
			$PEARLXTERM "$UNINSTALL $OOPACKAGES"
		elif [[ $ret -eq 4 ]]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			$PEARLXTERM "$REINSTALL $OOPACKAGES"
		else
			exit 1
		fi
	elif [ ! -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL60" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			if [ -f "$CHECKPACKAGE" ]; then
				rm -f /etc/apt/sources.list.d/openoffice.list
			fi
cat > /etc/apt/sources.list.d/openoffice.list <<FOO
# Unofficial OpenOffice repository for Debian
deb http://downloads.sourceforge.net/project/apacheoo-deb/debian testing main
FOO
			# install the keyring
			$PEARLXTERM "apt-key adv --keyserver keys.gnupg.net --recv-keys 90127F5B"
			$PEARLXTERM "apt-get update"
			$PEARLXTERM "$INSTALL $OOPACKAGES"
			if [ ! -f "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL23\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL59\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi
	
		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi

# install, reinstall or remove wps-office
elif [ "$1" = "wps-office" ]; then
	if [ -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL57\n$LOCAL58" $TITLE"$TITLETEXT" $BUTTONREMOVE $BUTTONREINSTALL $BUTTONEXIT
		ret=$?
		if [[ $ret -eq 3 ]]; then
			$PEARLXTERM "$UNINSTALL $WPSPACKAGES"
		elif [[ $ret -eq 4 ]]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			$PEARLXTERM "$REINSTALL $WPSPACKAGES"
		else
			exit 1
		fi
	elif [ ! -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL60" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			$PEARLXTERM "$INSTALL $WPSPACKAGES"
			if [ ! -f "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL23\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL59\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi
	
		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi

# install, reinstall or remove anything else
elif [ "$1" != "openoffice" ] && [ "$1" != "wps-office" ]; then
	if [ -d "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL57\n$LOCAL58" $TITLE"$TITLETEXT" $BUTTONREMOVE $BUTTONREINSTALL $BUTTONEXIT
		ret=$?
		if [[ $ret -eq 3 ]]; then
			$PEARLXTERM "$UNINSTALL $PACKAGE"
		elif [[ $ret -eq 4 ]]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			$PEARLXTERM "$REINSTALL $PACKAGE"
		else
			exit 1
		fi
	elif [ ! -d "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL60" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL15 \n\n$LOCAL14"
				exit 1
			fi
			$PEARLXTERM "$INSTALL $PACKAGE"
			if [ ! -d "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL23\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL59\n\n$LOCAL14" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi
	
		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi
fi

exit 0
