#!/usr/bin/sh

# Replace sytem logo
# Version: 2021.11.02.15:15
# Author: Kārlis Kalviškis <karlo@lu.lv>
# License: GPLv3


# For translation
export TEXTDOMAIN="karlo-scripts"
. gettext.sh

SHOW_IMAGE=tiv
LOGO_DIR=/usr/share/pixmaps
LOGO=$LOGO_DIR/system-logo-white.png

type -P $SHOW_IMAGE &>/dev/null || { echo  "`eval_gettext 'Command'` "\'$SHOW_IMAGE\'" `eval_gettext 'is missing'` `eval_gettext ' – preview will not be shown.'`"; SHOW_IMAGE=''; }

INFO () {
	if [ "$SHOW_IMAGE" != "" ]; then
		$SHOW_IMAGE -d $1
	fi
	file $1
	echo
}

CHECK () {
	if [ "$1" == "-ln" ]; then
		VIETA=$LOGO_DIR/
	fi
	if [ "$2" == "" ]; then
		echo  "`eval_gettext 'File name is missing'`"
		exit 1
	else
		if [ ! -e "$VIETA$2" ]; then
			echo  "`eval_gettext 'None existing file'` $VIETA$2"
			exit 1
		fi
	fi
	if [[ $UID -ne 0 ]]; then
		echo
		echo `eval_gettext 'root privileges required'`
		echo `eval_gettext 'Use'` su
		echo     `eval_gettext 'or'`
		echo sudo $0 $1 $2
		echo
		exit 126
	fi
	rm -f $LOGO
}

# If none-default plymouth theme is used
PLYMOUTH () {
	type -P plymouth-set-default-theme &>/dev/null || return
	PTHEME=$(plymouth-set-default-theme)
	if [ "$PTHEME" != "bgrt" ]; then
		echo `eval_gettext 'Recreating the Plymouth screen'`
		plymouth-set-default-theme -R $PTHEME
	fi
}

if [ $# -gt 0 ]; then
	for parametrs in $*
	do
		case $parametrs in
			-h | --help ) echo `eval_gettext 'Usage'`: $0 '['`eval_gettext 'parameters'`'|-h|--help]'
				echo `eval_gettext 'Without any parameters, the script will show the information about the system logo'`.
				echo -e '\t-cp '`eval_gettext 'file'`' – '`eval_gettext 'Copy the file as the system logo'`.
				echo -e '\t-ln '`eval_gettext 'file'`' – '`eval_gettext 'Make a symbolic link to the available Fedora logo'`.
				echo -e '\t-ls – '`eval_gettext 'Will list the available Fedora logo'`.
				exit
				;;
			-cp ) CHECK $1 $2
				cp $2 $LOGO
				PLYMOUTH
				;;
			-ln ) CHECK $1 $2
				ln -s $2 $LOGO
				PLYMOUTH
				;;
			-ls ) for FAILS in $LOGO_DIR/*fedora*logo*.png ; do INFO $FAILS; done
				;;
			-* ) echo `eval_gettext 'Unknown parameter'` " $parametrs"
				exit 1
				;;
		esac
	done
else
	echo `eval_gettext 'Current system logo:'`
	INFO $LOGO
fi
