#!/bin/sh

#*********************************************************************************************************
#*   __     __               __     ______                __   __                      _______ _______   *
#*  |  |--.|  |.---.-..----.|  |--.|   __ \.---.-..-----.|  |_|  |--..-----..----.    |       |     __|  *
#*  |  _  ||  ||  _  ||  __||    < |    __/|  _  ||     ||   _|     ||  -__||   _|    |   -   |__     |  *
#*  |_____||__||___._||____||__|__||___|   |___._||__|__||____|__|__||_____||__|      |_______|_______|  *
#* http://www.blackpantheros.eu | http://www.blackpanther.hu - kbarcza[]blackpanther.hu * Charles Barcza *
#*************************************************************************************(c)2002-2016********
export TEXTDOMAIN="default-apps"
export TEXTDOMAINDIR="/usr/share/locale"
#---------------------------------------------------------------
# Project         : blackPanther OS
# Module          : bin
# File            : imsgui
# Version         : $Id: settings,v 0.1
# Author          : Charles Barcza 
# Created On      : Fri Aug 29 16:26:54 2016
# Purpose         : launch ims settings application
#---------------------------------------------------------------
 . /etc/blackPanther-default-apps.conf


xmsg=$(which pydialog 2>/dev/null || which kdialog 2>/dev/null)
wrapper="IMS-GUI"

if [ "$UID" != "0" ];then
    $xmsg --title "$(gettext 'IMSGUI - IMS Settings')" --error "<img src=/usr/share/icons/blackPanther-dark.png><br><br>$(gettext 'You are not a administrator [root]..')<br>$(gettext 'Please run imsgui as root or enter the root password to next dialog')"
    [ ! -x $(which imsgui) ]&&SCRIPTPATH=$(pwd -P)
    [ -x $(which imsgui) ]&&SCRIPTPATH=$(which imsgui | sed 's|/imsgui||')
    SU=$(which kdesu 2>/dev/null|| which default-su 2>/dev/null)
    if [ "$(echo $SU | sed 's|.*/||')" = "kdesu" ];then
	$SU -d -c "$SCRIPTPATH/$(basename $0)"
    else
	$SU -c "$SCRIPTPATH/$(basename $0)"
    fi
    exit
fi

