#!/bin/bash 
#
# kslackcheck ver. 3.7
# Slackware information tool
#
#  Author: Mangus&GK   2007   http://deprecated.it
#
# you'll need : rsync, diffutils, coreutils,python, wget e optionally but for best results kde! :-)  
#
#######################################################
# Plugin.py is a revisited version of Slackcurrent project by 'TaQ'
# http://slackcurrent.sourceforge.net/
#######################################################
# please report bugs at kslackcheck(at)deprecated(dot)it
# august,2007
# more info at http://kslackcheck.deprecated.it
# License: GPL
# This program comes with absolutly no warranty! Use at your own risk!
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.
#
########################################################
#                  useful stuff ...
######################################################## 
VERSION="3.7"
ICON="/usr/share/icons/crystalsvg/64x64/apps/kslackcheck.png"
CONFDIR="/etc/kslackcheck/"
TMP="$HOME/.kslackcheck"
COMMANDS="rsync python dialog kdialog date cat cut echo wget grep diff mkdir sed ps which date md5sum gawk tail"
CHGFILE="$TMP/change.conf" # better don't touch, it's a fake file
if [ ! -d $TMP ]; then
  mkdir -p $TMP
  chmod -R 700 $TMP
fi
#########################################################
# some functions......
#########################################################
readconfig()
{
  CONFFILE="$CONFDIR/kslackcheck.conf"
  . $CONFFILE
# creo user config
  if [ !  -f $TMP/kslackcheck.conf ]; then
    sed 's/^/#/' $CONFFILE > $TMP/kslackcheck.conf
  fi
  if [ -f $CONFFILE.new ]; then
    NEWCONF="$CONFFILE.new"
     else
    NEWCONF="$CONFFILE"
  fi
    VER1=`grep CONF-VERSION $NEWCONF | cut -d = -f 2`
    VER2=`grep CONF-VERSION $TMP/kslackcheck.conf | cut -d = -f 2`
# il file di configurazione delle 3.0 nn aveva numero di versione
    if [ -z $VER2 ]; then
      VER2="000"
    fi
# solo se la versione del file di configurazione  cambiata metto il file new nella home
    if [ $VER1 -gt $VER2 ]; then
      sed 's/^/#/' $NEWCONF > $TMP/kslackcheck.conf.new
    fi
     CONFFILE=" $TMP/kslackcheck.conf"
   . $CONFFILE  
# qui sistemo un bug delle versioni vecchie con nomi dei file di linguaggio vecchi
     CHAR=`tail -n 1 $CONFFILE |  wc -m`
     if [ $CHAR -le 7 ];then
     sed  -e '/LNG/d'  $CONFFILE  >> $TMP/tmp
     mv $TMP/tmp  $CONFFILE
     LNG=""
     fi
#  sistemo il blacklist file
  if [ !  -f $TMP/blacklist ]; then
    sed 's/^/#/'  $CONFDIR/blacklist >  $TMP/blacklist
  fi
}

language()
{
  LANGDIR="/etc/kslackcheck/lang/"
  if [  -z $LNG  ]  ; then 
for Z in `ls $LANGDIR` 
do 
    if [ -z $TXT ]; then 
      STRINGAL="$STRINGAL LNG=$Z $Z " 
    else
      STRINGAL="$STRINGAL LNG=$Z $Z " 
    fi
done
    if [ -z $TXT ]; then
	kdialog   --miniicon $ICON --caption "KscK" --menu "            select a language:           " $STRINGAL >>  $CONFFILE
    else
	dialog  --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --menu "select a language:" 0 0 0   $STRINGAL  >>  $CONFFILE
    fi
    if [ $? != 0 ]; then
	exit
    fi
  fi
  L=`grep -i 'LNG' $CONFFILE | grep -v '#'`
  LNG="${L#*'='}"
  LANGFILE="$LANGDIR/$LNG"
  . $LANGFILE 
}

