linux-setup-script/Linux_Toolbox.sh

298 lines
6.3 KiB
Bash
Raw Normal View History

2023-03-26 23:15:29 -04:00
#!/bin/bash
# paru -S plasma-wayland-session --noconfirm
Argument=$1
if [[ $Argument == *"update"* ]]; then
paru -Sy archlinux-keyring chaotic-keyring endeavouros-keyring --noconfirm --needed; paru -Syu --noconfirm; echo clearing out $(sudo ls /var/cache/pacman/pkg/ | wc -l) packages in cache; ( echo "y"; echo "y" ) | paru -Scc; echo "Update Complete!"
# https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script
read -p "Do you wish to restart now? Y/N" yn
case $yn in
[Yy]* ) sudo reboot ;;
[Nn]* ) exit;;
esac
exit
fi
2023-03-26 23:15:29 -04:00
2023-03-27 00:10:41 -04:00
yadResults=$(yad \
--title="Linux Toolbox" \
--form --columns=3 \
2023-03-27 00:10:41 -04:00
--field Installations:LBL \
--field Debloat:chk \
--field paru:chk \
--field htop:chk \
--field nomachine:chk \
--field librewolf-bin:chk \
--field brave-bin:chk \
--field pacseek-bin:chk \
--field docker:chk \
--field docker-compose:chk \
2023-03-27 00:10:41 -04:00
--field 'Install pkgs from List':chk \
--field 'Export pkgs to List':chk \
--field Configuration:LBL \
--field "sudo Timeout:chk" \
2023-03-27 00:10:41 -04:00
--field "Grub Timeout:chk" \
--field Konsave:chk \
--field Flexo:chk \
--field "Check for Flexo:chk" \
--field "Updater to Desktop:chk" \
2023-03-27 00:10:41 -04:00
--field "Enable SSH:chk" \
--field "Reboot:chk" \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL \
--field '-':LBL )
2023-03-27 00:10:41 -04:00
2023-03-27 00:14:06 -04:00
#DRIVEPART="`echo $PARTS | cut -d "|" -f 2`"
# Print values of ALL of the above fields statuses
# echo $yadResults
2023-03-26 23:15:29 -04:00
2023-03-27 00:14:06 -04:00
IFS='|' # space is set as delimiter
read -ra SECTIONS <<< "$yadResults" # str is read into an array as tokens separated by IFS
# echo "first section"
# echo "${SECTIONS[0]}"
# echo "second:"
# echo "${SECTIONS[1]}"
# echo "loop"
index=0
for i in "${SECTIONS[@]}"; do # access each element of array
# print the loop index and the value of the yad field
# echo "$index"
# echo "$i"
2023-03-27 00:14:06 -04:00
if [[ $index -eq 1 ]]
2023-03-27 00:14:06 -04:00
then # DEBLOAT
if [[ $i == *"TRUE"* ]]; then
echo "Uninstalling EOS Extras: firewalld eos-update-notifier welcome eos-quickstart"
sudo pacman -R firewalld eos-update-notifier welcome eos-quickstart --noconfirm
fi
fi
if [[ $index -eq 2 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing paru"
sudo pacman -S paru --noconfirm
fi
fi
if [[ $index -eq 3 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing htop"
paru -S htop --noconfirm
fi
fi
if [[ $index -eq 4 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing NoMachine"
paru -S nomachine --noconfirm
fi
fi
if [[ $index -eq 5 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing LibreWolf"
paru -S librewolf-bin --noconfirm
fi
fi
if [[ $index -eq 6 ]]
then
if [[ $i == *"TRUE"* ]]; then
echo "installing brave"
paru -S brave-bin --noconfirm
fi
fi
if [[ $index -eq 7 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "installing pacseek"
paru -S pacseek-bin --noconfirm
fi
fi
if [[ $index -eq 8 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing and enabling Docker"
paru -S docker --noconfirm && sudo systemctl enable docker.service && sudo systemctl enable containerd.service
fi
fi
if [[ $index -eq 9 ]]
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing and enabling docker-compose"
paru -S docker-compose --noconfirm
fi
fi
if [[ $index -eq 13 ]]
then
if [[ $i == *"TRUE"* ]]; then
echo "Changing sudo timeout"
echo "Paste the following into the editor:"
echo "Defaults env_reset,timestamp_timeout=30"
sudo visudo
fi
fi
2023-03-27 00:14:06 -04:00
if [[ $index -eq 14 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Changing GRUB timeout"
sudo nano /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
fi
fi
if [[ $index -eq 15 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Installing Konsave and Importing Profile to terminal user"
2023-03-27 00:14:06 -04:00
paru -S konsave --noconfirm
cd ~/Downloads/ ; wget -q -O KonsaveTMPLT.knsv http://git.wmpco.biz/yuriy/Linux-Toolbox/raw/branch/main/KonsaveTMPLT.knsv
# smbget smb://smb/Toolbox/Installs/Linux/KonsaveTMPLT.knsv -a
2023-03-27 00:14:06 -04:00
#konsave -i $PWD/KonsaveTMPLT.knsv -f
konsave -i ~/Downloads/KonsaveTMPLT.knsv -f # import template
konsave -a KonsaveTMPLT # activate template
paru -R konsave --noconfirm # uninstall konsave
2023-03-27 00:14:06 -04:00
# reboot
fi
fi
if [[ $index -eq 16 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Adding Flexo to mirrorlist"
echo 'Server = http://10.0.0.101:7878/$repo/os/$arch' | sudo tee -a /etc/pacman.d/mirrorlist
fi
fi
if [[ $index -eq 17 ]]
then
if [[ $i == *"TRUE"* ]]; then
file="/etc/pacman.d/mirrorlist"
string="http://10.0.0.101:7878"
2023-03-27 00:14:06 -04:00
if grep -q "$string" "$file"; then
echo "Flexo is in the mirrorlist. :)"
else
echo "FLEXO IP $string is not found in the mirrorlist file. Please consider adding it for faster updates."
fi
fi
fi
if [[ $index -eq 18 ]]
then
if [[ $i == *"TRUE"* ]]; then
echo "Adding Update Arch shortcut to desktop"
cd ~/Desktop/ ; wget -q -O Update_Arch.sh http://git.wmpco.biz/yuriy/Linux-Toolbox/raw/branch/main/Update_Arch_Linux.sh ; chmod +x Update_Arch.sh
fi
fi
if [[ $index -eq 19 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Enabling SSH Access"
sudo systemctl enable sshd.service && sudo systemctl start sshd.service
fi
fi
if [[ $index -eq 20 ]]
2023-03-27 00:14:06 -04:00
then
if [[ $i == *"TRUE"* ]]; then
echo "Rebooting System"
reboot
2023-03-27 00:14:06 -04:00
fi
fi
if [[ $index -eq 21 ]]
then
if [[ $i == *"TRUE"* ]]; then
echo "TEMPLATE"
fi
fi
2023-03-27 00:14:06 -04:00
((index++)) # Add 1 to count
done
#items=`yad --list --separator='' --height=600 --multiple --column="Items" item1 item2 item3`
#echo $items
# for item in $SECTIONS; do
# echo "$item"
# done
#yad --title="Desktop entry editor" --text="Simple desktop entry editor" \
#--form --field="Type:CB" --field="Name" --field="Generic name" \
#--field="Comment" --field="Command:FL" --field="Icon" \
#--field="In termianl:CHK" --field="Startup notify:CHK" \
#"Application!URI" "Name" "Generic name" "This is the comment" \
#"/usr/bin/yad" "yad" FALSE TRUE