From 76d06eba8df45df93fcf372fd17e639113abeb5e Mon Sep 17 00:00:00 2001 From: pika Date: Sat, 24 May 2025 14:44:26 +0200 Subject: [PATCH] making changes.. --- hypr/hyprgraphics.sh | 111 ++++++++++++++++++++++++++++++------------- 1 file changed, 78 insertions(+), 33 deletions(-) diff --git a/hypr/hyprgraphics.sh b/hypr/hyprgraphics.sh index 45935fe..eda71b8 100644 --- a/hypr/hyprgraphics.sh +++ b/hypr/hyprgraphics.sh @@ -5,33 +5,33 @@ 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" +source-script() { + local url="$1" 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" + # ─< if $1 is a local file, source this one instead >───────────────────────────────────── + if [ -f "$url" ]; then + source "$url" + sleep 0.1 + return 0 + else + # ─< if $1 is a url, grab it and source it, also deletes afterwards >───────────────────── + 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" + + echo "${BLUE}Sourcing external script:${NC} $url" + line + sleep 0.1 + rm -f "$import" + fi } checkComp() { @@ -80,7 +80,7 @@ getDependencies() { ;; *) if checkComp; then - checkAndInstall "$pkg" + check-and-install "$pkg" fi ;; esac @@ -88,20 +88,38 @@ getDependencies() { } build() { - echo_pkg build - run cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build - run cmake --build ./build --config Release --target all -j$(nproc 2>/dev/null || getconf NPROCESSORS_CONF) + local err out + spin bold yellow "Building $PACKAGE" + if run --err err --out out cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKEpkg-install_PREFIX:PATH=/usr -S . -B ./build; then + if run --err err --out out cmake --build ./build --config Release --target all -j$(nproc 2>/dev/null || getconf NPROCESSORS_CONF); then + upclear + check "Build $PACKAGE" + else + upclear + throw-err + fi + else + upclear + throw-err + fi } cloneAndInstall() { local cloneDir="$(mktemp -d)" cd $cloneDir || mkdir -p "$cloneDir" && cd "$cloneDir" - echo_pkg clone - git clone --depth=1 https://github.com/hyprwm/hyprgraphics.git && + spin bold grey "Cloning $PACKAGE sources.." + if run git clone --depth=1 https://github.com/hyprwm/hyprgraphics.git; then + upclear + check "Cloned $PACKAGE sources" cd hyprgraphics + else + upclear + throw-err + fi if build; then + upclear echo_pkg install "Installing package.." $_sudo cmake --install build else @@ -121,15 +139,42 @@ main() { case "$distro" in arch) - _install hyprgraphics + pkg-install hyprgraphics ;; debian) cloneAndInstall ;; + *) + echo-error "This script is not designed to run on $distro! Exiting now" + return 69 + ;; esac } -if getImports; then +# 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 pkg-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.. +setup-env() { + # local beddu=https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh + # local pika=https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh + local dream=https://git.k4li.de/scripts/imports/raw/branch/main/dream.sh + + if ! command_exists pkg-install && ! command_exists check-and-install && ! command_exists spin; then + source-script $dream + line + fi +} + +if setup-env; then # ─< package variable >─────────────────────────────────────────────────────────────────── unset PACKAGE