diff --git a/hyprshot.sh b/hyprshot.sh index 7e66bf4..8e16092 100644 --- a/hyprshot.sh +++ b/hyprshot.sh @@ -6,37 +6,37 @@ 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 } getDependencies() { - echo_info "Checking build dependencies.." + pen bold blue "Checking build dependencies.." # INFO: # ╭─────────────────────────────────────────────────────────────────────────╮ @@ -66,26 +66,49 @@ declare -n pkgArray="${deps[$distro]}" case "$distro" in - debian | ubuntu | arch | fedora) checkAndInstall "${pkgArray[@]}" ;; + debian | ubuntu | arch | fedora) check-and-install "${pkgArray[@]}" ;; *) - echo_error "Cannot install for $distro" + echo-error "Cannot install for $distro" return 69 ;; esac } + # 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 + } + main() { if $silent; then - echo_warning "Executing script silently!" + pen bold yellow "Executing script silently!" fi if ! getDependencies; then - echo_error "Error when installing dependencies.." + echo-error "Error when installing dependencies.." fi case "$distro" in arch) - _install hyprshot + pkg-install hyprshot ;; debian | ubuntu | fedora) local cloneDir="$(mktemp -d)" @@ -104,7 +127,7 @@ esac } - if getImports; then + if setup-env; then # ─< package variable >─────────────────────────────────────────────────────────────────── unset PACKAGE @@ -115,8 +138,8 @@ PACKAGE=hyprshot 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