usage()
{
  echo ""
  echo "usage: kslackcheck [-t] [--text] "
  echo "       run kslackcheck without option for KDE system"
  echo "       -t  for text mode or other WM than KDE" 
  echo ""
}

esc()
{
  unset P_USRID
  unset P_PWD
  rm -f $CHGFILE
  rm -f dat
  if [ -z $TXT ]; then
    #kdialog --title "- Kslackcheck $VERSION -" --passivepopup "  By Mangus & Gk at http://deprecated.it" 3 &
    dcop knotify default notify kslackcheck kslackcheck 'By Mangus & Gk  http://deprecated.it' '' '' 16 0
  fi
  clear
  echo "Kslackcheck $VERSION (at) deprecated.it"
  echo "" 
  echo "exiting..."
  exit 
}

clean()
{ 
    cp -p --force $NEWLOG $OLDLOG
    rm -f $WORK 
    rm -f $TMPC/remotelist2
    rm -f {$DOWNLOAD/rejmd5,$DOWNLOAD/rejgpg}
    esc
}

proxy_stuff()
{
if [ -z $http_proxy ]; then
   export  http_proxy=`cat /etc/wgetrc | grep -v "#" | grep http_proxy | cut -d = -f 2`
fi
	if [ -z $http_proxy ]; then
		if [ -z $TXT ]; then
		kdialog --miniicon $ICON --caption "Kslackcheck $VERSION" --inputbox "Proxy details:" "http://host:port"  > dat
		else
		dialog --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&Gk"  --inputbox  "Proxy details:"  0 0 "http://host:port"  > dat
		fi
		if [ $? != 0 ]; then
 			esc
    		fi
    		export http_proxy=`cat dat`
    		rm -f dat
  	fi

if [ $PROXYAUTH = 1 ]; then
	 if [ -z $TXT ]; then
    		kdialog  --miniicon $ICON --caption "Kslackcheck $VERSION" --inputbox "Proxy UserId:" "yourId" > dat
	else
		dialog --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&Gk" --inputbox  "Proxy UserId:"  0 0   > dat
	fi
  	if [ $? != 0 ]; then
   		 esc
	fi
	export P_USRID=`cat dat`
	rm -f dat
  	if [ -z $TXT ]; then
		kdialog --miniicon $ICON --caption "Kslackcheck $VERSION" --password "" > dat
	else
		dialog --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&Gk" --passwordbox  "Password:"  0 0    > dat
	fi
	if [ $? != 0 ]; then
    		esc
	fi
	export P_PWD=`cat dat`
 	rm  -f dat
fi
}


checkcommands ()
{
   if [ $PROXY_BAST = 1 ]; then
    	if [ -z $TXT ]; then
      		COMMANDS="python dialog kdialog date cat cut echo wget grep diff mkdir sed ps which date md5sum gawk tail"
    	else
      		COMMANDS="python dialog date cat cut echo wget grep diff mkdir sed ps which date md5sum gawk tail"
    	fi
   else
    if [ ! -z $TXT ]; then
      COMMANDS="rsync python dialog date cat cut echo wget grep diff mkdir sed ps which date md5sum gawk tail"
    fi
  fi
  for COM in $COMMANDS; do
    which $COM 1> /dev/null 2> /dev/null
    if [ $? != 0 ]; then
      echo "$COM $FR9"
      if [ -z $TXT ]; then
        kdialog  --caption "Kslackcheck $VERSION"  --sorry"$COM $FR9"
      else
        dialog --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&Gk" --msgbox "$COM $FR9" 0 0
      fi
    fi
  done
  which gpg 1> /dev/null 2> /dev/null
  if [ $? != 0 ]; then 
    GPG=0
  fi
   which md5sum 1> /dev/null 2> /dev/null
  if [ $? != 0 ]; then 
    MD5=0
  fi
  echo "Command Check Complete!"
}

logselection ()
{
  LOG1="$MIRROR/slackware-current/ChangeLog.txt"
  LOG2="$MIRROR/slackware-12.0/ChangeLog.txt"
  LOG3="$MIRROR/slackware-10.0/ChangeLog.txt"
  LOG4="$MIRROR/slackware-10.1/ChangeLog.txt"
  LOG5="$MIRROR/slackware-10.2/ChangeLog.txt"
  LOG6="$MIRROR/slackware-11.0/ChangeLog.txt" 
if [ -z $CHS ]; then
  if [ -z $TXT ]; then
    kdialog  --miniicon $ICON --caption "KscK" --menu "   $FR7   " a "current" f "12.0" b "11.0" c "10.2" d "10.1" e "10.0" > $CHGFILE
  else
    dialog  --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --menu "$FR7" 0 40 0  a "current" f "12.0" b "11.0" c "10.2" d "10.1" e "10.0" > $CHGFILE
  fi

  if [ $? != 0 ]; then
    esc
  fi
  read CHG < $CHGFILE
else
case $CHS in
    12.0)
        CHG="f"
;;
    10.0)
        CHG="e"
;;
    10.1)
        CHG="d"
;;
    10.2)
        CHG="c"
;;
    11.0)
        CHG="b"
;;
    *)
        CHG="a"
;;
esac
fi
  case $CHG in
    f)
      TMPC="$TMP/12.0"
      VER="12.0"
      LOG=$LOG2
                 ;;
    e)
      TMPC="$TMP/10"
      VER="10.0"
      LOG=$LOG3
                 ;;
    d)
      TMPC="$TMP/10.1"
      VER="10.1"      
      LOG=$LOG4
           ;;
    c)
      TMPC="$TMP/10.2"
      VER="10.2"
      LOG=$LOG5
                 ;;
    b)
      TMPC="$TMP/11.0"
      VER="11.0"
      LOG=$LOG6
                 ;;
    *)
      TMPC="$TMP/current"
      VER="current"      
      LOG=$LOG1
                 ;;
  esac
}

gpgcheck()
{
  touch $DOWNLOAD/rejgpg
  gpg -v -v --verify  "$DOWNLOAD/$filename.asc" "$DOWNLOAD/$filename"
  if [ $? != 0 ]; then
    ERR=1
    echo "$FR10 $filename"
    echo "$dirname/$filename"  >> $DOWNLOAD/rejgpg
    if [ -z $TXT ]; then
      kdialog  --caption "Kslackcheck $VERSION"  --sorry "$FR10 $filename" & # sto sorry non va bene
    else
      dialog --timeout 15 --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR10 $filename" 0 0
    fi
  fi
}

md5check()
{
  touch $DOWNLOAD/rejmd5
  cd $DOWNLOAD
  echo ""
  echo "MD5 check in progress.."
  if [ $GPG = 1 ]; then
    cat $TMPC/CHECKSUMS.md5 | grep $filename | sed s@./$dirname/@@ > check
  else
    cat $TMPC/CHECKSUMS.md5 | grep $filename | grep -v .tgz.asc | sed s@./$dirname/@@ > check
  fi
  md5sum -c check
  if [ $? != 0 ]; then
     ERR=2 ## uhmmm 2???
     echo "$FR15 $filename"
     echo "$dirname/$filename"  >> $DOWNLOAD/rejmd5
     if [ -z $TXT ]; then
           kdialog  --caption "Kslackcheck $VERSION"  --sorry "$FR15 $filename" & # sto sorry non va bene
     else
           dialog  --timeout 15 --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR15 $filename" 0 0
     fi
   fi
   rm -f check
}

log()
{
if [ -z  $SHOWLOG ];then
 SHOWLOG=1
fi
if [ $SHOWLOG = 1 ]; then
  if [ -z $TXT ]; then
    kdialog --miniicon $ICON --caption "Kslackcheck $VERSION" --textbox $REPORT 610 500
  else
    dialog  --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --textbox $REPORT 0 0
  fi
fi
}

