#!/bin/bash
#
# RJP 11.6.2026 Easy reporisity selector for PCLinuxOS
# maybe it is working some else distros which are using rpm package management
#

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


ls /usr/share/dnf-package-manager/repos > /tmp/repos.txt

awk -v n=1 '$0=(!(NR%n))?"\n"$0:$0' /tmp/repos.txt > /tmp/repos2.txt

10=$({ 
echo '#!/bin/bash
yad --list --title=$"Select ONLY one reporisity " --width=800 --height=500 --checklist \
--button="Select ONLY one reporisity and change it from the main menu":0 --button=Exit:1 \
--column="Select reporisity" \
--column=Package < /tmp/repos2.txt > /tmp/repo3 \
--print-column=2 --separator= && \
--print --filename=/tmp/repo3
echo $(cat /tmp/repo3) > /tmp/selectedrepo-new
'
} > /tmp/selectrepo)


11=$({ 
echo '#!/bin/bash
dnf list --installed > /tmp/all-installed.txt
yad --list --title=$"Show all installed packages " --width=800 --height=500  \
--button=Exit:0 \
--column="Package" \
--column=Package < /tmp/all-installed.txt > all-installed \
--print-column=2 --separator= && \
--print --filename=/tmp/all-installed
'
} > /tmp/all-installed)

12=$({ 
echo '#!/bin/bash
dnf list --available > /tmp/all-available.txt
yad --list --title=$"Show all available packages " --width=800 --height=500  \
--button=Exit:0 \
--column="Package" \
--column=Package < /tmp/all-available.txt > all-available \
--print-column=2 --separator= && \
--print --filename=/tmp/all-available
'
} > /tmp/all-available)


chmod +x /tmp/selectrepo
chmod +x /tmp/all-installed
chmod +x /tmp/multi-remove
chmod +x /tmp/all-available

#!/bin/bash
yad --form --title=$"Easy reporisity selector and tester" --columns=4 --rows=3 --width=1000 --text="Easy reporisity selector and tester" \
\
--field="Select reporisity":fbtn "/tmp/./selectrepo " \
--field="Change reporisity":fbtn "xterm -e su -c 'cp /etc/repo.d/default.repo /etc/repo.d/default.repo.bak && sleep 1 && rsync /usr/share/dnf-package-manager/repos/$(cat /tmp/selectedrepo-new)  /etc/repo.d/default.repo ' root & " \
--field="Edit default.repo":fbtn "xterm -e su -c ' nano /etc/repo.d/default.repo ' root & " \
--field="Restore previous reporisity ":fbtn "xterm -e su -c 'cp /etc/repo.d/default.repo.bak /etc/repo.d/default.repo ' root & " \
--field="See current repo":fbtn "bash -c 'xdg-open /etc/repo.d/default.repo ; exec bash' & " \
--field="See all current repos":fbtn "xterm -e bash -c 'dnf repolist ; exec bash' & " \
--field="Test if repo is available":fbtn "xterm -hold -e su -c ' dnf makecache --refresh ' root & " \
--field="See all installed packages":fbtn "/tmp/./all-installed " \
--field="See all available packages":fbtn "/tmp/./all-available " \
--button=Exit:1

cd /tmp && rm all-available* repos.txt  all-installed* repo3 selectedrepo-new repos2.txt  selectrepo*

