#!/bin/bash

# Sparky Codecs Installer lets you install multimedia codecs via one click.
# It installs support for: mp3, xvid/divx, dvd, flash plugin, etc.
#
# Copyright 2014-2021 Paweł "pavroo" Pijanowski <pavroo@onet.eu>
# Licensed under the GPLv2 license
# Last update 2021/03/02

# get default's locale file
DEFLOCDIR="/usr/share/sparky/sparky-codecs"
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 it`" != "" ]; then
. $DEFLOCDIR/it
elif [ "`cat /etc/default/locale | grep LANG= | grep id_ID`" != "" ]; then
. $DEFLOCDIR/id_ID
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 sv_SE`" != "" ]; then
. $DEFLOCDIR/se
else
. $DEFLOCDIR/en
fi

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

DIALOG="yad --window-icon=gnome-audio --width=450 --height=200 --center"
TITLE="--always-print-result --dialog-sep --image=gnome-audio --title="
TEXT="--text="
MSGBOX="--button=Ok:0"
BUTTONREMOVE="--button=$LOCAL8:3"
BUTTONREINSTALL="--button=$LOCAL9:4"
BUTTONINSTALL="--button=$LOCAL10:0"
BUTTONEXIT="--button=$LOCAL1:1"
TITLETEXT="$LOCAL2"
INSTALL="apt-get install"
REINSTALL="apt-get install --reinstall"
UNINSTALL="apt-get purge"
if [ -f /usr/bin/sparky-xterm ]; then
	SPARKYXTERM="/usr/bin/sparky-xterm"
else
	echo "sparky-xterm is missing... Exiting..."
	exit 1
fi
ARCH64="`uname -m | grep x86_64`"
ARCH32="`uname -m | grep 686`"
ARCHARM="`uname -m | grep arm`"
SPARKYVERCHECK6="`cat /etc/os-release | grep Tolo`"
SPARKYVERCHECK5="`cat /etc/os-release | grep Nibiru`"
SPARKYVERCHECK4="`cat /etc/os-release | grep Tyche`"

# check connection
PINGTEST=$(ping -c 1 debian.org | grep [0-9])

# recive package name
case $1 in
  ffmpeg)
	PACKAGE="ffmpeg"
     ;;
  bad)
	PACKAGE="gstreamer1.0-plugins-bad"
     ;;
  ugly)
	PACKAGE="gstreamer1.0-plugins-ugly"
     ;;
  flash-chromium)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL16\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	if [ "$SPARKYVERCHECK5" = "" ] || [ "$SPARKYVERCHECK4" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL16\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="flashplayer-chromium"
     ;;
  flash-mozilla)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL16\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	if [ "$SPARKYVERCHECK5" = "" ] || [ "$SPARKYVERCHECK4" = "" ]; then
		$DIALOG $TEXT"\n$LOCAL16\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	fi
	PACKAGE="flashplayer-mozilla"
     ;;
  libav)
	PACKAGE="gstreamer1.0-libav"
     ;;
  libdvd-pkg)
	PACKAGE="libdvd-pkg"
     ;;
  libdvdread)
	if [ "$SPARKYVERCHECK5" != "" ] || [ "$SPARKYVERCHECK4" != "" ]; then
		PACKAGE="libdvdread4"
	else
		PACKAGE="libdvdread8"
	fi
     ;;
  lame)
	PACKAGE="lame"
     ;;
  mencoder)
	PACKAGE="mencoder"
     ;;
  lame)
	PACKAGE="lame"
     ;;
  openjdk)
	PACKAGE="default-jre"
     ;;
  w3264codecs)
	if [ "$ARCHARM" != "" ]; then
		$DIALOG $TEXT"\n$LOCAL16\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
		exit 1
	elif [ "$ARCHA64" != "" ]; then
		PACKAGE="w64codecs"
	elif [ "$ARCHA32" != "" ]; then
		PACKAGE="w32codecs"
	fi
     ;;
  x264)
	PACKAGE="x264"
     ;;
  x265)
	PACKAGE="x265"
     ;;
esac

# install, reinstall or remove a package now

if [ -d /usr/share/doc/$PACKAGE ]; then
	$DIALOG $TEXT"\n$LOCAL11\n$LOCAL12" $TITLE"$TITLETEXT" $BUTTONREMOVE $BUTTONREINSTALL $BUTTONEXIT
	ret=$?
	if [[ $ret -eq 3 ]]; then
		$SPARKYXTERM "$UNINSTALL $PACKAGE"
	elif [[ $ret -eq 4 ]]; then
		if [ "$PINGTEST" = "" ]; then
			$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n$LOCAL3"
			exit 1
		fi
		$SPARKYXTERM "$REINSTALL $PACKAGE"
	else
		exit 1
	fi
elif [ ! -d /usr/share/doc/$PACKAGE ]; then
	$DIALOG $TEXT"\n$LOCAL13" $TITLE"$TITLETEXT" $BUTTONINSTALL $BUTTONEXIT
	if [ "$?" = "0" ]; then
		if [ "$PINGTEST" = "" ]; then
			$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n$LOCAL3"
			exit 1
		fi
		$SPARKYXTERM "$INSTALL $PACKAGE"
		if [ ! -d /usr/share/doc/$PACKAGE ]; then
			$DIALOG $TEXT"\n$LOCAL14\n\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
			exit 1
		else
			$DIALOG $TEXT"\n$LOCAL17\n\n$LOCAL15" $TITLE"$TITLETEXT" $MSGBOX
			exit 1
		fi
	
	elif [ "$?" != "0" ]; then
		exit 1
	fi
fi

exit 0
