#!/bin/bash

export TEXTDOMAIN=dupeclean-gui
export TEXTDOMAINDIR="/usr/share/locale"

TITLE='dupeclean-gui'
YAD2="yad --window-icon="/usr/share/dupeclean/dupeclean.png" --image="/usr/share/dupeclean/dupeclean.png" --title="$TITLE
DUPERESULT="/tmp/dupecleanresult"

# check that package managers are closed
#=================================================
for idx in synaptic kpackage apt-get dnf dnf5_launcher
do 
 if [ "`ps -ef|grep -w $idx | wc -l`" -ge 2 ];then
  MSG=$"\nPlease close your package manager! $idx\nand then run dupeclean-gui again. Exiting!..."
  $YAD2 --center --width=450 --fixed --on-top --title="$TITLE" --button=Ok!/usr/share/dupeclean/ok.svg:0 --text "$MSG" 
  exit 0
 fi
done

# inform what we want to do
#=================================================
$YAD2 --height=150 --width=550 --center --fixed --on-top --text=$"This program will search your system for packages with installed multiple versions.\nIt will attempt to remove the duplicate version from the rpm database.\n\nPlease press YES to continue or press NO to exit this script." --button=No!/usr/share/dupeclean/cancel.svg:1 --button=Yes!/usr/share/dupeclean/ok.svg:0 
ret=$?
if [[ $ret -eq 1 ]]; then
exit 0
else
# fix corrupted database
#=================================================
rm -rf /var/lib/rpm/__db*
rpm --rebuilddb |
for i in {1..50}; do
echo "" 2>&1; 
sleep 0.10;
done
for i in {1..99}; do
echo "$i" 2>&1; 
sleep 0.35;
done | $YAD2 --progress --no-cancel --no-buttons --auto-close --center --height=125 --width=475 --text $"\nRebuilding rpm database, please be patient..." --timeout=35
# run dupeclean
#=================================================
/bin/rm -f $DUPERESULT
dupeclean
sleep 1
if [ -e $DUPERESULT ]; then
  RESULT=`cat $DUPERESULT`
  $YAD2 --width=500 --height=200 --center --button=Ok!/usr/share/dupeclean/ok.svg:0 --text="Duplicate Results" --text-info --filename="$DUPERESULT"  
fi
# clean up
#=================================================
dnf clean all
( dnf clean packages ) |
for i in {1..50}; do
echo "" 2>&1; 
sleep 0.03;
done
for i in {1..99}; do
echo "$i" 2>&1; 
sleep 0.10;
done | $YAD2 --progress --no-cancel --no-buttons --auto-close --center --height=125 --width=475 --text $"\nCleaning up rpm database..." --timeout=12
sleep 1
$YAD2 --info --center --on-top --fixed --width=550 --height=100 --button=Ok!/usr/share/dupeclean/ok.svg:0 --text=$"\nFinished! You can now use DNF Package Manager to update your system."
fi
rm -f /tmp/dupecleanresult > /dev/null 2>&1
exit 0