preparing ()  {
[[ -f /etc/urpmi/urpmi.cfg ]] && imsfunc="manual"
[[ -L /etc/urpmi/urpmi.cfg ]] && imsfunc="automatic"
getaddr=$(cat /etc/urpmi/urpmi.cfg | grep Update | awk -F// '{print $2}' | sed 's|/.*||')

echo "$imsfunc - $getaddr"
if [ $imsfunc = "manual" ];then
    ims_mode="$(gettext Manual)"
    manstat="true"
    autostat="false"
else
    ims_mode="$(gettext Automatic)"
    manstat="false"
    autostat="true"
fi

}

    user=$(LC_ALL=C ps aux | awk '{print $1" "$11}' | sed -e 's|root.*||'| grep -v sddm |grep dbus-launch | awk '{print $1}' )
 
    if [ "$(echo $user |grep '^[a-zA-Z]')" = "" ];then
	usernum=`echo "$user" | grep '^[0-9]'`
	for anuser in `cat /etc/group | grep "$usernum" | awk -F: '{ print $1}'` ;do 
	    users="$anuser $(echo "$user" | sed "s|$usernum||" | uniq)"
	done
    else
	users=$user
    fi
    export PATH=/usr/lib/blackPanther-default-apps/bin:$PATH
    export DISPLAY=:0


repoup_run () {
	
       echo "Run repo updater installer $xmsg"
       sleep 1
       progresstext="IMS Repo Updater Running.."
       progress="<h3><img style:'max-height=24px; max-width=24px; float=left'; src='/usr/share/icons/blackPanther-dark.png'> <big>$progresstext</big></h3> <br>$(gettext Initializing...)"
       #echo "su -c '$xmsg --progressbar "$progress" $count --title "$wrapper"'  $users"
       ref=$(su -c "$xmsg --progressbar \"$progress\" $count --title "$wrapper""  $users)
       su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value 10;" $users
       sleep 2
       #su -c "notify-send -u normal -i blackPanther-white -t 12000 '$(gettext "Repository Manual Update")' '$(gettext "Started.. Please wait to finish.")'"  $users
       su -c "qdbus $ref org.kde.kdialog.ProgressDialog.setLabelText '<h3><img src='/usr/share/icons/blackPanther-white.png'>$progresstext</h3> <br>$(gettext 'Looking for available repositories..')';"  $users
       echo 2
       su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value 10;" $users
       echo 2
       echo "Find Updatable Repos : "
       num=$(cat /etc/urpmi/urpmi.cfg | grep { | awk '{print $1}' | sed 's|{||' | awk NF | wc -l)
       su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value 50;" $users
       sleep 1
       su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value 100;" $users
       sleep 1
       su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog maximum $num;" $users
       procnum=1
       for repo in $(cat /etc/urpmi/urpmi.cfg | grep { | awk '{print $1}' | sed 's|{||' | awk NF) ; do 
		su -c "qdbus $ref org.kde.kdialog.ProgressDialog.setLabelText '<h3><img src='/usr/share/icons/blackPanther-dark.png'> Repository Updater is Running..</h3> <br>The following <b>$repo</b> repo are in progress, please wait..';" $users
		su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value $procnum;" $users
	    updating repo $repo 
	    #- displaying to $users"
	    #sleep 1
    	    procnum=$(expr $procnum + 1)
	done
	su -c "qdbus $ref Set org.kde.kdialog.ProgressDialog value 100" $users
	sleep 1
	#dbg "Dbus close"
	su -c "qdbus $ref org.kde.kdialog.ProgressDialog.close" $users    
    echo "Repo Updater: [done]"
}

preparing
#repoup_run 
#exit

ret=$($xmsg --title "$(gettext 'IMS Settings')" --radiolist "<img src=/usr/share/icons/blackPanther-dark.png><br><big>blackPanther OS - $(gettext 'IMS Settings')</big><br><br>$(gettext 'Intelligent Mirror Selector - Mode:') $ims_mode <br>$(gettext 'Selected Mirror Addr:') $getaddr" auto "$(gettext 'Automatic Mirror Selection [recommend]')" $autostat manual "$(gettext 'Manual Mode - Select Default Mirror')" $manstat)
    if [ "$ret" = "auto" ];then 
	echo "$(gettext 'Selected Automatic IMS Mode')"
	[ -f /etc/urpmi/urpmi.cfg -a ! -f /etc/urpmi/urpmi.cfg.imsgui  -a ! -L /etc/urpmi/urpmi.cfg.imsgui  ]&& mv -f /etc/urpmi/urpmi.cfg /etc/urpmi/urpmi.cfg.imsgui
	ln -sf /etc/urpmi/mirrors/ftp.blackpantheros.eu /etc/urpmi/urpmi.cfg

    elif [ "$ret" = "manual" ];then
	echo "$(gettext 'Selected Manual IMS Mode')"
	[ -f /etc/urpmi/urpmi.cfg -a ! -f /etc/urpmi/urpmi.cfg.imsgui -a ! -L /etc/urpmi/urpmi.cfg.imsgui ]&& mv -f /etc/urpmi/urpmi.cfg /etc/urpmi/urpmi.cfg.imsgui
	rm -f /etc/urpmi/urpmi.cfg
	cp -f /etc/urpmi/mirrors/ftp.blackpantheros.eu /etc/urpmi/urpmi.cfg

    else 
	echo "$(gettext 'Exiting From IMSGUI')"
	exit
    fi

preparing
ret=$($xmsg --title "$(gettext 'IMS Settings')" --radiolist "<img src=/usr/share/icons/blackPanther-white.png><br><big>$(gettext 'IMS Settings Done!')</big><br><br>$(gettext 'Selected IMS Mode Now:') $ims_mode <br>$(gettext 'Selected Mirror Addr:') $getaddr" repoup "$(gettext 'Update Repository Now [recommend]')" true norepoup "$(gettext 'Just Exit Now - Update repos later')" false)

    if [ "$ret" = "repoup" ];then 
	echo "$(gettext 'Selected Repository Update..')"
	repoup_run

    elif [ "$ret" = "norepoup" ];then
	echo "$(gettext 'Selected Skip Repo Update..')"

    else 
	echo "$(gettext 'Exiting From IMSGUI')"
	exit
    fi