intestatio()
{
  touch $REPORT
  echo "Kslackcheck $VERSION Log - `date`" >> $REPORT
  echo " " >> $REPORT 
  echo "`uname -snrvmo`" >> $REPORT
  echo "Base system -`cat /etc/slackware-version`"  >> $REPORT
  echo " " >> $REPORT
  echo "$FR18 `head -1 $NEWLOG`" >> $REPORT
  echo "$FR19 $NEWLOG" >> $REPORT
  echo "+----------------------------------------------------------------------------------------+" >> $REPORT
  echo "| $FR16" >> $REPORT
  echo "+----------------------------------------------------------------------------------------+" >> $REPORT
  echo " " >> $REPORT
}

errorlog()
{
	cd  $DOWNLOAD
	REJMD5=`cat rejmd5 2>/dev/null`	
	REJGPG=`cat rejgpg 2>/dev/null`	
	echo " " >> $REPORT
	echo "+----------------------------------------------------------------------------------------+" >> $REPORT
	echo "| $FR20" >> $REPORT
	echo "+----------------------------------------------------------------------------------------+" >> $REPORT
	echo " " >> $REPORT
	echo "---GPG  fault" >> $REPORT
	echo "$REJGPG" >> $REPORT
	echo " " >> $REPORT
	echo "---Md5  fault" >> $REPORT
	echo "$REJMD5" >> $REPORT
}

fotter()
{
  echo " " >> $REPORT
  echo "+----------------------------------------------------------------------------------------+" >> $REPORT
}
######################################################################
# First time.
######################################################################
TXT=""
if [ $# -gt 0 ]; then
  case $1 in
    --text)
      TXT="yes"    
      ;;
    -t)
      TXT="yes"    
      ;;
    --help)
      usage
       exit
      ;;
    *)
      echo "$0: unknown option $1"
      usage
      exit
      ;;
  esac
fi

rm -f $CHGFILE
readconfig
language
checkcommands
logselection 
if [ ! -d $TMPC ]; then
  mkdir -p $TMPC
  chmod -R 700 $TMPC
fi
LIST="$TMPC/slackcurrent.list"
REMOTEPACK="$TMPC/filelist"
OLDLOG="$TMPC/old"
NEWLOG="$TMPC/new"
OUTPUT="$TMPC/output"
WORK="$TMPC/work"
REPORT="$TMPC/log"
if [ -z $DOWNLOAD ]; then
  DOWNLOAD="$TMPC/download"
fi
if [ !  -d $DOWNLOAD ]; then 
  mkdir -p $DOWNLOAD
  chmod -R 700 $DOWNLOAD
fi
LISTREMOTE="$MIRROR/slackware-$VER/FILELIST.TXT"
MD5REMOTE="$MIRROR/slackware-$VER/CHECKSUMS.md5"
DWNLDSRC="$MIRROR2/slackware-$VER"
#################################################################################
# changelog sync , network connection check , gpg key check
#################################################################################
rm -f $WORK 
rm -f $LIST # via quello vecchio
rm -f $TMPC/remotelist2
rm -f {$DOWNLOAD/rejmd5,$DOWNLOAD/rejgpg}
if [ -f  $REPORT ]; then
  mv  $REPORT $REPORT.old
fi
if [ -z $TXT ]; then
 # kdialog --title "- Kslackcheck $VERSION -" --passivepopup "$FR13" 3 &
   dcop knotify default notify kslackcheck kslackcheck "$FR13" '' '' 16 0
fi
echo "connecting to server"
if [ $PROXY_BAST = 1 ]; then
  cd $TMPC
  proxy_stuff
  wget  -v -P $TMPC --proxy-user=$P_USRID --proxy-password=$P_PWD  $DWNLDSRC/ChangeLog.txt
  mv ChangeLog.txt new
