#!/bin/bash

# LightScribe On-Line Installer is a script which can download and install 
# support of LightScribe technology for Linux (64 bit)
# Created by Paweł "pavroo" Pijanowski 2015/03/10
# Copyright 2015-2024 under the GNU GPL2 License
# Last update 2024/08/29

# get default's locale file
DEFLOCDIR="/usr/share/sparky/lightscribe-installer"
if [ "`cat /etc/default/locale | grep LANG= | grep el`" != "" ]; then
. $DEFLOCDIR/el
elif [ "`cat /etc/default/locale | grep LANG= | grep es`" != "" ]; then
	if [ "`cat /etc/default/locale | grep LANG= | grep es_AR`" != "" ]; then
. $DEFLOCDIR/es_AR
	else
. $DEFLOCDIR/es_ES
	fi
elif [ "`cat /etc/default/locale | grep LANG= | grep fi`" != "" ]; then
. $DEFLOCDIR/fi
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_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`" != "" ]; 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`" != "" ]; then
. $DEFLOCDIR/se
elif [ "`cat /etc/default/locale | grep LANG= | grep uk`" != "" ]; then
. $DEFLOCDIR/uk
else
. $DEFLOCDIR/en
fi

testroot="`whoami`"
if [ "$testroot" != "root" ]; then
	/usr/bin/remsu $0 &
fi

DIALOG="yad --window-icon=text-x-script --width=450 --height=200 --center"
TITLE="--always-print-result --dialog-sep --image=text-x-script --title="
TEXT="--text="
OKEXIT=" --button=Ok:0 --button=$LOCAL1:1 "
MSGBOX=" --button=Ok:0 "
TITLETEXT="$LOCAL2"
WORKDIR="/tmp/lightscribe"
if [ -f /usr/bin/sparky-xterm ];then
	SPARKYXTERM="/usr/bin/sparky-xterm"
else
	echo "sparky-xterm is missing... Exiting..."
	exit 1
fi

DEB1="lightscribe-1.18.8.1-linux-2.6-intel.deb"
DEB2="lightscribeApplications-1.18.6.1-linux-2.6-intel.deb"
RPM1="LaCie-LightScribe-Labeler-1.0-Linux.rpm"
TEXTBROKEN="$LOCAL3"
TEXTDONE="$LOCAL4"
FOREIGN=`dpkg --print-foreign-architectures | grep "i386" | awk '{print $1}'`
# checking Debian 9/10 and Sparky 4/5
#SPARKYVERCHECK5="`cat /etc/issue | grep 5`"
SPARKYVERCHECK4="`cat /etc/issue | grep 4`"
#DEBIANVERCHECK10="`cat /etc/issue | grep buster`"
DEBIANVERCHECK9="`cat /etc/issue | grep stretch`"
#if [ "$SPARKYVERCHECK5" != "" ] || [ "$DEBIANVERCHECK10" != "" ]
#then
#	CHECKWGET2=`dpkg-query -l | grep wget2`
#	if [ "$CHECKWGET2" = "" ]
#	then
#		xmessage "wget2 has to be installed"
#		exit 1
#	else
#		XWGET="wget2"
#	fi
#fi

if [ "$SPARKYVERCHECK4" != "" ] || [ "$DEBIANVERCHECK9" != "" ]
then
	CHECKWGET=`dpkg-query -l | grep wget`
	if [ "$CHECKWGET" = "" ]
	then
		xmessage "wget has to be installed"
		exit 1
	else
		XWGET="wget"
	fi
else
	CHECKWGET2=`dpkg-query -l | grep wget2`
	if [ "$CHECKWGET2" = "" ]
	then
		xmessage "wget2 has to be installed"
		exit 1
	else
		XWGET="wget2"
	fi
fi

ARCHARM="`uname -m | grep arm`"
if [ "$ARCHARM" != "" ]
then
	xmessage "Wrong architecture...Exiting..."
	exit 1
fi

$DIALOG $TITLE"$TITLETEXT" $OKEXIT $TEXT"$LOCAL5"

if [ "$?" != "0" ]; then

	$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL6"
	exit 0

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

	if [ "$PINGTEST" = "" ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$LOCAL7"
		exit 0
	fi

else

	# download packages
	if [ ! -d $WORKDIR ]; then
		mkdir -p $WORKDIR
	fi

	cd $WORKDIR
	
	if [ ! -f $WORKDIR/$DEB1 ]; then
		$SPARKYXTERM "$XWGET https://sparkylinux.org/files/$DEB1"
	fi

	if [ ! -f $WORKDIR/$DEB1 ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTBROKEN"
		exit 0
	fi

	if [ ! -f $WORKDIR/$DEB2 ]; then
		$SPARKYXTERM "$XWGET https://sparkylinux.org/files/$DEB2"
	fi

	if [ ! -f $WORKDIR/$DEB2 ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTBROKEN"
		exit 0
	fi

	if [ ! -f $WORKDIR/lacie.rpm ]; then
		$SPARKYXTERM "$XWGET https://sparkylinux.org/files/$RPM1 -O lacie.rpm"
	fi

	RPMSIZE=`ls -s $WORKDIR/lacie.rpm | awk -F " " '{print $1}'`

	if [ "$RPMSIZE" = "0" ]; then
		rm -f $WORKDIR/lacie.rpm
		$SPARKYXTERM "$XWGET https://sparkylinux.org/files/$RPM1 -O lacie.rpm"
	fi

	if [ ! -f $WORKDIR/lacie.rpm ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTBROKEN"
		exit 0
	fi

	if [ "$RPMSIZE" = "0" ]; then
		$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTBROKEN"
		rm -f $WORKDIR/lacie.rpm
		rm -rf /opt/4L
		exit 0
	fi

	# check does your 64 bit system have multi-arch support enabled for i386 architecture
	if [ "$FOREIGN" = "" ]; then
		dpkg --add-architecture i386
		$SPARKYXTERM "apt-get update"
	fi

	# install deb packages on 64 bit host
	$SPARKYXTERM "dpkg -i $DEB1 $DEB2"
	$SPARKYXTERM "apt-get install -f -y"

	# unpack and install files from the RPM package
	rpm2cpio lacie.rpm | cpio -vid
	cd usr
	rm -rf /opt/4L
	mkdir -p /opt/4L
	rsync -a 4L /opt/

	if [ -f /opt/4L/4L-cli ]; then
		ln -sf /opt/4L/4L-cli /usr/bin/4L-cli
	fi

	if [ -f /opt/4L/4L-gui ]; then
		ln -sf /opt/4L/4L-gui /usr/bin/4L-gui
	fi

fi

# last check have everything been installed
if [ -f /usr/bin/4L-gui ]; then
	$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTDONE"
	exit 0

else
	$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"$TEXTBROKEN"
	exit 0
fi

exit 0
