#!/bin/bash
#coding: utf8

# ▞▀▖         ▐     ▜  ▙▗▌      ▗▐                
# ▌  ▙▀▖▌ ▌▞▀▘▜▀ ▝▀▖▐  ▌▘▌▞▀▖▛▀▖▄▜▀ ▞▀▖▙▀▖ 
# ▌ ▖▌  ▚▄▌▝▀▖▐ ▖▞▀▌▐  ▌ ▌▌ ▌▌ ▌▐▐ ▖▌ ▌▌   
# ▝▀ ▘  ▗▄▘▀▀  ▀ ▝▀▘ ▘ ▘ ▘▝▀ ▘ ▘▀▘▀ ▝▀ ▘   
#
# Crystal Monitor nastavitveniK
# by Mihael Simonic <smihael@gmail.com>
# Licence (application):  GPL v3
# Licence (oxygen icons): LGPL v3

# French translation by Adrien Futschik
# German and Slovenian translation by Crystal Monitor author
# Italian translation by Arnaud Yviquel
# Polish translation by Ines Zgonc
# Spanish translation by Diego Agulló Falcó

SCRIPT_ID="nastavitveniK 0.1 for CrystalMonitor 9.0"
#sKiner
CMEXTDIR=$HOME/.superkaramba/Crystal
TAR=crystal+.tar.gz
EXTPATH=http://download.tuxfamily.org/popensource/cm/$TAR
#loKalizer
CM_PRE="28165-"
CM_ID="cm9"
CM_KDEDIR=`kde4-config --localprefix`
CM_PATH=$CM_KDEDIR"share/apps/plasma/plasmoids/sk_"$CM_PRE$CM_ID"/"
#messages
WELCOME="Welcome to $SCRIPT_ID! \n\n CrystalMonitor configuring utility!"
WHAT="What do you want today?"
FROMINTERNET="Do you want to install extra packages for CrystalMonitor from the Internet? \n Select No if you've already downloaded file $TAR."
NEXT="Click OK to continue with the next step."
DOWN="Downloading ..."
EXT="Extracting ..."
CLEAN="Cleaning temporary files ..."
PREFVER="Select preferred version:"
PREFSKIN="Select preferred skin:"
SELECTED="You selected:"
ENJOY="Congratulations! \n Enjoy" 
ERROR="Error! \n For help send log.txt file to smihael@gmail.com."
BY="by"
SWITCH="Do you want to switch to older version (select Yes) or to switch between skins (select No)?"
CONGA1="Congratulations! Downloading, extracting and cleaning finished successfully! $NEXT"
CONGA2="Congratulations! Extracting finished successfully! $NEXT"
LOC="Select where $TAR is saved"
PLASMA="At this step plasma desktop will be quit for some reasons."
CONGRA3="Congratulations! \n Now you can enjoy CrystalMonitor in your language!"
REPACK="Repackaging ..."
OPT1="change CrystalMonitor skin"
OPT1b="change CrystalMonitor version"
OPT2="change CrystalMonitor language"
OPT3="apply different font"
OPT4="visit project homepage"
OPT5="donate to the project"
NOTIMP="Sorry! \n Function is not yet implemented."
#coremessages ()
KERNEL="Kernel"
USER="User"
TOTAL="Total usage"
CPU="CPU temperature"
RAM="RAM"
SWAP="Swap"
ROOT="Root"
HOMEFOLD="Home"
OF="of"
USED="used"
TEMP="Disk temperature"
SYSTEM="System"
DOWNS="Downstream"
UPS="Upstream"

case $LANG in

	en* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in English language. \n English language pack is installed by default!"
		echo "Don't touch! This file prevents ... substituting strings with blank ones" >> cmlangnot;;

	de* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in German language. \n German language patch has been just applied."
		#Strings for CM main app
		KERNEL="Kern"
		USER="Benutzer"
		TOTAL="Prozessor gebr."
		CPU="Prozessor Temperatur "
		RAM="RAM gebrauchen"
		SWAP="Swap gebrauchen"
		ROOT="Root Ordner"
		HOMEFOLD="Bernutzer Ordner"
		OF="von"
		USED=""
		TEMP="Disk Temperatur"
		LANG_CM="Deutsche sprache";;

	es* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in Spanish language. \n Sapanish language patch has been just applied."
		#Strings for CM main app
		USER="Usuario"
		SYSTEM="Sistema"
		TOTAL="Total uso"
		CPU="Temperatura de CPU"
		RAM="Uso de memoria RAM"
		SWAP="Uso de memoria Swap"
		ROOT="Carpeta raíz"
		HOMEFOLD="Carpeta de inicio"
		OF="de"
		USED=""
		TEMP="Temperatura"
		LANG_CM="En español";;

	it* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in Italian language. \n Italian language patch has been just applied."
		#Strings for CM main app
		USER="Utente"
		SYSTEM="Sistema"
		TOTAL="CPU Utilizzo"
		CPU="Temperatura del processore"
		RAM="Memoria in uso"
		SWAP="Swap Utilizzato"
		ROOT="/"
		HOMEFOLD="/home"
		OF="di"
		USED=""
		TEMP="Temperatura"
		LANG_CM="Di lingua italiana";;

	pl* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in Polish. \n Polish language patch has been just applied."
		#Strings for CM main app
		KERNEL="Jądro"
		USER="Użytkownik"
		TOTAL="Razem użytkowania"
		CPU="Temperatura procesora"
		RAM="Pamięci RAM"
		SWAP="Pamięci SWAP"
		HOMEFOLD="Dom"
		OF="z"
		USED=""
		TEMP="Temperatura"
		LANG_CM="Polski język";;

	sl* )
		LOKALIZER_TEXT="Sklicujoč se na \$LANG, namizno okolje KDE uporabljate v slovenskem jeziku. \n Angleški jezikovni paket je bil prepisan s slovenskim."
		#Strings for CM main app
		KERNEL="Jedro"
		USER="Uporabnik"
		SYSTEM="Sistem"
		TOTAL="Skupna uporaba"
		CPU="Temperatura"
		RAM="Poraba RAMa"
		SWAP="Izmenjalni pomnilnik"
		DOWNS="Prejemanje"
		UPS="Oddajanje"
		ROOT="Korenska mapa"
		HOMEFOLD="Uporabnikova mapa"
		OF="od"
		USED=""
		TEMP="Temperatura trdega diska"
		LANG_CM="Slovenski jezik";;
	fr* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in French. \n French language patch has been just applied."
		#Strings for CM main app
		KERNEL="Noyau"
		USER="Utilisateur"
		SYSTEM="Système"
		TOTAL="Utilisation totale"
		CPU="Température CPU"
		RAM="Occupation de la RAM"
		SWAP="SWAP"
		DOWNS="Download"
		UPS="Upload"
		ROOT="Racine"
		OF="de"
		USED=""
		TEMP="Température HDD"
		LANG_CM="Langue française";;

	* )
		LOKALIZER_TEXT="According to \$LANG you are using K Desktop Environment in $LANG. \n There is no packages for your language! \n For help contact me at smihael@gmail.com."
		echo "Don't touch! This file prevents ... substituting strings with blank ones" >> cmlangnot;;

esac

loKalizer () {
	kdialog --title "$SCRIPT_ID" --msgbox "$PLASMA"
	kquitapp plasma
	kdialog --passivepopup "$EXT" 
		cd $CM_PATH
		cp $CM_ID.skz $CM_ID.skz.bak
		mv $CM_ID.skz $CM_ID.zip
		unzip -o "$CM_ID.zip" -d "$CM_ID"
		cd $CM_ID
		if [ -a cmlangnot ]; then
			kdialog  --title "$SCRIPT_ID" --sorry "$LOKALIZER_TEXT"
			rm cmlangnot
		else
			kdialog --title "$SCRIPT_ID" --msgbox "$LOKALIZER_TEXT"
			sed -i.bak -e "s/Kernel/$KERNEL/" -e "s/User/$USER/" -e "s/System/$SYSTEM/" -e "s/Total usage/$TOTAL/" -e "s/CPU temperature/$CPU/" -e "s/RAM/$RAM/" -e "s/Swap/$SWAP/" -e "s/Downstream/$DOWNS/" -e "s/Upstream/$UPS/" -e "s/Root/$ROOT/" -e "s/Home/$HOME_FOLD/" -e "s/of/$OF/" -e "s/used/$USED/" -e "s/Disk temperature/$TEMP/" -e "s/None/$LANG_CM/" Crystal.theme
		fi
	kdialog --passivepopup "$REPACK" 
		zip -r $CM_ID.skz *
		mv $CM_ID.skz ../$CM_ID.skz
		kdialog --passivepopup "$CLEAN" 
		cd ../
		rm -R $CM_ID
	plasma
	kdialog --title "$SCRIPT_ID" --msgbox "$CONGRA3" 
}

backup () {
	rm -Rf $CMEXTDIR.old
	mv $CMEXTDIR $CMEXTDIR.old
}

