v3-fedora-renew
This commit is contained in:
+48
-48
@@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Color helpers (no tput)
|
# Color helpers (no tput)
|
||||||
##########################
|
#------------------------------------------
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
YELLOW='\033[0;33m'
|
YELLOW='\033[0;33m'
|
||||||
@@ -25,9 +25,9 @@ color_red() { printf '%b' "$RED"; }
|
|||||||
color_green() { printf '%b' "$GREEN"; }
|
color_green() { printf '%b' "$GREEN"; }
|
||||||
color_reset() { printf '%b' "$RESET"; }
|
color_reset() { printf '%b' "$RESET"; }
|
||||||
|
|
||||||
#-------------------
|
#------------------------------------------
|
||||||
# Script Version 3.0
|
# Script Version 3.0
|
||||||
#-------------------
|
#------------------------------------------
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "----------------------------------------------------------------"
|
echo "----------------------------------------------------------------"
|
||||||
@@ -36,14 +36,14 @@ echo "----------------------------------------------------------------"
|
|||||||
color_reset
|
color_reset
|
||||||
echo
|
echo
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# OS Detection
|
# OS Detection
|
||||||
##########################
|
#------------------------------------------
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "################### Start OS Detection"
|
echo Start OS Detection"
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@@ -76,29 +76,29 @@ esac
|
|||||||
|
|
||||||
if [[ -n "$OS" ]]; then
|
if [[ -n "$OS" ]]; then
|
||||||
color_cyan
|
color_cyan
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "Detected OS: $OS ($OS_PRETTY)"
|
echo "Detected OS: $OS ($OS_PRETTY)"
|
||||||
echo "Version: $OS_VERSION"
|
echo "Version: $OS_VERSION"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
else
|
else
|
||||||
color_red
|
color_red
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "ERROR: Unsupported or unknown Linux distribution."
|
echo "ERROR: Unsupported or unknown Linux distribution."
|
||||||
echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}"
|
echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Desktop Environment Detection / Selection
|
# Desktop Environment Detection / Selection
|
||||||
##########################
|
#------------------------------------------
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "################### Desktop Environment Selection"
|
echo " Desktop Environment Selection"
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@@ -115,9 +115,9 @@ esac
|
|||||||
if [[ -n "$DE" ]]; then
|
if [[ -n "$DE" ]]; then
|
||||||
echo
|
echo
|
||||||
color_cyan
|
color_cyan
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "Detected Desktop Environment: $DE (${DE_RAW})"
|
echo "Detected Desktop Environment: $DE (${DE_RAW})"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
else
|
else
|
||||||
echo
|
echo
|
||||||
@@ -142,20 +142,20 @@ else
|
|||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
color_cyan
|
color_cyan
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "Selected Desktop Environment: $DE"
|
echo "Selected Desktop Environment: $DE"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Tiling Window Manager Selection
|
# Tiling Window Manager Selection
|
||||||
##########################
|
#------------------------------------------
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "################### Tiling WM Selection"
|
echo " Tiling WM Selection"
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@@ -181,19 +181,19 @@ done
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
color_cyan
|
color_cyan
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "Selected Tiling WM: $TWM"
|
echo "Selected Tiling WM: $TWM"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Installation Level Selection
|
# Installation Level Selection
|
||||||
##########################
|
#------------------------------------------
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "################### Installation Level Selection"
|
echo " Installation Level Selection"
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@@ -219,28 +219,28 @@ done
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
color_cyan
|
color_cyan
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "Selected Installation Level: $INSTALL_LEVEL"
|
echo "Selected Installation Level: $INSTALL_LEVEL"
|
||||||
echo "################################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Export selections for OS script
|
# Export selections for OS script
|
||||||
##########################
|
#------------------------------------------
|
||||||
export DETECTED_OS="$OS"
|
export DETECTED_OS="$OS"
|
||||||
export DETECTED_DE="$DE_RAW"
|
export DETECTED_DE="$DE_RAW"
|
||||||
export SELECTED_DE="$DE"
|
export SELECTED_DE="$DE"
|
||||||
export SELECTED_TWM="$TWM"
|
export SELECTED_TWM="$TWM"
|
||||||
export INSTALL_LEVEL
|
export INSTALL_LEVEL
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Determine OS script
|
# Determine OS script
|
||||||
##########################
|
#------------------------------------------
|
||||||
case "$OS" in
|
case "$OS" in
|
||||||
debian) OS_SCRIPT="./${SCRIPT_VERSION}/debian.sh" ;;
|
debian) OS_SCRIPT="./debian/debian.sh" ;;
|
||||||
ubuntu) OS_SCRIPT="./${SCRIPT_VERSION}/ubuntu.sh" ;;
|
ubuntu) OS_SCRIPT="./ubuntu/ubuntu.sh" ;;
|
||||||
arch) OS_SCRIPT="./${SCRIPT_VERSION}/arch.sh" ;;
|
arch) OS_SCRIPT="./arch/arch.sh" ;;
|
||||||
fedora) OS_SCRIPT="./${SCRIPT_VERSION}/fedora.sh" ;;
|
fedora) OS_SCRIPT="./fedora/fedora.sh" ;;
|
||||||
*)
|
*)
|
||||||
color_red
|
color_red
|
||||||
echo
|
echo
|
||||||
@@ -250,9 +250,9 @@ case "$OS" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Preflight check & run
|
# Preflight check & run
|
||||||
##########################
|
#------------------------------------------
|
||||||
if [[ ! -f "$OS_SCRIPT" ]]; then
|
if [[ ! -f "$OS_SCRIPT" ]]; then
|
||||||
color_red
|
color_red
|
||||||
echo
|
echo
|
||||||
@@ -279,7 +279,7 @@ bash "$OS_SCRIPT" || {
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
color_yellow
|
color_yellow
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
echo "End Detection"
|
echo "End Detection"
|
||||||
echo "################################################################"
|
echo "----------------------------------------------------------------"
|
||||||
color_reset
|
color_reset
|
||||||
|
|||||||
+23
-41
@@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Color helpers (printf-safe, no tput)
|
# Color helpers (printf-safe, no tput)
|
||||||
##########################
|
#------------------------------------------
|
||||||
RED="\033[0;31m"
|
RED="\033[0;31m"
|
||||||
GREEN="\033[0;32m"
|
GREEN="\033[0;32m"
|
||||||
YELLOW="\033[0;33m"
|
YELLOW="\033[0;33m"
|
||||||
@@ -24,14 +24,14 @@ say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; }
|
|||||||
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
|
say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
|
||||||
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
|
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Use exported variables from main detection script
|
# Use exported variables from main detection script
|
||||||
##########################
|
#------------------------------------------
|
||||||
OS="${DETECTED_OS}"
|
OS="${DETECTED_OS}"
|
||||||
DDE="${DETECTED_DE}"
|
DDE="${DETECTED_DE}"
|
||||||
DE="${SELECTED_DE:-none}"
|
DE="${SELECTED_DE}"
|
||||||
TWM="${SELECTED_TWM:-none}"
|
TWM="${SELECTED_TWM}"
|
||||||
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}"
|
INSTALL_LEVEL="${INSTALL_LEVEL}"
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@@ -39,9 +39,9 @@ say_cyan "Starting Fedora setup..."
|
|||||||
echo
|
echo
|
||||||
say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL"
|
say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL"
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# Helper functions
|
# Helper functions
|
||||||
##########################
|
#------------------------------------------
|
||||||
install_packages() { sudo dnf install -y "$@"; }
|
install_packages() { sudo dnf install -y "$@"; }
|
||||||
is_package_installed() { rpm -q "$@" &>/dev/null; }
|
is_package_installed() { rpm -q "$@" &>/dev/null; }
|
||||||
|
|
||||||
@@ -59,32 +59,26 @@ remove_packages() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 0. Ensure base is ready for installation
|
# 0. Ensure base is ready for installation
|
||||||
##########################
|
#------------------------------------------
|
||||||
installed_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
pkg_dir="packages"
|
|
||||||
|
|
||||||
if [[ ! -d "$pkg_dir" ]]; then
|
|
||||||
say_red "Directory not found: $pkg_dir"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! command -v curl >/dev/null 2>&1; then
|
if ! command -v curl >/dev/null 2>&1; then
|
||||||
say_yellow "curl is not installed. Installing..."
|
say_yellow "curl is not installed. Installing..."
|
||||||
install_packages curl
|
install_packages curl
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 1. Update and Enable Repos
|
# 1. Update and Enable Repos
|
||||||
##########################
|
#------------------------------------------
|
||||||
say_cyan "Optimizing DNF for speed..."
|
say_cyan "Optimizing DNF for speed..."
|
||||||
|
|
||||||
# 1. Enable fastest mirror (lowest latency)
|
# 1. Enable fastest mirror (lowest latency)
|
||||||
# 2. Increase parallel downloads (allows downloading multiple packages at once)
|
# 2. Increase parallel downloads (allows downloading multiple packages at once)
|
||||||
# 3. Set a minimum rate to drop slow mirrors automatically
|
# 3. Set a minimum rate to drop slow mirrors automatically
|
||||||
|
# $. Set dnf to set YES as default instead of NO
|
||||||
sudo dnf config-manager setopt fastestmirror=1
|
sudo dnf config-manager setopt fastestmirror=1
|
||||||
sudo dnf config-manager setopt max_parallel_downloads=20
|
sudo dnf config-manager setopt max_parallel_downloads=20
|
||||||
|
sudo dnf config-manager setopt defaultyes=True
|
||||||
|
|
||||||
say_green "DNF optimized. Refreshing metadata..."
|
say_green "DNF optimized. Refreshing metadata..."
|
||||||
sudo dnf makecache --refresh
|
sudo dnf makecache --refresh
|
||||||
@@ -119,21 +113,9 @@ say_gray "Updating the system"
|
|||||||
echo
|
echo
|
||||||
sudo dnf update -y
|
sudo dnf update -y
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 2. Fix missing console font
|
|
||||||
##########################
|
|
||||||
say_yellow "Fix missing console font"
|
|
||||||
|
|
||||||
if grep -q FONT= /etc/vconsole.conf; then
|
|
||||||
say_green "Font is already set in /etc/vconsole.conf"
|
|
||||||
else
|
|
||||||
say_green "Setting console font in /etc/vconsole.conf"
|
|
||||||
echo 'FONT=gr737c-8x14' | sudo tee -a /etc/vconsole.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################
|
|
||||||
# 3. Detected OS / DE / TWM info
|
# 3. Detected OS / DE / TWM info
|
||||||
##########################
|
#------------------------------------------
|
||||||
say_yellow "Detected OS / Desktop Environment / Tiling Window Manager"
|
say_yellow "Detected OS / Desktop Environment / Tiling Window Manager"
|
||||||
echo
|
echo
|
||||||
say_gray "Installing OS-specific packages..."
|
say_gray "Installing OS-specific packages..."
|
||||||
@@ -141,9 +123,9 @@ say_gray "Selected DE: $DE"
|
|||||||
say_gray "Selected TWM: $TWM"
|
say_gray "Selected TWM: $TWM"
|
||||||
say_gray "Installation Level: $INSTALL_LEVEL"
|
say_gray "Installation Level: $INSTALL_LEVEL"
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 4. Desktop Environment installation
|
# 4. Desktop Environment installation
|
||||||
##########################
|
#------------------------------------------
|
||||||
case "$DE" in
|
case "$DE" in
|
||||||
xfce|plasma|gnome)
|
xfce|plasma|gnome)
|
||||||
say_yellow "Preparing to install $DE..."
|
say_yellow "Preparing to install $DE..."
|
||||||
@@ -161,9 +143,9 @@ case "$DE" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 5. Tiling Window Manager installation
|
# 5. Tiling Window Manager installation
|
||||||
##########################
|
#------------------------------------------
|
||||||
case "$TWM" in
|
case "$TWM" in
|
||||||
chadwm|hyprland|niri)
|
chadwm|hyprland|niri)
|
||||||
say_yellow "Installing $TWM..."
|
say_yellow "Installing $TWM..."
|
||||||
@@ -181,9 +163,9 @@ case "$TWM" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
##########################
|
#------------------------------------------
|
||||||
# 6. Installation level handling
|
# 6. Installation level handling
|
||||||
##########################
|
#------------------------------------------
|
||||||
case "$INSTALL_LEVEL" in
|
case "$INSTALL_LEVEL" in
|
||||||
minimal|full|workstation|server)
|
minimal|full|workstation|server)
|
||||||
say_cyan "Installation level: $INSTALL_LEVEL"
|
say_cyan "Installation level: $INSTALL_LEVEL"
|
||||||
|
|||||||
Reference in New Issue
Block a user