diff --git a/install-scripts/hyprland-qtutils.sh b/install-scripts/hyprland-qtutils.sh new file mode 100644 index 0000000..938ff5f --- /dev/null +++ b/install-scripts/hyprland-qtutils.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# Hypr Ecosystem # +# hyprland-qtutils # + +qtutils_dep=( + qt6-base-dev + qt6-base-private-dev + qt6-declarative-dev + qt6-wayland-dev + qt6-wayland-private-dev + qt6-tools-dev + qt6-tools-dev-tools + qml6-module-qtcore + qml6-module-qtquick + qml6-module-qtquick-controls + qml6-module-qtquick-dialogs + qml6-module-qtquick-layouts + qml6-module-qtquick-window +) + +# specific branch or release (default to main for latest utils) +tag="main" +# Allow environment override +if [ -n "${HYPRLAND_QTUTILS_TAG:-}" ]; then tag="$HYPRLAND_QTUTILS_TAG"; fi + +# Dry-run support +DO_INSTALL=1 +if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then + DO_INSTALL=0 + echo "${NOTE} DRY RUN: install step will be skipped." +fi + +## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; } + +# Source the global functions script +if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then + echo "Failed to source Global_functions.sh" + exit 1 +fi + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-qtutils.log" +MLOG="install-$(date +%d-%H%M%S)_hyprland-qtutils2.log" + +# Installation of dependencies +printf "\n%s - Installing ${YELLOW}hyprland-qtutils dependencies${RESET} .... \n" "${INFO}" + +for PKG1 in "${qtutils_dep[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs" + exit 1 + fi +done + +printf "\n%.0s" {1..1} + +# Check if hyprland-qtutils directory exists and remove it +if [ -d "hyprland-qtutils" ]; then + rm -rf "hyprland-qtutils" +fi + +# Clone and build +printf "${INFO} Installing ${YELLOW}hyprland-qtutils $tag${RESET} ...\n" +if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprland-qtutils.git; then + cd hyprland-qtutils || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + cmake --build ./build --config Release --target all -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)" + if [ $DO_INSTALL -eq 1 ]; then + if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then + printf "${OK} ${MAGENTA}hyprland-qtutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$MLOG" + fi + else + echo "${NOTE} DRY RUN: Skipping installation of hyprland-qtutils $tag." + fi + #moving the additional logs to Install-Logs directory + [ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ + cd .. +else + echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$LOG" +fi + +printf "\n%.0s" {1..2} diff --git a/install.sh b/install.sh index f5ed1e0..c976e5a 100755 --- a/install.sh +++ b/install.sh @@ -542,6 +542,8 @@ execute_script "aquamarine.sh" sleep 1 execute_script "hyprland-qt-support.sh" sleep 1 +execute_script "hyprland-qtutils.sh" +sleep 1 execute_script "hyprland-guiutils.sh" sleep 1 execute_script "hyprland-protocols.sh"