#!/bin/bash

# Web browser installer
# Copyright 2017-2020 Paweł "pavroo" Pijanowski under GNU GPL 3
# Last update 2020/11/26 by pavroo

# get default's locale file
DEFLOCDIR="/usr/share/pearl/pearl-web"
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`" != "" ]; 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
else
. $DEFLOCDIR/en
fi

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

DIALOG="`which yad` --width=450 --height=250 --window-icon=web-browser --image=web-browser"
TEXT="--text="
TITLE="--title="
OKEXIT="--button=Ok:0 --button=$LOCAL1:1"
MSGBOX="--button=Ok:0"
BUTTONREMOVE="--button=$LOCAL40:3"
BUTTONREINSTALL="--button=$LOCAL41:4"
BUTTONINSTALL="--button=$LOCAL42:0"
BUTTONEXIT="--button=$LOCAL1:1"
TITLETEXT="$LOCAL2"
PINGTEST=$(ping -c 1 debian.org | grep [0-9])
WORKDIR="/tmp/pearl-chrome"
SERVERG="https://dl.google.com/linux/direct"
PACKG64="google-chrome-stable_current_amd64.deb"
SERVERE="https://dl.google.com/dl/earth/client/current"
PACKE64="google-earth-pro-stable_current_amd64.deb"
#PEARLVERCHECK4="`cat /etc/lsb-release | grep Tyche`"
#PEARLVERCHECK5="`cat /etc/lsb-release | grep Nibiru`"
#PEARLVERCHECK6="`cat /etc/lsb-release | grep Tolo`"
if [ -f /usr/bin/pearl-xterm ];then
	PEARLXTERM="/usr/bin/pearl-xterm"
else
	echo "pearl-xterm is missing... Exiting..."
	exit 1
fi
INSTALL="apt-get install"
REINSTALL="apt-get install --reinstall"
UNINSTALL="apt-get purge"
ARCH64="`uname -m | grep x86_64`"
ARCH32="`uname -m | grep 686`"
ARCHARM="`uname -m | grep arm`"

if [ "$1" = "" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	echo ""
	echo "Usage of pearl-webbrowser-installer is as follows:"
	echo ""
	echo "sudo pearl-webbrowser-installer WEB-BROWSER-NAME"
	echo ""
	echo "Example:"
	echo "sudo pearl-webbrowser-installer midori"
	echo ""
	exit 1
fi

# 64bit only are: brave, cyberfox, google-chrome-stable, opera, waterfox
case $1 in
  beaker)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="beaker-browser"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  brave)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="brave-browser"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE/changelog.gz"
     ;;
  browsh)
	PACKAGE="browsh"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  chromium)
	PACKAGE="chromium"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  cyberfox)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="cyberfox"
	CHECKPACKAGE="/usr/cyberfox/$PACKAGE"
     ;;
  dillo)
	PACKAGE="dillo"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  dooble)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="dooble"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  elinks)
	PACKAGE="elinks"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  epiphany)
	PACKAGE="epiphany-browser"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  falkon)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="falkon"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  firefox-esr)
	PACKAGE="firefox-esr"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE/copyright"
     ;;
  firefox-latest)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="firefox"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE/copyright"
     ;;
  google-chrome-stable)
	if [ "$ARCH64" = "" ]; 	then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="google-chrome-stable"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  google-earth)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="google-earth-pro-stable"
	CHECKPACKAGE="/usr/bin/google-earth-pro"
	PACKEARTH="$PACKE64"
     ;;
  icecat)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="icecat"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  iridium)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="iridium-browser"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  iron)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="iron"
	CHECKPACKAGE="/usr/bin/srware-iron"
     ;;
  konqueror)
	PACKAGE="konqueror"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  links2)
	PACKAGE="links2"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  lynx)
	PACKAGE="lynx"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  midori)
	PACKAGE="midori"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
   min)
	if [ "$ARCH32" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="min"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  netsurf)
	PACKAGE="netsurf-gtk"
	CHECKPACKAGE="/usr/bin/netsurf"
     ;;
  next)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="next"
	CHECKPACKAGE="/usr/share/doc/$PACKAGE/copyright"
     ;;
  opera-stable)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="opera-stable"
	CHECKPACKAGE="/usr/bin/opera"
     ;;
  otter-browser)
	PACKAGE="otter-browser"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  palemoon)
	PACKAGE="palemoon"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  seamonkey)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="seamonkey"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  slimjet)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="slimjet"
	CHECKPACKAGE="/usr/bin/flashpeak-slimjet"
     ;;
  tor-browser)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL37\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="tor-browser"
	CHECKPACKAGE="/usr/bin/start-tor-browser"
     ;;
  vivaldi-stable)
	PACKAGE="vivaldi-stable"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  w3m)
	PACKAGE="w3m"
	CHECKPACKAGE="/usr/bin/$PACKAGE"
     ;;
  waterfox-classic)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="waterfox-classic-kpe"
	CHECKPACKAGE="/usr/bin/waterfox-classic"
     ;;
  waterfox-current)
	if [ "$ARCH64" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL4\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="waterfox-current-kpe"
	CHECKPACKAGE="/usr/bin/waterfox-current"
     ;;
esac

# install, reinstall or remove google-chrome
if [ "$1" = "google-chrome-stable" ]; then
	if [ -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL43\n$LOCAL44" $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"$LOCAL3 \n\n$LOCAL5"
				exit 1
			fi
			rm -rf $WORKDIR
			mkdir -p $WORKDIR
			cd $WORKDIR
			$PEARLXTERM "wget $SERVERG/$PACKG64"
			$PEARLXTERM "apt-get install ./$PACKG64"
		else
			exit 1
		fi
	elif [ ! -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL46" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL3 \n\n$LOCAL46"
				exit 1
			fi
			rm -rf $WORKDIR
			mkdir -p $WORKDIR
			cd $WORKDIR
			$PEARLXTERM "wget $SERVERG/$PACKG64"
			$PEARLXTERM "apt-get install ./$PACKG64"
			if [ ! -f "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL45\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL47\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi

		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi

# install, reinstall or remove google-earth
elif [ "$1" = "google-earth" ]; then
	if [ -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL43\n$LOCAL44" $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"$LOCAL3 \n\n$LOCAL5"
				exit 1
			fi
			rm -rf $WORKDIR
			mkdir -p $WORKDIR
			cd $WORKDIR
			$PEARLXTERM "wget $SERVERE/$PACKEARTH"
			$PEARLXTERM "apt-get install ./$PACKEARTH"
		else
			exit 1
		fi
	elif [ ! -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL46" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL3 \n\n$LOCAL46"
				exit 1
			fi
			rm -rf $WORKDIR
			mkdir -p $WORKDIR
			cd $WORKDIR
			$PEARLXTERM "wget $SERVERE/$PACKEARTH"
			$PEARLXTERM "apt-get install ./$PACKEARTH"
			if [ ! -f "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL45\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL47\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi

		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi

# install, reinstall or remove anything else
else
	if [ -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL43\n$LOCAL44" $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"$LOCAL3 \n\n$LOCAL5"
				exit 1
			fi
			$PEARLXTERM "$REINSTALL $PACKAGE"
		else
			exit 1
		fi
	elif [ ! -f "$CHECKPACKAGE" ]; then
		$DIALOG $TEXT"\n$LOCAL46" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
		if [ "$?" = "0" ]; then
			if [ "$PINGTEST" = "" ]; then
				$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL3 \n\n$LOCAL5"
				exit 1
			fi
			$PEARLXTERM "$INSTALL $PACKAGE"
			if [ ! -f "$CHECKPACKAGE" ]; then
				$DIALOG $TEXT"\n$LOCAL45\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			else
				$DIALOG $TEXT"\n$LOCAL47\n\n$LOCAL5" $TITLE"$TITLETEXT" $MSGBOX
				exit 1
			fi

		elif [ "$?" != "0" ]; then
			exit 1
		fi
	fi
fi

exit 0
