#!/bin/bash

# Copy to USB Key Tool Copyright 2009,2011 by Tony Brijeski under the GPL V2
# Using yad for gui calls
#
# Remastered for SparkyLinux by Paweł "pavroo" Pijanowski <pavroo@onet.eu> 2014/06/05
# Copyright 2014-2024 Paweł Pijanowski under the GPL V2
# Last update 2024/08/04 by pavroo

# get default's locale file
DEFLOCDIR="/usr/share/sparky/sparky-live-usb-creator"
if [ "`cat /etc/default/locale | grep LANG= | grep ar`" != "" ]; then
. $DEFLOCDIR/ar
elif [ "`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
	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`" != "" ]; 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`" != "" ]; then
. $DEFLOCDIR/se
elif [ "`cat /etc/default/locale | grep LANG= | grep uk`" != "" ]; then
. $DEFLOCDIR/uk
elif [ "`cat /etc/default/locale | grep LANG= | grep zh_CN`" != "" ]; then
. $DEFLOCDIR/zh_CN
else
. $DEFLOCDIR/en
fi

DIALOG="`which yad` --width 400"
TITLE="--always-print-result --dialog-sep --window-icon=usb-creator --image=usb-creator --title="
TITLETEXT="$LOCAL1"
TEXT="--text="
FILESELECTION="--file "
OKBUTTON="--button=Ok:0 "
DIALOGZEN="zenity --progress --pulsate --auto-close --auto-kill --no-cancel --window-icon=/usr/share/icons/sparky/persistent/sparky48.png --width=450 --height=120"
TITLEZEN="--title="
testroot="`whoami`"
if [ "$testroot" != "root" ]; then
	echo "must me root... exiting..."
	exit 1
fi

copymenu () {
if [ "$1" = "(null)" ]; then
	$DIALOG $TITLE"$TITLETEXT" $TEXT"\n$LOCAL2"
	mainmenu
fi

if [ "$2" = "(null)" ]; then
	$DIALOG $TITLE"$TITLETEXT" $TEXT"\n$LOCAL3"
	mainmenu
fi

$DIALOG $TITLE"$TITLETEXT" $TEXT"\n$LOCAL4"

if [ $? != 0 ]; then
	mainmenu
fi

#umount `mount | grep $1 | awk '{print $1}'`
#UMDEVS3=`mount | grep $1 | awk '{print $1}' | tail -n1 | grep 3`
UMDEVS3=`mount | grep $1 | grep 3 | awk '{print $1}'`
if [ "$UMDEVS3" != "" ]; then
	umount "$UMDEVS3"
	sleep 1
fi
#UMDEVS1=`mount | grep $1 | awk '{print $1}'`
UMDEVS1=`mount | grep $1 | grep 1 | awk '{print $1}'`
umount "$UMDEVS1"

#do the copy
#$DIALOG $TITLE"$TITLETEXT" $TEXT"$LOCAL5\n" --no-buttons --progress --pulsate --auto-close --auto-kill &
#dd if=$2 of=/dev/$1 bs=4M && sync
#killall -KILL yad
(dd if=$2 of=/dev/$1 bs=4M && sync) | $DIALOGZEN $TITLEZEN"$TITLETEXT" $TEXT"\n$LOCAL5\n"
sleep 1

$DIALOG $TITLE"$TITLETEXT" $TEXT"\n$LOCAL6" $OKBUTTON

}

mainmenu () {
DEVS=""
#DEVS=`ls -l /dev/disk/by-path/*usb* | grep -v "part" | grep -v "usbv" | grep -v "by-label" | grep -v "by-uuid" | awk '{print $NF}' | awk -F "/" '{print $NF}'`
DEVS=`ls -l /dev/disk/by-id/*usb* | grep -v "usbv" | grep -v "part" | awk -F "/" '{print $NF}'`
if [ "$DEVS" != "" ]; then
	for i in $DEVS; do
		USBDRIVESIZE=`grep -m 1 "$i" /proc/partitions | awk '{print $3}'`
		USBDRIVES="$USBDRIVES!$i-$USBDRIVESIZE"
	done
else
	$DIALOG $TITLE"$TITLETEXT" $OKBUTTON $TEXT"\n$LOCAL7"
	exit 0
fi

CHOICES=`$DIALOG $TITLE"$TITLETEXT" --form --field="$LOCAL8:CB" $USBDRIVES --field="$LOCAL9:FL" --button="$LOCAL10:2" --button="$LOCAL11:1"`
retval="$?"

if [ "$retval" = "1" ]; then
	USBDRIVE=`echo $CHOICES | cut -d "|" -f 1 | cut -d "-" -f 1`
	PICKSOURCE=`echo $CHOICES | cut -d "|" -f 2`
	copymenu $USBDRIVE $PICKSOURCE
else
	exit 0
fi
}

mainmenu
