aboutsummaryrefslogtreecommitdiffstats
path: root/Distro-Hyprland.sh
blob: 09f801a912eba95a63aec6b251edf42e8ae97eae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/env bash
# ==================================================
#  KoolDots (2026)
#  Project URL: https://github.com/LinuxBeginnings
#  License: GNU GPLv3
#  SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================

# 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" = "Debian GNU/Linux" ]; 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/LinuxBeginnings/$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/LinuxBeginnings/$Distro.git"
            Github_URL_branch="24.04"
            Distro_DIR="$HOME/$Distro-$Github_URL_branch"
            echo "${INFO} Ubuntu 24.04 detected. Customizing setup for Ubuntu 24.04."
            ;;
        "24.10")
            Distro="Ubuntu-Hyprland"
            Github_URL="https://github.com/LinuxBeginnings/$Distro.git"
            Github_URL_branch="24.10"
            Distro_DIR="$HOME/$Distro-$Github_URL_branch"
            echo "${INFO} Ubuntu 24.10 detected. Customizing setup for Ubuntu 24.10."
            ;;
        "25.04")
            Distro="Ubuntu-Hyprland"
            Github_URL="https://github.com/LinuxBeginnings/$Distro.git"
            Github_URL_branch="25.04"
            Distro_DIR="$HOME/$Distro-$Github_URL_branch"
            echo "${INFO} Ubuntu 25.04 detected. Customizing setup for Ubuntu 25.04."
            ;;
        "25.10")
            Distro="Ubuntu-Hyprland"
            Github_URL="https://github.com/LinuxBeginnings/$Distro.git"
            Github_URL_branch="25.10"
            Distro_DIR="$HOME/$Distro-$Github_URL_branch"
            echo "${INFO} Ubuntu 25.10 detected. Customizing setup for Ubuntu 25.10."
            ;;
        "26.04-development")
            Distro="Ubuntu-Hyprland"
            Github_URL="https://github.com/LinuxBeginnings/$Distro.git"
            Github_URL_branch="26.04-development"
            Distro_DIR="$HOME/$Distro-$Github_URL_branch"
            echo "${INFO} Ubuntu 26.04 (development) detected. Customizing setup for Ubuntu 26.04 development branch."
            ;;
        *)
            Distro="Ubuntu-Hyprland"
            echo "${ERROR} Unsupported distribution: $distro_version. Exiting."
            exit 1
            ;;
    esac

elif command -v pacman &> /dev/null; 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/LinuxBeginnings/$Distro.git"
    Distro_DIR="$HOME/$Distro"
elif command -v dnf &> /dev/null; 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/LinuxBeginnings/$Distro.git"
    Distro_DIR="$HOME/$Distro"
elif command -v zypper &> /dev/null; 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/LinuxBeginnings/$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/LinuxBeginnings/$Distro.git"
    Distro_DIR="$HOME/$Distro"
else
    echo "${ERROR} Unsupported distribution: $distro_name. Exiting."
    exit 1
fi

# Check for Git and install if not found
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
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
        echo "${INFO} Cloning from branch ${Github_URL_branch} for Ubuntu $distro_version."
        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
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage