diff --git a/yazi.sh b/yazi.sh index f8dbd9e..d3cb030 100644 --- a/yazi.sh +++ b/yazi.sh @@ -6,6 +6,18 @@ 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.. if command_exists curl; then eval "$(curl -fsSL https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh)" else diff --git a/ytgo.sh b/ytgo.sh index c62f729..88d4a32 100644 --- a/ytgo.sh +++ b/ytgo.sh @@ -1,124 +1,30 @@ #!/usr/bin/env sh -# ╭───────────────╮ -# │ env functions │ -# ╰───────────────╯ -# ───────────────────────────────────< ANSI color codes >─────────────────────────────────── -RED='\033[0;31m' -CYAN='\033[0;36m' -YELLOW='\033[0;33m' -LIGHT_GREEN='\033[0;92m' -BOLD='\033[1m' -NC='\033[0m' # No Color - -echo_error() { - printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2 -} - -echo_info() { - printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1" -} - -echo_warning() { - printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1" -} - -echo_note() { - printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1" -} - command_exists() { command -v "$@" >/dev/null 2>&1 } -# ─────────────< Check if the user is root and set sudo variable if necessary >───────────── -check_root() { - if [ "$(id -u)" -ne 0 ]; then - if command_exists sudo; then - echo_info "User is not root. Using sudo for privileged operations." - _sudo="sudo" - else - echo_error "No sudo found and you're not root! Can't install packages." - return 1 - fi - else - echo_info "Root access confirmed." - _sudo="" - fi -} - -# ──────────────────────< Check if the given command exists silently >────────────────────── -command_exists() { - command -v "$@" >/dev/null 2>&1 -} - -# ╭────────────────────────────────────╮ -# │ insert your scripts/functions here │ -# ╰────────────────────────────────────╯ - -# ─< Distribution detection and installation >──────────────────────────────────────── -get_packager() { - if [ -e /etc/os-release ]; then - echo_info "Detecting distribution..." - . /etc/os-release - - # ─< Convert $ID and $ID_LIKE to lowercase >────────────────────────────────────────────── - ID=$(printf "%s" "$ID" | tr '[:upper:]' '[:lower:]') - ID_LIKE=$(printf "%s" "$ID_LIKE" | tr '[:upper:]' '[:lower:]') - - case "$ID" in - ubuntu | pop) _install() { - $_sudo apt-get install --assume-yes "$@" - } ;; - debian) _install() { - $_sudo apt-get install --assume-yes "$@" - } ;; - fedora) _install() { - $_sudo dnf install -y "$@" - } ;; - alpine) inst_alpine ;; - arch | manjaro | garuda | endeavour) _install() { - $_sudo pacman -S --noconfirm "$@" - } ;; - opensuse*) inst_opensuse ;; - *) - if [ "${ID_LIKE#*debian}" != "$ID_LIKE" ]; then - _install() { - $_sudo apt-get install --assume-yes "$@" - } - elif [ "${ID_LIKE#*ubuntu}" != "$ID_LIKE" ]; then - _install() { - $_sudo apt-get install --assume-yes "$@" - } - elif [ "${ID_LIKE#*arch}" != "$ID_LIKE" ]; then - _install() { - $_sudo pacman -S --noconfirm "$@" - } - elif [ "${ID_LIKE#*fedora}" != "$ID_LIKE" ]; then - _install() { - $_sudo dnf install -y "$@" - } - elif [ "${ID_LIKE#*suse}" != "$ID_LIKE" ]; then - inst_opensuse - else - echo_error "Unsupported distribution: $ID" - exit 1 - fi - ;; - esac - else - echo_error "Unable to detect distribution. /etc/os-release not found." - exit 1 - fi -} +# 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.. +if command_exists curl; then + eval "$(curl -fsSL https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh)" +else + echo "curl is required, but missing.." + exit 1 +fi _dependencies() { - get_packager - if [[ "$ID" == "arch" || "$ID_LIKE" == *"arch"* ]]; then - _deps="go git mpv yt-dlp" - else - _deps="golang git mpv yt-dlp" - fi + _deps="go git mpv yt-dlp" for dependency in $_deps; do if ! command_exists "$dependency"; then