else
  rsync --timeout=45 -t --progress  --stats --verbose  $LOG $NEWLOG
fi

if [ $? != 0 ]; then
  if [ -z $TXT ]; then
    kdialog  --caption "Kslackcheck $VERSION"  --sorry "$FR1"
  else
    dialog --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR1" 0 0
  fi
  esc
fi

if [ $GPG = 1 ]; then
  echo "Checking Slackware key presence..."
  gpg --list-public-keys 40102233
  if [ $? != 0 ]; then
    wget -v -P $TMPC --proxy-user=$P_USRID --proxy-password=$P_PWD  $DWNLDSRC/GPG-KEY
    gpg -v --import  $TMPC/GPG-KEY
    rm -f $TMPC/GPG-KEY
  fi
  echo "done!"
fi
#################################################################################
# core
#################################################################################
if [ ! -f $OLDLOG ]; then
  touch $OLDLOG
fi
LAST=0
LAST=`date -r $OLDLOG +%s`
if [ $LAST = `date -r $NEWLOG +%s` ]; then
  if [ -z $TXT ]; then
    kdialog --caption Kslackcheck --yesno "$FR2"
  else
    dialog  --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --yesno "$FR2" 0 0
  fi
  if [ $? != 1 ]; then
    if [ -z $TXT ]; then
      kdialog --miniicon $ICON --caption "Kslackcheck $VERSION" --textbox $NEWLOG 650 500 # dialog per aggiornamenti
    else
      dialog  --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --textbox $NEWLOG 0 0
    fi
  else
    clean
  fi
else
  echo "Kslackcheck $VERSION Report -`date +'%d.%m.%Y at %T'`" > $OUTPUT
  echo "" >> $OUTPUT
  echo "Changelog for Slackware $CHS"
  echo "" >> $OUTPUT
  echo "$FR3" >> $OUTPUT
  echo "" >> $OUTPUT
  echo "+-------------------------------+" >> $OUTPUT
  diff -ei $OLDLOG $NEWLOG | sed -e '1d' -e 's/^> //' >> $OUTPUT
  if [ -z $TXT ]; then
    kdialog --miniicon $ICON --caption "Kslackcheck $VERSION" --textbox $OUTPUT  650 500 # dialog per total changelog
  else
    dialog  --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --textbox $OUTPUT 0 0
  fi 
fi
#######################################################################
# packages routine
#######################################################################
if [ $NODOWN = 1 ]; then
  clean
fi
if [ -z $TXT ]; then        
  kdialog --caption "Kslackcheck $VERSION"  --yesno "$FR4"
else
  dialog  --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --yesno "$FR4" 0 0
fi
if [ $? = 0 ]; then
#############################################################################
#warning message
#############################################################################
  if [ -z $TXT ]; then
    kdialog  --miniicon $ICON --caption "KscK" --dontagain $TMP/kdewarn:warn --msgbox "$FR8"
  else
    dialog --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR8" 0 0
  fi
  clear
#############################################################################
  if [ -f $TMPC/listdep ]; then
    rm -f $TMPC/listdep
  fi
  cd $TMPC
  echo "connecting to server for upgraded packs list..."
  if [ $GPG = 1 ]; then
    echo " "
    echo "GPG detected. Downloaded packages will be checked for signature."
    if [ -z $TXT ]; then
      #kdialog --title "- Kslackcheck $VERSION -" --passivepopup "$FR12" 5 &
       dcop knotify default notify Kslackcheck kslackcheck "$FR12" '' '' 16 0
    fi
  fi
###
  if [ $PROXY_BAST = 1 ]; then
    wget  -v -P $TMPC --proxy-user=$P_USRID --proxy-password=$P_PWD $DWNLDSRC/FILELIST.TXT
    mv FILELIST.TXT filelist
  else
    rsync  --timeout=45  -t  --progress  --stats --verbose  $LISTREMOTE $REMOTEPACK
  fi
