#!/usr/bin/bash
has_prime_select=false
if command -v zenity &> /dev/null; then
    dialog_helper=zenity
elif command -v kdialog &> /dev/null; then
    dialog_helper=kdialog
fi

($(exec prime-test))
case $? in
	0)
	has_prime_select=true
	;;
	1)
	;;
esac

if $has_prime_select; then
	current=($(exec /usr/sbin/prime-select get-current))
	driver=${current[2]}
	case $driver in
		intel)
			pkexec /usr/sbin/prime-select nvidia
			case $? in
				0)
				case $dialog_helper in
					zenity)
						zenity --info --title="Logout" --text="$(exec prime-i18n Logout)"
					;;
					kdialog)
						kdialog --msgbox "$(exec prime-i18n Logout)" --title="Logout"
					;;
				esac
				;;
			esac
		;;
		nvidia)
				pkexec /usr/sbin/prime-select intel
			case $? in
				0)
				case $dialog_helper in
					zenity)
						zenity --info --title="Logout" --text="$(exec prime-i18n Logout)"
					;;
					kdialog)
						kdialog --msgbox "$(exec prime-i18n Logout)" --title="Logout"
					;;
				esac
				;;
			esac
		;;
		offload)			
			case $dialog_helper in
				zenity)
					selected=$(zenity --list --radiolist --column="" --column="Title" --hide-header FALSE "nvidia" TRUE "intel" --hide-header --text="$(exec prime-i18n ToggleOffload)" --title="$(exec prime-i18n TitleSelect)")
				;;
				kdialog)
					selected=$(kdialog --radiolist "$(exec prime-i18n BootDriver)" "nvidia"  "nvidia" off "intel" "intel" on)
				;;
			esac
			
			case $? in
				0)
				pkexec /usr/sbin/prime-select $selected
				case $? in
					0)
					case $dialog_helper in
						zenity)
							zenity --info --title="Logout" --text="$(prime-i18n Logout)."
						;;
						kdialog)
							kdialog --msgbox "$(exec prime-i18n TitleSuccess)" --title="Logout"
						;;
					esac
					case $dialog_helper in
						zenity)
							gnome-session-quit --logout
						;;
						kdialog)
							qdbus org.kde.ksmserver /KSMServer logout 1 0 3
						;;
					esac
					;;
				esac
				;;
			esac
		;;
	esac
fi