step1 () {
kdialog --title "$SCRIPT_ID" --yesnocancel "$FROMINTERNET"; a=$?;
	if [ $a = "0" ]; then
		backup
		kdialog --passivepopup "$DOWN"
		wget $EXTPATH
		kdialog --passivepopup "$EXT"
		mkdir $CMEXTDIR
		cp $TAR $CMEXTDIR
		rm $TAR
		cd $CMEXTDIR
		tar -zxvf $TAR
		kdialog --passivepopup "$CLEAN"
		kdialog --title "$SCRIPT_ID" --msgbox "$CONGA1"
	elif [ $a = "1" ]; then
		backup
		kdialog --title "$LOC" --getopenfilename . "*.tar.gz |*.TAR.GZ" >> tar.txt
		TAR2=`cat tar.txt`
		rm tar.txt
		mkdir $CMEXTDIR
		cd $CMEXTDIR
		kdialog --passivepopup "$EXT"
		tar -zxvf $TAR2
		kdialog --title "$SCRIPT_ID" --msgbox "$CONGA2"
	else
		exit
	fi
}

versioner () {
	  step1
	  kdialog --combobox "$PREFVER" "CrystalMonitor 9.0.1" "CrystalMonitor 9.0" "CrystalMonitor 8.1.0" "CrystalMonitor 8.1.1" "CrystalMonitor 8.1" "CrystalMonitor 8.0" "CrystalMonitor 7" "CrystalMonitor 6.3.2" "CrystalMonitor 6.3" "CrystalMonitor 6.2" "CrystalMonitor 6.1" "CrystalMonitor 6.0" "SuperMonitor 5.4" "SuperMonitor 5.3" "SuperMonitor 5.1" "SuperMonitor 5.0.1" "SuperMonitor 5.0.1 ACPI" "SuperMonitor 5.0.1 Network" "SuperMonitor 4.0" "SuperMonitor 5.0.1 ACPI" "SuperMonitor 5.0.1 Network" "SuperMonitor 4.0 Small" "SuperMonitor 4.0 Color" "SuperMonitor 4.0 Dark Colors" "SuperMonitor 4.0 Grey" "SuperMonitor 4.0 Network" "SuperMonitor 4.0 Nuvola" "SuperMonitor 4.0 Old" "SuperMonitor 4.0 Small" "SuperMonitor 4.0 Small Grey" "SuperMonitor 4.0 Small Without Clock" "SuperMonitor 4.0 Without Clock" "SuperMonitor 4.0 With Additional CPU Info" >> version
	  kdialog --passivepopup "$SELECTED `cat version`"
	  VERSION=`cat version`
	  TEXT="$ENJOY $VERSION."
	  case $VERSION in
		  *9.0.1)
			  superkaramba $CMEXTDIR/archive/cm901.skz;;
		  *9.0)
			  superkaramba $CMEXTDIR/archive/cm9.skz;;
		  *8.1.0)
			  superkaramba $CMEXTDIR/archive/cm810.skz;;
		  *8.1.1)
			  superkaramba $CMEXTDIR/archive/cm811.skz;;
		  *8.0)
			  superkaramba $CMEXTDIR/archive/cm8.skz;;
		  *7)
			  superkaramba $CMEXTDIR/archive/cm7beta.skz;;
		  *6.3.2)
			  superkaramba $CMEXTDIR/archive/cm632.skz;;
		  *6.3)
			  superkaramba $CMEXTDIR/archive/cm6.3.skz;;
		  *6.2)
			  superkaramba $CMEXTDIR/archive/cm6.2.skz;;
		  *6.1)
			  superkaramba $CMEXTDIR/archive/cm6.1.skz;;
		  *6.0)
			  superkaramba $CMEXTDIR/archive/cm6.0.skz;;
		  *5.4)
			  superkaramba $CMEXTDIR/archive/SuperMonitor5.4.skz;;
		  *5.3)
			  superkaramba $CMEXTDIR/archive/SuperMonitor5.3.skz;;
		  *5.1)
			  superkaramba $CMEXTDIR/archive/SuperMonitor5.1.skz;;
		  *5.0.1)
			  cd $CMEXTDIR/archive/SuperMonitor5.0
			  superkaramba SuperMonitor.theme;;
		  *"5.0.1 ACPI")
			  cd $CMEXTDIR/archive/SuperMonitor5.0
			  superkaramba ACPI.theme;;
		  *"5.0.1 Network")
			  cd $CMEXTDIR/archive/SuperMonitor5.0
			  superkaramba Network.theme;;
		  *4.0)
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor.theme;;
		  *"4.0 Small")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor1.theme;;
		  *"4.0 Color")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_colour.theme;;
		  *"4.0 Dark Colors")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_darkcolour.theme;;
		  *"4.0 Grey")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_grey.theme;;
		  *"4.0 Network")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_network.theme;;
		  *"4.0 Nuvola")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_nuvola.theme;;
		  *"4.0 Old")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_old.theme;;
		  *"4.0 Slovene")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor-sl.theme;;
		  *"4.0 Small")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_small.theme;;
		  *"4.0 Small Grey")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_small_grey.theme;;
		  *"4.0 Small Without Clock")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_small_withoutclock.theme;;
		  *"4.0 Without Clock")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_whitoutclock.theme;;
		  *"4.0 With Additional CPU Info")
			  cd $CMEXTDIR/archive/SuperMonitor4.0
			  superkaramba SuperMonitor_with_procesor_info.theme;;
		  *)
			  TEXT="$ERROR";;
	  esac
	  kdialog --title "$SCRIPT_ID" --msgbox "$TEXT"
	  rm version
}

