From 934933c058a9d9fbceae9485987310116e938e49 Mon Sep 17 00:00:00 2001 From: pika Date: Mon, 2 Jun 2025 10:54:07 +0200 Subject: [PATCH] gettin the filecheck inplace --- dream.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 9 deletions(-) diff --git a/dream.sh b/dream.sh index f77eeca..94972e5 100644 --- a/dream.sh +++ b/dream.sh @@ -80,7 +80,7 @@ echo_pkg() { echo "${BOLD}${BRIGHT_RED}${PACKAGE:-PKG}-install:${NC}${BRIGHT_GREEN} Installing $PACKAGE now!${NC}" ;; *) - echo "${BOLD}${BRIGHT_RED}${PACKAGE:-PKG}:${NC}${YELLOW} $1 ${NC}" + echo "${BOLD}${BRIGHT_RED}${PACKAGE:-PKG}:${NC}${BOLD}${BRIGHT_YELLOW} $1 ${NC}" ;; esac else @@ -120,6 +120,54 @@ run-silent() { fi } +setup-dependencies() { + local arr=("$@") + local pkg_installable pkg_not_installable pkg + + # echo ${arr[@]} + + for pkg in "${arr[@]}"; do + case "$distro" in + debian | ubuntu) + if apt-cache show $pkg >/dev/null 2>&1; then + pkg_installable+=("$pkg") + else + pkg_not_installable+=("$pkg") + fi + ;; + arch) + if pacman -Si $pkg >/dev/null 2>&1; then + pkg_installable+=("$pkg") + elif paru -Si $pkg >/dev/null 2>&1 || yay -Si $pkg >/dev/null 2>&1; then + pkg_installable+=("$pkg") + else + pkg_not_installable+=("$pkg") + fi + ;; + fedora) + if dnf --cacheonly list --available --exact "$pkg" >/dev/null 2>&1; then + pkg_installable+=("$pkg") + else + pkg_not_installable+=("$pkg") + fi + ;; + opensuse) + if zypper --no-refresh info "$pkg" &>/dev/null; then + pkg_installable+=("$pkg") + else + pkg_not_installable+=("$pkg") + fi + ;; + *) + return 69 + ;; + esac + done + + echo "green ${pkg_installable[@]}" + echo "red ${pkg_not_installable[@]}" +} + # if given an array, it checks if the command is available, and if not - installs all packages in that array one by one check-and-install() { local package_group=("$@") @@ -155,6 +203,7 @@ check-and-install() { fi done } + # check and removes items inside an array check-and-remove() { local pkglength="${#@}" @@ -187,7 +236,7 @@ check-and-remove() { } # ─< Check if the user is root and set sudo variable if necessary >─────────────────────── -check_env() { +check-environment() { if [ "$(id -u)" -ne 0 ]; then if command-exists sudo; then _sudo="sudo -E" @@ -317,7 +366,7 @@ _setup() { } # ─< Distribution detection and installation >──────────────────────────────────────── -get_packager() { +get-packager-variables() { # ─< define fallback function >─────────────────────────────────────────────────────────── fallback() { local pkger="" @@ -440,7 +489,7 @@ get_packager() { # │ Automated setup for refreshing repositories and overall getting the variables to setup │ # ╰────────────────────────────────────────────────────────────────────────────────────────╯ -dist_setup() { +distro-setup() { case "$distro" in debian) repen bold "Found $(pen red bold $distro)" @@ -975,12 +1024,12 @@ seek() { # NOTE: # ──────────────────────────────────────< end beddu >──────────────────────────────────── -if check_env; then +if check-environment; then # ─< gets the some variables like $aur, $debian, $ubuntu, $distro... >──────────────────── - get_packager + get-packager-variables # ─< get more indepths variables like $trixie, $bookworm, $jammy, $fedora_40.. >────────── - dist_setup + distro-setup # WHY: # ╭─────────────────────────────────────────────────────────────────────────╮ @@ -989,8 +1038,8 @@ if check_env; then # ╰─────────────────────────────────────────────────────────────────────────╯ pikaCheckFile="$HOME/.cache/pika_script_detection" - if [ ! -f "$pikaCheckFile" ]; then - pen bold grey "First time importing.." + if ! checkFileAge "$pikaCheckFile"; then + pen bold grey "Updating sources.." if update-package-list; then silentexec touch "$pikaCheckFile"