From d3b6d8010f1b5dfc5c62e2c9f0832a5419f3b0fc Mon Sep 17 00:00:00 2001 From: pika Date: Fri, 16 May 2025 09:33:01 +0200 Subject: [PATCH] wip --- hyprlock.sh | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++ hyprutils.sh | 8 +--- 2 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 hyprlock.sh diff --git a/hyprlock.sh b/hyprlock.sh new file mode 100644 index 0000000..695b010 --- /dev/null +++ b/hyprlock.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash + +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} + +# WHY: +# This import will give you the following variables: +# _sudo="sudo -E" <- only if non root user +# distro = +# arch = bool +# fedora = bool +# opensuse = bool.... +# You can then use it for, `if $arch; then` +# Also this gives you the _install command, which installs a package pased on the packagemanager/distro used. +# CAUTION: +# This only wokrs for generic package names, like neovim, or vim, or tmux etc.. +# not every package packagemanager has the same packagenames for their packages.. +getImports() { + local url="https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh" + local import="$(mktemp)" + if command_exists curl; then + curl -fsSL $url -o $import + elif command_exists wget; then + wget -o $import $url + else + echo "curl/wget is required, but missing.." + exit 69 + fi + + source "$import" + sleep 0.2 + rm "$import" +} + +getDependencies() { + echo_info "Checking build dependencies.." + + # INFO: + # ╭─────────────────────────────────────────────────────────────────────────╮ + # │ You can define dependencies for various linux distros here. It will │ + # │ automagically be pulled via the $pkgArray[$distro] variable │ + # ╰─────────────────────────────────────────────────────────────────────────╯ + depsDebian=(libcairo2-dev mesa-common-dev cmake libgbm-dev libdrm-dev libopengl-dev wayland-protocols wayland-utils libsdbus-c++-dev) + # depsUbuntu=() + depsFedora=() + depsOpensuse=() + depsArch=() + depsAlpine=() + + declare -A deps=( + [debian]="depsDebian" + [ubuntu]="depsUbuntu" + [fedora]="depsFedora" + [arch]="depsArch" + [alpine]="depsAlpine" + [opensuse]="depsOpensuse" + ) + + # INFO: + # ╭────────────────────────────────────────────────────────────────╮ + # │ This variable stores the packages you provided for each distro │ + # ╰────────────────────────────────────────────────────────────────╯ + declare -n pkgArray="${deps[$distro]}" + + case "$distro" in + debian | ubuntu | arch | fedora | alpine | opensuse) checkAndInstall "${pkgArray[@]}" ;; + *) + echo_error "Cannot install for $distro" + return 69 + ;; + esac +} + +cloneAndBuild() { + +} + +main() { + case "$distro" in + arch) + _install hyprlock + ;; + debian) + echo "debian" + ;; + ubuntu) + echo "ubuntu" + ;; + fedora) + echo "fedora" + ;; + alpine) + echo "alpine" + ;; + opensuse) + echo "opensuse" + ;; + *) + echo "$distro is not supported by this script!" + exit 1 + ;; + esac +} + +if getImports; then + case "$@" in + --silent | -s) + silent=true + echo_warning "Running script silently!" + ;; + *) + silent=false + ;; + esac + getDependencies + main +fi diff --git a/hyprutils.sh b/hyprutils.sh index bbb832f..355fb92 100644 --- a/hyprutils.sh +++ b/hyprutils.sh @@ -106,10 +106,6 @@ main() { debian) cloneAndInstall ;; - *) - echo "$distro is not supported by this script!" - exit 69 - ;; esac } @@ -119,14 +115,12 @@ if ! $arch || ! $debian; then fi if getImports; then + silent=false case "$@" in --silent | -s) silent=true echo_warning "Running script silently!" ;; - *) - silent=false - ;; esac getDependencies main