Finish transition to zenity

This commit is contained in:
2024-08-07 16:03:01 +01:00
parent b622f39b92
commit 28bb428976

View File

@@ -1,24 +1,40 @@
#! /bin/bash
# Sudo auth
auth() {
echo "$sudopass" | sudo -S -k $*
}
export HISTIGNORE='*sudo -S*'
for (( ; ; )); do
sudopass=$(zenity --password)
if [ -z "${sudopass}" ]; then
exit
fi
auth echo "Test sudo password."
if [[ $? == 0 ]]; then
break
fi
done
if ! command -v zenity; then
sudo apt-get install zenity -y
auth apt-get install zenity -y
fi
# Update System
(
sudo apt-get update
auth apt-get update
echo "20"
echo "# Updating distro packages..."
sudo apt-get dist-upgrade -y
auth apt-get dist-upgrade -y
echo "40"
echo "# Updating installed packages..."
sudo apt-get upgrade -y
auth apt-get upgrade -y
echo "60"
echo "# Cleaning cache..."
sudo apt-get clean
auth apt-get clean
echo "80"
echo "# Removing unused dependencies..."
sudo apt-get autoremove -y
auth apt-get autoremove -y
echo "100"
) |
zenity --progress --title="Update System" --text="Updating repositories..." --percentage=0 --no-cancel
@@ -30,7 +46,7 @@ zenity --question \
if [[ $? == 0 ]]; then
(
sudo apt-get install -y htop fzf git wget curl bash-completion
auth apt-get install -y htop fzf git wget curl bash-completion
echo "20"
echo "# Copying dotfiles..."
cp -vrf config-files/.* $HOME
@@ -54,13 +70,13 @@ zenity --question \
if [[ $? == 0 ]]; then
(
sudo apt install -y flatpak
auth apt-get install -y flatpak
echo "30"
echo "# Install the gnome-software plugin..."
sudo apt install -y gnome-software-plugin-flatpak
auth apt-get install -y gnome-software-plugin-flatpak
echo "50"
echo "# Add Flathub..."
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
auth flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
echo "75"
echo "# Installing Adw GTK3 theme for flatpak apps..."
flatpak install org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
@@ -69,16 +85,16 @@ if [[ $? == 0 ]]; then
zenity --progress --title="Enabling Flatpak" --text="Installing Flatpak..." --percentage=0 --no-cancel
fi
# Apps
# Debian Apps
options=(
FALSE "Install Neovim"
FALSE "Install Zed"
FALSE "Install Ollama"
FALSE "Install GitHub CLI"
FALSE "Install Tailscale (VPN)"
FALSE "Install Syncthing"
FALSE "Install Tailscale"
FALSE "Install Firefox + Adw theme"
)
checkbox=$(zenity --list --checklist \
checkbox=$(zenity --list --checklist --height=500\
--title="Install Apps" \
--column="Select" \
--column="Tasks" "${options[@]}")
@@ -87,7 +103,7 @@ readarray -td '|' choices < <(printf '%s' "$checkbox")
for selection in "${choices[@]}"; do
if [ "$selection" = "Install Neovim" ]; then
(
sudo apt install -y ninja-build gettext cmake unzip curl build-essential
auth apt install -y ninja-build gettext cmake unzip curl build-essential
echo "30"
git clone https://github.com/neovim/neovim --depth 1
echo "50"
@@ -96,7 +112,7 @@ for selection in "${choices[@]}"; do
echo "60"
make CMAKE_BUILD_TYPE=RelWithDebInfo
echo "80"
sudo make install
auth make install
cd ..
rm -rf neovim
echo "100"
@@ -124,99 +140,89 @@ for selection in "${choices[@]}"; do
fi
fi
# ------ TODO ---------
if [ "$selection" = "########" ]; then
# Firefox Theme
dialog --erase-on-exit \
--backtitle "$BACKTITLE" \
--title "Install the Adwaita Firefox theme?" \
--yesno "OPEN FIREFOX BEFORE INSTALLING! The theme mimics GNOME Web and will be installed using the script provided by the theme on GitHub." 10 40
if [ "$?" -eq 0 ]; then
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
fi
fi
if [ "$selection" = "Install GitHub CLI" ]; then
clear
echo "----------------------"
echo "--- Install GH CLI ---"
echo "----------------------"
echo
echo
sudo apt install wget -y
sudo mkdir -p -m 755 /etc/apt/keyrings
sudo rm -f /etc/apt/sources.list.d/github-cli.list
wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list
sudo apt update
sudo apt install gh -y
(
auth apt-get install wget -y
echo "20"
auth mkdir -p -m 755 /etc/apt/keyrings
auth rm -f /etc/apt/sources.list.d/github-cli.list
wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | auth tee /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "40"
auth chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | auth tee /etc/apt/sources.list.d/github-cli.list
auth apt-get update
echo "60"
auth apt-get install gh -y
echo "100"
) |
zenity --progress --title="GitHub CLI" --text="Installing GitHub CLI..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Apps (Enables Flatpak)" ]; then
clear
echo "----------------------------"
echo "--- Install Applications ---"
echo "----------------------------"
echo
echo
dialog --erase-on-exit \
--backtitle "$BACKTITLE" \
--checklist "Select Apps to install." 30 90 5 \
"io.github.mrvladus.List" "Errands (Tasks)" "on"\
"io.gitlab.news_flash.NewsFlash" "Newsflash (RSS)" "on"\
"org.gnome.gitlab.somas.Apostrophe" "Apostrophe (Markdown Editor)" "on"\
"org.gnome.World.Secrets" "Secrets (Password manager)" "on"\
"org.gnome.Polari" "Polari (IRC)" "off" \
"org.gnome.Fractal" "Fractal (Matrix)" "on"\
"so.libdb.dissent" "Dissent (Discord)" "on"\
"io.gitlab.adhami3310.Impression" "Impression (Disk image creator)" "on"\
"org.gnome.Builder" "Builder (IDE)" "on"\
"org.gnome.design.AppIconPreview" "App Icon Preview" "on"\
"org.gnome.design.IconLibrary" "Icon Library" "on"\
"org.gnome.design.Palette" "Color Palette" "on"\
"org.gnome.design.SymbolicPreview" "Symbolic Preview" "on"\
"org.gnome.design.Typography" "Typography" "on"\
"re.sonny.Workbench" "Workbench" "on"\
"org.prismlauncher.PrismLauncher" "Prism Launcher" "off" 2> choice.tmp
app_menu=$( cat choice.tmp )
rm choice.tmp
for app in $app_menu; do
echo "Installing $app..."
flatpak install -y flathub $app
done
fi
if [ "$selection" = "Install Tailscale (VPN)" ]; then
clear
echo "-------------------------"
echo "--- Install Tailscale ---"
echo "-------------------------"
echo
echo
if [ "$selection" = "Install Tailscale" ]; then
(
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
echo "80"
auth tailscale up
echo "100"
) |
zenity --progress --title="Tailscale" --text="Installing Tailscale..." --percentage=0 --no-cancel
fi
if [ "$selection" = "Install Syncthing" ]; then
clear
echo "-------------------------"
echo "--- Install Syncthing ---"
echo "-------------------------"
echo
echo
sudo apt install syncthing
systemctl --user enable syncthing.service
systemctl --user start syncthing.service
xdg-open "http://127.0.0.1:8384/" &
if [ "$selection" = "Install Firefox + Adw theme" ]; then
(
auth apt install -y firefox-esr
echo "60"
firefox &
sleep 5
echo "80"
echo "# Applying Adw theme..."
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
echo "100"
) |
zenity --progress --title="Firefox" --text="Installing Firefox..." --percentage=0 --no-cancel
fi
done
# Flatpak Apps
if command -v flatpak; then
options=(
FALSE "io.github.mrvladus.List" "Errands (Tasks)"
FALSE "io.gitlab.news_flash.NewsFlash" "Newsflash (RSS)"
FALSE "org.gnome.gitlab.somas.Apostrophe" "Apostrophe (Markdown Editor)"
FALSE "org.gnome.World.Secrets" "Secrets (Password manager)"
FALSE "org.gnome.Polari" "Polari (IRC)"
FALSE "org.gnome.Fractal" "Fractal (Matrix)"
FALSE "so.libdb.dissent" "Dissent (Discord)"
FALSE "io.gitlab.adhami3310.Impression" "Impression (Disk image creator)"
FALSE "org.gnome.Builder" "Builder (IDE)"
FALSE "org.gnome.design.AppIconPreview" "App Icon Preview"
FALSE "org.gnome.design.IconLibrary" "Icon Library"
FALSE "org.gnome.design.Palette" "Color Palette"
FALSE "org.gnome.design.SymbolicPreview" "Symbolic Preview"
FALSE "org.gnome.design.Typography" "Typography"
FALSE "re.sonny.Workbench" "Workbench"
FALSE "org.prismlauncher.PrismLauncher" "Prism Launcher"
FALSE "md.obsidian.Obsidian" "Obsidian"
)
checkbox=$(zenity --list --checklist --width=800 --height=600 \
--title="Install Apps" \
--column="Select" \
--column="App ID"\
--column="App Name" "${options[@]}")
readarray -td '|' choices < <(printf '%s' "$checkbox")
declare -i app_counter=0
declare -i app_total="${#choices[@]}"
for app in "${choices[@]}"; do
app_counter+=1
echo "Installing $app ($app_counter/$app_total)..."
zenity --notification --icon="info" --text="Installing $app ($app_counter/$app_total)..."
flatpak install -y flathub $app
if [[ $? == 0 ]]; then
zenity --notification --icon="info" --text="$app is now installed."
else
zenity --notification --icon="error" --text="$app failed to install."
fi
done
fi