sKiner () {
	  step1
	  kdialog --combobox "$PREFSKIN" "CrystalMonitorGroup $BY Leszek Ostachowski" "EasyMonitor 0.4 $BY Leszek Ostachowski" "GnomaSAnDTrolaS System Monitor 1.0 $BY chichovoto" "GnomaSAnDTrolaS System Monitor 1.1 $BY chichovoto" "GnomaSAnDTrolaS System Monitor Oxygen Editon for KDE 4 $BY chichovoto" "miminon 0.3 $BY Piotr Jankowski" "MyMon 0.2b $BY Faust Zanardi" "Tiny MyMon 0.2b $BY Faust Zanardi" "SuperMonitor Mod $BY Ivan Bobrov" "CrystalPingo" >> skin
	  kdialog --passivepopup "You selected: `cat skin`"
	  SKIN=`cat skin`
	  TEXT="$ENJOY $SKIN."
	  case $SKIN in
		  CrystalMonitorGroup*)
			  $CMEXTDIR/CrystalMonitorGroup/instal;;
		  EasyMonitor*)
			  $CMEXTDIR/EasyMonitor/install.sh;;
		  "GnomaSAnDTrolaS System Monitor 1.0"*)
			  cd $CMEXTDIR/GT1
			  superkaramba G&TMonitor.theme;;
		  "GnomaSAnDTrolaS System Monitor 1.1"*)
			  cd $CMEXTDIR/GT11
			  superkaramba GATNOE.theme;;
		  "GnomaSAnDTrolaS System Monitor Oxygen"*)
			  cd $CMEXTDIR/GTOE
			  superkaramba G&TMonitor.theme;;
		  miminon*)
			  cd $CMEXTDIR/minimon
			  superkaramba minimon.theme;;
		  MyMon*)
			  cd $CMEXTDIR/MyMon
			  superkaramba MyMon.theme;;
		  Tiny*)
			  cd $CMEXTDIR/MyMon
			  superkaramba MyMon-tiny.theme;;
		  SuperMonitor*)
			  cd $CMEXTDIR/SuperMonitor_mod
			  superkaramba supermonitor_mod.theme;;
		  CrystalPingo*)
			  cd $CMEXTDIR/CrystalPingo
			  superkaramba Crystal.theme;;
		  *)
			  TEXT="$ERROR";;
	  esac
	  kdialog --title "$SCRIPT_ID" --msgbox "$TEXT"
	  rm skin
}

nastavitveniK () {
	kdialog --title "$SCRIPT_ID" --msgbox "$WELCOME"
	kdialog --combobox "$WHAT" "$OPT1" "$OPT2" "$OPT3" "$OPT4" "$OPT5" >> what
	TODO=`cat what`
	rm what
	kdialog --passivepopup "$SELECTED $TODO"
	case $TODO in
		"$OPT1")
			sKiner;;
		"$OPT1b")
			versioner;;
		"$OPT2")
			loKalizer;;
		"$OPT3")
			kdialog --title "$SCRIPT_ID" --sorry "$NOTIMP";; #fontKharger
		"$OPT4")
			xdg-open 'http://odprtakoda.tuxfamily.org/node/21';;
		"$OPT5")
			xdg-open 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3293004';;
		*)
			TEXT="$ERROR";;
	esac
}

{
nastavitveniK
} >> log.txt