diff options
| author | JaKooLit <ejhay.games@gmail.com> | 2025-03-09 23:37:03 +0900 |
|---|---|---|
| committer | JaKooLit <ejhay.games@gmail.com> | 2025-03-09 23:37:03 +0900 |
| commit | 9d7c47195acead56a7836be85b86ea5fd1a02165 (patch) | |
| tree | afc6a5812013ce7858e37e8602f2a751535c82c5 /Distro-Hyprland.sh | |
| parent | 6fffb117dd4b241a1b6dad1677cdb9f308de0b06 (diff) | |
Added Distro-Hyprland.sh
Diffstat (limited to 'Distro-Hyprland.sh')
| -rwxr-xr-x | Distro-Hyprland.sh | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Distro-Hyprland.sh b/Distro-Hyprland.sh new file mode 100755 index 00000000..b367b013 --- /dev/null +++ b/Distro-Hyprland.sh @@ -0,0 +1,141 @@ +#!/bin/bash +# https://github.com/JaKooLit + +# Script design to clone the Distro-Hyprland install scripts + +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +INFO="$(tput setaf 4)[INFO]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +MAGENTA="$(tput setaf 5)" +ORANGE="$(tput setaf 214)" +WARNING="$(tput setaf 1)" +YELLOW="$(tput setaf 3)" +GREEN="$(tput setaf 2)" +BLUE="$(tput setaf 4)" +SKY_BLUE="$(tput setaf 6)" +RESET="$(tput sgr0)" + +# Detect the current distribution using /etc/os-release +if [ -f /etc/os-release ]; then + . /etc/os-release + distro_name=$NAME + distro_version=$VERSION_ID +else + echo "${ERROR} Unable to detect the distribution. Exiting." + exit 1 +fi + +# Define package managers, Git install commands, and dynamic variables for each distro +if [ "$distro_name" == "Arch Linux" ]; then + PACKAGE_MANAGER="pacman" + INSTALL_CMD="sudo pacman -S --noconfirm" + GIT_INSTALL_CMD="sudo pacman -S git --noconfirm" + Distro="Arch-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" +elif [ "$distro_name" == "Fedora" ]; then + PACKAGE_MANAGER="dnf" + INSTALL_CMD="sudo dnf install -y" + GIT_INSTALL_CMD="sudo dnf install -y git" + Distro="Fedora-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" +elif [ "$distro_name" == "openSUSE" ]; then + PACKAGE_MANAGER="zypper" + INSTALL_CMD="sudo zypper install -y" + GIT_INSTALL_CMD="sudo zypper install -y git" + Distro="OpenSUSE-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" +elif [ "$distro_name" == "NixOS" ]; then + PACKAGE_MANAGER="nix" + INSTALL_CMD="nix-shell" + GIT_INSTALL_CMD="nix-shell -p git curl pciutils" + Distro="NixOS-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" +elif [ "$distro_name" == "Debian" ]; then + PACKAGE_MANAGER="apt" + INSTALL_CMD="sudo apt install -y" + GIT_INSTALL_CMD="sudo apt install -y git" + Distro="Debian-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" +elif [ "$distro_name" == "Ubuntu" ]; then + PACKAGE_MANAGER="apt" + INSTALL_CMD="sudo apt install -y" + GIT_INSTALL_CMD="sudo apt install -y git" + + case "$distro_version" in + "24.04") + Distro="Ubuntu-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Github_URL_branch="24.04" + Distro_DIR="$HOME/$Distro" + echo "${INFO} Ubuntu 24.04 detected. Customizing setup for Ubuntu 24.04." + ;; + "24.10") + Distro="Ubuntu-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Github_URL_branch="24.10" + Distro_DIR="$HOME/$Distro" + echo "${INFO} Ubuntu 24.10 detected. Customizing setup for Ubuntu 24.10." + ;; + "25.04") + Distro="Ubuntu-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Github_URL_branch="25.04" + Distro_DIR="$HOME/$Distro" + echo "${INFO} Ubuntu 25.04 detected. Customizing setup for Ubuntu 25.04." + ;; + *) + Distro="Ubuntu-Hyprland" + Github_URL="https://github.com/JaKooLit/$Distro.git" + Distro_DIR="$HOME/$Distro" + echo "${INFO} Ubuntu version $distro_version detected. Using default Ubuntu setup." + ;; + esac +else + echo "${ERROR} Unsupported distribution: $distro_name. Exiting." + exit 1 +fi + +# Check for Git and install if not found +printf "\n%.0s" {1..1} + +if ! command -v git &> /dev/null +then + echo "${INFO} Git not found! ${SKY_BLUE}Installing Git...${RESET}" + if ! $GIT_INSTALL_CMD; then + echo "${ERROR} Failed to install Git. Exiting." + exit 1 + fi +fi + +# Check if the directory already exists and perform clone or update +printf "\n%.0s" {1..1} + +if [ -d "$Distro_DIR" ]; then + echo "${YELLOW}$Distro_DIR exists. Updating the repository... ${RESET}" + cd "$Distro_DIR" + git stash && git pull + chmod +x install.sh + ./install.sh +else + echo "${MAGENTA}$Distro_DIR does not exist. Cloning the repository...${RESET}" + + # Clone the specific branch for Ubuntu versions only + if [ "$distro_name" == "Ubuntu" ]; then + git clone --depth=1 -b "$Github_URL_branch" "$Github_URL" "$Distro_DIR" + else + git clone --depth=1 "$Github_URL" "$Distro_DIR" + fi + + cd "$Distro_DIR" + chmod +x install.sh + ./install.sh +fi |