###
  if [ $PROXY_BAST = 1 ]; then
     rm -f  $TMPC/CHECKSUMS.md5
     wget  -v -P $TMPC --proxy-user=$P_USRID --proxy-password=$P_PWD $DWNLDSRC/CHECKSUMS.md5
  else 
     rsync --timeout=45 -t --progress  --stats --verbose  $MD5REMOTE $TMPC/CHECKSUMS.md5
  fi
###
  if [ $TESTING = 1 ]; then
    PLOPT="-ut"
  else
    PLOPT="-u"
  fi
  /usr/bin/plugin.py  $PLOPT $CHG $MIRROR2  # go baby,go..
  echo "processing list..."
  intestatio # starting log
  if [ !  -f $LIST ]; then
    if [ -z $TXT ]; then
      kdialog  --caption "Kslackcheck $VERSION"  --msgbox "$FR6"
    else
      dialog --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR6" 0 0
    fi
    # Se sono qui devo scrivere none none
    echo "None" >> $REPORT
    fotter
    echo "| $FR17" >> $REPORT
    echo "+----------------------------------------------------------------------------------------+" >> $REPORT
    echo " " >> $REPORT
    echo "None" >> $REPORT
    fotter
    log 
    clean
  fi  
  cat $LIST | sort | sed s@$MIRROR2/slackware-$VER/@@ > $TMPC/listdep 
  cat $TMPC/listdep >> $REPORT
  echo " " >> $REPORT
  echo "+----------------------------------------------------------------------------------------+" >> $REPORT
  echo "| $FR17" >> $REPORT
  echo "+----------------------------------------------------------------------------------------+" >> $REPORT
  echo " " >> $REPORT
  Sz=0
 ####
  for Z in `cat $TMPC/listdep` 
  do 
###### 'kludge' ...
    K=`grep $Z $TMPC/remotelist2`
    K="${K%' '*}"
    KAZ="$Z-$K" # oh, non c verso di fare meglio di cos...ma il problema  di kdialog.
    if [ -z $TXT ]; then 
      STRINGONE="$STRINGONE $Z $KAZ off " 
    else
      STRINGONE="$STRINGONE $Z $K off " 
    fi
  done    
  if [ -z $TXT ]; then
    kdialog   --miniicon $ICON  --caption "Kslackcheck $VERSION"  --separate-output --checklist "$FR5" $STRINGONE > $WORK
  else
    dialog  --stdout --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --separate-output --checklist "$FR5" 0 0 0  $STRINGONE  > $WORK
  fi
####################
## start download
if [ $? = 1 ]; then #tasto annulla
  echo "None" >> $REPORT
  fotter
  log
  clean
else
  NUM=`grep -c  "" $WORK`
  ERR=0
  if [ $NUM = 0 ]; then
      echo "None" >> $REPORT
      fotter
      log
      clean
  fi
# calcolo della dimensione totale da scaricare
  TOTKB=0
  for Z in `cat $WORK`
      do 
# mi ribecco il file size x fare la somma
        K=`grep $Z $TMPC/remotelist2 | sed 's/KB/ /' | awk '{ print $1 }'`
	TOTKB=$(( $TOTKB+$K ))
      done
