From 84ba07683f78edce2e1212a98ea0558ec3aae3ca Mon Sep 17 00:00:00 2001 From: pika Date: Sat, 24 May 2025 13:06:28 +0200 Subject: [PATCH] adapting for dream use --- swww.sh | 87 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 32 deletions(-) diff --git a/swww.sh b/swww.sh index 773b5b8..39b2bfa 100644 --- a/swww.sh +++ b/swww.sh @@ -6,39 +6,40 @@ 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() { - i="https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh" - import="$(mktemp)" - if command_exists curl; then - curl -fsSL $i -o $import - else - echo "curl is required, but missing.." - exit 1 - fi + source-script() { + local url="$1" + local import="$(mktemp)" - source "$import" - sleep 0.3 - rm "$import" - echo_warning "cleaned $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 } checkBuildDependencies() { echo_pkg deps "Installing build dependencies.." local deps=(git xdg-output liblz4-dev wayland-protocols) # echo "DEBUG: Installing ${deps[@]}" - checkAndInstall "${deps[@]}" + check-and-install ${deps[@]} if ! command_exists cargo; then curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh @@ -65,13 +66,13 @@ main() { if $silent; then - echo_warning "Executing script silently!" + pen bold yellow "Executing script silently!" fi case "$distro" in arch) echo_pkg arch "Arch detected.. installing directly" - run _install swww + check-and-install swww ;; debian | ubuntu) checkBuildDependencies @@ -84,7 +85,30 @@ 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 @@ -95,8 +119,8 @@ PACKAGE=swww if command_exists "$PACKAGE"; then - echo_warning "$PACKAGE is already installed!" - echo_warning "Exiting now!" + pen bold yellow "$PACKAGE is already installed!" + pen bold yellow "Exiting now!" exit 69 fi @@ -111,5 +135,4 @@ main fi - }