#!/bin/bash
##
## RJP 27.3.2024
# An alternative way to check, install and remove packages
#
# 2.4.2024 Version for PCLinuxOS
# 3.4.2024 small improments
# 29.5.2026 apt-get changed with dnf and package selection updated. Also hold option added install and remove entries
# This is using ftp.fau.de repo, which shout be the same as apt-get repo

touch ~/.Xresources
echo ' ! Use a truetype font and size.
xterm*faceName: Monospace ' | grep -xFv -f $HOME/.Xresources >> $HOME/.Xresources
echo 'xterm*faceSize: 14 ' | grep -xFv -f $HOME/.Xresources >> $HOME/.Xresources
xrdb -merge ~/.Xresources

echo '

## Workable /etc/repo.d/default.repo file is  ###

[kde6]
name="PCLinuxOS KDE 6 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.kde6
gpgcheck=0
type=rpm-md
enabled=1

[kernel]
name="PCLinuxOS Kernel Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.kernel
gpgcheck=0
type=rpm-md
enabled=0

[mate]
name="PCLinuxOS MATE Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.mate
gpgcheck=0
type=rpm-md
enabled=1

[xfce4]
name="PCLinuxOS XFce4 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.xfce4
gpgcheck=0
type=rpm-md
enabled=1

[x86_64]
name="PCLinuxOS Main Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64
gpgcheck=0
type=rpm-md
enabled=1

[test]
name="PCLinuxOS Test Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.test
gpgcheck=0
type=rpm-md
enabled=0

[nvidia340]
name="PCLinuxOS nvidia340 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia340
gpgcheck=0
type=rpm-md
enabled=0

[nvidia470]
name="PCLinuxOS nvidia470 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia470
gpgcheck=0
type=rpm-md
enabled=0

[nvidia525]
name="PCLinuxOS nvidia525 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia525
gpgcheck=0
type=rpm-md
enabled=0

[unstable]
name="PCLinuxOS Unstable Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.unstable
gpgcheck=0
type=rpm-md
enabled=0
' > /tmp/fixrepo.txt

1=$({                                   
echo '#!/bin/bash
##time=$(date "+%F-%H-%M-%S")
RPMLIST=$(rpm -qa --last > /tmp/Update_history.txt)
sleep 5
cat /tmp/Update_history.txt | yad --list --title $"Search Results" --width=1000 --height=500 --text "INFORMATION" --column "Search Results" --button=OK:1
'
} > /tmp/history) 


2=$({ 
echo '#!/bin/bash
PROGRAM=`yad --center --width=700 --height=100 --title=$"Install Program" --text-align=center --text="Program you want to install " --entry --entry-label=SEARCH --entry-text=""`
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf install $PROGRAM " root 
else exit 0
fi '
} > /tmp/install) 


3=$({ 
echo '#!/bin/bash
PROGRAM=`yad --center --width=500 --height=100 --text-align=center --text="Program you want to remove" --entry --entry-label=is --entry-text=""`
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf remove $PROGRAM " root
fi'
} > /tmp/remove)

4=$({ 
echo '#!/bin/bash
LIST=$(apt-cache search . |sort -d |less)
echo "$LIST" | yad --list --title "Search Results" --width=1000 --height=500 --text "INFORMATION" --column "Search Results" --button=OK:1'
} > /tmp/results)

5=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Update Manager" --text-align=center --text="Update your system?"
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf update && dnf upgrade " root
fi'
} > /tmp/update)

6=$({ 
echo '
#!/bin/bash
xterm -e su -c "dnf update && dnf -s upgrade > /tmp/aptlist " root
yad  --list --width=1500 --height=500  \
--button=exit:1 \
--column=Available \
--column=Upgradeable < /tmp/aptlist 
--print-column=2 --separator= && \'
} > /tmp/available)

7=$({ 
echo '#!/bin/bash
yad  --list --title=$"Select Programs to Install" --width=800 --height=500 --checklist \
--button="Select programs and then run Install selected packages from the main menu":0 --button=Exit:1 \
--column="Select for installation" \
--column=Package < /tmp/list > /tmp/install2 \
--print-column=2 --separator= && \
--print --filename=/tmp/install2
echo $(cat /tmp/install2) > /tmp/install3
'
} > /tmp/packages)

8=$({ 
echo '#!/bin/bash
xterm -hold -e su -c "dnf install $(cat /tmp/install3) " root
sleep 1

'
} > /tmp/multi)

9=$({ 
echo 'false
chromium-browser
false
firefox
false
dillo-browser
false
otter-browser
false
seamonkey
false
etherape
false
conky
false
icewm
false
idesk
false
gimp
false
caja
false
pluma
false
atril
false
eom
false
engrampa
false
mate-terminal
false
caja-open-terminal
false
mate-utils
false
xterm
false
vlc
false
mpv
false
smplayer
false
audacious
false
audacious-codecs
false
audacity
false
k3b
false
pdfarranger
false
geany
false
thunderbird
false
gftp
false
xsane
false
scribus
false
kdenlive
false
redshift
false
grsync
false
task-lxde
'
} > /tmp/list)




10=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Set correct locale" --text-align=center --text="Set correct locale"
if [ $? = 0 ];
then
xterm -e su -c "addlocale --no-updatetest" root 
yad --center --width=400 --height=100 --title=$"addlocale has run" --text-align=center --text="addlocale has run"
fi'
} > /tmp/locale)

11=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Update LibreOffice" --text-align=center --text="Update LibreOffice"
if [ $? = 0 ];
then
pkexec lomanager
yad --center --width=400 --height=100 --title=$"Ready" --text-align=center --text="Ready "
fi'
} > /tmp/lomanager)

chmod +x /tmp/history
chmod +x /tmp/install
chmod +x /tmp/remove
chmod +x /tmp/results
chmod +x /tmp/update
chmod +x /tmp/available
chmod +x /tmp/packages
chmod +x /tmp/multi
chmod +x /tmp/locale
chmod +x /tmp/lomanager

#!/bin/bash
#
yad --form --columns=4 --rows=2 --width=1000 --title=$"PCLinuxOS PACKAGE HELPER" --text="PCLinuxOS PACKAGE HELPER:" \
\
--field="RPM history (this takes time)":fbtn "/tmp/./history " \
--field="Program Installer":fbtn "/tmp/./install " \
--field="Program Remover":fbtn "/tmp/./remove " \
--field="Available Updates (this takes time)":fbtn "/tmp/./available " \
--field="Selection for package installation":fbtn "/tmp/./packages " \
--field="Install selected packages":fbtn "/tmp/./multi " \
--field="Install Updates":fbtn "/tmp/./update " \
--field="All available packages (this takes time)":fbtn "/tmp/./results " \
--field="Workable default.repo file":fbtn "xdg-open /tmp/fixrepo.txt " \
--field="Set correct locale":fbtn "/tmp/./locale " \
--field="Update LibreOffice":fbtn "/tmp/./lomanager " \
--button=Exit:1  \

sleep 2
cd /tmp && rm install aptlist install2 remove available install3 results list locale update fixrepo.txt lomanager  Update_history.txt history multi packages