# totale gi scaricato
    TOTFAT=0  # non  ferrarese...
  if [ -z $TXT ]; then
      dcopRef=`kdialog  --miniicon $ICON  --caption "KscK" --progressbar "$FR14" $TOTKB`
      dcop $dcopRef showCancelButton true
  fi
  for Z in `cat $WORK`
  do 
 # Pap Satan, pap Satan aleppe!  
      filename=${Z##*/}
      dirname=${Z%/*}
      if [ -z $TXT ]; then
        #kdialog --title "- Kslackcheck $VERSION -" --passivepopup "downloading $filename" 4 &
      dcop knotify default notify Kslackcheck kslackcheck "downloading $filename" '' '' 16 0
      fi
      if [ $GPG = 1 ]; then
        DOWN="$DWNLDSRC/$dirname/$filename $DWNLDSRC/$dirname/$filename.asc"
      else 
        DOWN="$DWNLDSRC/$dirname/$filename"
      fi
      if [ $PROXY_BAST = 1 ]; then
    	  wgetopt="-v -c -P $DOWNLOAD --proxy-user=$P_USRID --proxy-password=$P_PWD  $DOWN"
      else
	  wgetopt="-v -c -P $DOWNLOAD --no-proxy  $DOWN"
      fi
      if [ -z $TXT ]; then
        wget $wgetopt &
	wgetpid=$!
	tuttok=0
	until [ "true" == `dcop $dcopRef wasCancelled` ] ; do
	  sleep 0.5
          if [ !  -f  $DOWNLOAD/$filename ]; then
            touch $DOWNLOAD/$filename
          fi
          DIM=`ls -lk $DOWNLOAD/$filename | awk '{ print $5 }'`
	  if [ -z $DIM ]; then
 	    DIM=0
	  fi 
          INC=$(( $TOTFAT+$DIM ))
	  dcop $dcopRef setProgress $INC
	  dcop $dcopRef setLabel "$FR14
$filename"
# qui devo testare se il processo wgetpid  ancora attivo!! e se nn lo  pi break
           RUNN=`ps --no-heading $wgetpid | awk '{ print $1 }'`
	   if [ -z $RUNN ]; then
	        tuttok=1
		break
           fi
       done
       if [ $tuttok -eq 0 ]; then
		kill -9 $wgetpid >/dev/null 2>&1
		dcop $dcopRef close
		if [ $Sz -eq 0 ]; then
		    if [ $ERR = 0 ]; then 
			  echo "None" >> $REPORT
		    fi
		fi
		if [ $ERR != 0 ]; then 
			errorlog
    		fi
       		fotter
		log
		clean
	else
		DIM=`ls -lk $DOWNLOAD/$filename | awk '{ print $5 }'`
		TOTFAT=$(( $TOTFAT+$DIM ))
	fi
    else
        wget $wgetopt
        DIM=`ls -lk $DOWNLOAD/$filename | awk '{ print $5 }'`
    fi 
    ERR=0  # riazzero la variabile nel ciclo
    if [ $GPG = 1 ]; then
      gpgcheck
    fi
    if [ $ERR = 0 ]; then
       if [ $MD5 = 1 ]; then
          md5check
       fi
    fi
    sleep 1
    if [ $ERR = 0 ]; then
        echo "$dirname/$filename $DIM KB" >> $REPORT
        Sz=1
    else
        rm -f $DOWNLOAD/$filename $DOWNLOAD/$filename.asc
    fi
    done
## fine ciclo
fault=0

if [ $GPG = 1 ]; then
cat  $DOWNLOAD/rejgpg | grep tgz 1> /dev/null 2> /dev/null
	if [ $? = 0 ];then
	fault=1
	fi
fi
cat  $DOWNLOAD/rejmd5 | grep tgz 1> /dev/null 2> /dev/null
if [ $? = 0 ];then
fault=1
fi
if [ $fault = 1 ]; then  
          errorlog 
fi

          fotter
    if [ -z $TXT ]; then
      dcop $dcopRef setProgress $TOTKB
      sleep 0.5
      dcop $dcopRef close
      kdialog  --caption "Kslackcheck $VERSION"   --msgbox "$FR11 $DOWNLOAD"
    else
      dialog --title "Kslackcheck $VERSION" --backtitle "Kslackcheck $VERSION by Mangus&GK" --msgbox "$FR11 $DOWNLOAD" 0 0
    fi
  fi
log
fi
#########################################################################
# finally we are ready to exit..
#########################################################################
clean
# done!
# 2006 copyright Mangus&Gk    http://deprecated.it 
