i'm looking for brave people to test my simplified, dependency-free neofetch clone.

i'm looking for brave people to test my simplified, dependency-free neofetch clone.

https://raw.githubusercontent.com/CardealRusso/bufetch/main/bufetch

Homeless People Are Sexy Shirt $21.68

Ape Out Shirt $21.68

Homeless People Are Sexy Shirt $21.68

  1. 3 weeks ago
    Anonymous

    wait, no logo picture? It's useless then.

    • 3 weeks ago
      Anonymous

      What is the developer's stance on the SMO?

      Just run them on different VMs? I don't trust my sh knowledge enough to audit it

      >no lgbt flag options
      I don't want it

      this but MAP flag option

      just run and share the screenshot

      • 3 weeks ago
        Anonymous

        >just run this shell script being shilled by some homosexual OP
        hard pass

      • 3 weeks ago
        Anonymous

        what year do you think it is? People can't afford to run suspicious software on their computers anymore. Every heard of online banking? If it's comedyware and calls me a Black person when I boot it up that would be funny, but just do

        Just run them on different VMs? I don't trust my sh knowledge enough to audit it

        otherwise.

  2. 3 weeks ago
    Anonymous

    What is the developer's stance on the SMO?

  3. 3 weeks ago
    Anonymous

    Just run them on different VMs? I don't trust my sh knowledge enough to audit it

  4. 3 weeks ago
    Anonymous

    >no lgbt flag options
    I don't want it

    • 3 weeks ago
      Anonymous

      this but MAP flag option

  5. 3 weeks ago
    Anonymous

    how do you design UI this unappealing?

    • 3 weeks ago
      Anonymous

      maybe we should've added some child pornography to make it more appealing to you, our apologies.

      • 3 weeks ago
        Anonymous

        Finally, a maintainer that understands what IQfy wants!

  6. 3 weeks ago
    Anonymous

    >if [ $days -gt 1 ]; then echo "s"; else echo ""; fi
    hmm

    • 3 weeks ago
      Anonymous

      Nice one dude. Not even RISC-V compatible.

      Fixed.

      werks on my (virtual) machine

      also why are you running your experimental script as root?

      I trust myself. Also, thanks.

      Nice one dude. Not even RISC-V compatible.

      Please share the result of find /sys/class/drm/card*/*

      • 3 weeks ago
        Anonymous

        pastebin.com/uyuLAhwp

        • 3 weeks ago
          Anonymous

          lastly, please share the cat from /sys/class/drm/card0/device

          • 3 weeks ago
            Anonymous

            https://pastebin.com/raw/CgSXGcdw

          • 3 weeks ago
            Anonymous

            sipeed@lpi4a:~$ cat /sys/class/drm/card0/device
            cat:cat /sys/class/drm/card0/device is a directory
            sipeed@lpi4a:~$ ls /sys/class/drm/card0/device
            driver driver_override drm graphics modalias of_node power subsystem uevent
            Blame Imagination for this

            Is RISC-V worth it for web browsing only? I've been considering getting one.

            It's too slow for captcha. I've typed the above in manually

          • 3 weeks ago
            Anonymous

            /proc/cpuinfo pls

          • 3 weeks ago
            Anonymous

            pastebin.com/iAasZ9Pp
            I forgot an a

          • 3 weeks ago
            Anonymous

            404

          • 3 weeks ago
            Anonymous

            pastebin.com/iAaSZ9Pp

          • 3 weeks ago
            Anonymous

            can you run the script again?

          • 3 weeks ago
            Anonymous

            Believe it or not, this is the least clumsy way to get this

          • 3 weeks ago
            Anonymous

            thanks man

          • 3 weeks ago
            Anonymous

            >It's too slow for captcha
            not a problem I suppose

        • 3 weeks ago
          Anonymous

          share /proc/cpuinfo

          • 3 weeks ago
            Anonymous

            pastebin.com/iAsSZ9Pp

  7. 3 weeks ago
    Anonymous

    not very informative

  8. 3 weeks ago
    Anonymous

    Nice one dude. Not even RISC-V compatible.

    • 3 weeks ago
      Anonymous

      >1568
      bloatware

      • 3 weeks ago
        Anonymous

        There's legitimately 1 image for this guy on the entire internet, and if you want anything else, you are doing LFS but worse since proprietary drivers and a weird patched compiler

    • 3 weeks ago
      Anonymous

      Is RISC-V worth it for web browsing only? I've been considering getting one.

  9. 3 weeks ago
    Anonymous

    Will run with root

  10. 3 weeks ago
    Anonymous

    cool

  11. 3 weeks ago
    Anonymous

    20c20,24
    < os_name=$(awk -F= '/^PRETTY_NAME/ {print $2}' /etc/os-release | tr -d '"' 2>/dev/null || uname -o)
    ---
    > if [ -f /etc/os-release ]; then
    > os_name=$(. /etc/os-release; printf '%sn' "$PRETTY_NAME")
    > else
    > os_name=$(uname -o)
    > fi
    101,112c105
    < cpu=""
    < if grep -q "^model name" /proc/cpuinfo; then
    < cpu=$(awk -F ': ' '/^model name/ {print $2; exit}' /proc/cpuinfo)
    < elif grep -q "^isa" /proc/cpuinfo; then
    < cpu=$(awk -F ': ' '/^isa/ {print $2; exit}' /proc/cpuinfo)
    < elif grep -q "^cpu model" /proc/cpuinfo; then
    < cpu=$(awk -F ': ' '/^cpu model/ {print $2; exit}' /proc/cpuinfo)
    < elif grep -q "^Processor" /proc/cpuinfo; then
    < cpu=$(awk -F ': ' '/^Processor/ {print $2; exit}' /proc/cpuinfo)
    < elif grep -q "^cpu" /proc/cpuinfo; then
    < cpu=$(awk -F ': ' '/^cpu/ {print $2; exit}' /proc/cpuinfo)
    < fi
    ---
    > cpu=$(awk -F ': ' '/^(model name|isa|cpu model|Processor|cpu|Hardware)/ {print $2; exit}' /proc/cpuinfo)

    • 3 weeks ago
      Anonymous

      Thanks, I used os_name but the awk script didn't work.

      I would like the pastebin of your /proc/cpuinfo

      It incorrectly shows RAM amount on my OpenWRT device, CPU seems weird?, and doesn't show package count since it uses opkg. The result after that is from a sysinfo script I made.

      I need your pastebin of /proc/cpuinfo and /proc/meminfo

      Black person:~$ nano bufetch.sh
      Black person:~$ chmod +x bufetch.sh
      Black person:~$ ./bufetch.sh
      OS Ubuntu 22.04.4 LTS
      KER 5.15.146.1-microsoft-standard-WSL2
      UPT 0 min
      PKS 1217 (dpkg)
      SHL bash
      TER bufetch.sh
      CPU AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx (8)
      RAM 312MiB / 2976MiB

      >TER bufetch.sh

      This happens occasionally, I haven't yet been able to identify the problem. But as a temporary solution I've removed the terminal display if it shows bufetch

      >pointless if statements when you can usually just run [ thing ] && cmd1 || cmd2
      >long repetitive elif chains that could probably be case statements
      >awk /grep/'{print $column}' on text with 1-character delimiters, when grep | cut is often faster (time it) because you're not running a whole programming language just for basic text manipulation
      >shell variables in printf strings (but not always? wtf) in a script that calls /bin/sh
      >variables set to unquoted $(subshells), some of which WILL have spaces/newlines in them
      >not taking advantage of variable manipulation when you can (such as ${var#remove_from_start} or ${var%remove_from_end})
      >cat | sed
      This makes me want to vomit more than the seven shots of whiskey I had.

      Yes, thanks for the tips

      • 3 weeks ago
        Anonymous

        >/proc/meminfo
        and free -m

    • 3 weeks ago
      Anonymous

      >awk -F ': ' '/^(model name|isa|cpu model|Processor|cpu|Hardware)/ {print $2; exit}' /proc/cpuinfo

      This actually worked, the problem was only “|cpu|”

      I'm , I made https://termbin.com/adew to try to clean up and improve performance to OP's script. Here's what I ran to time the two versions, and what I got. bufetch.n is my edit.
      for f in bufetch*; do
      echo "$f"
      time for i in {1..200}; do
      ./"$f"
      done >/dev/null
      done

      bufetch

      real 0m10.253s
      user 0m5.298s
      sys 0m2.466s

      bufetch.n

      real 0m9.179s
      user 0m4.389s
      sys 0m2.215s

      I didn't touch the if/elif statement under "Get and display CPU info" out of caution, but it probably could be another pipechain or case statement. I also used which instead of command -v as well, because I found testing command -v in /bin/dash to be unreliable. If OP or another anon can do it better than I, then use something like command -v or 'type', as using shell builtins will keep the script more efficient.
      I also changed free -m to free -h but if you absolutely want to display memory in mebibytes that's fine
      [...]
      That's good, I just mean how it's done isn't as clean or efficient as I would write my own scripts.

      Maybe the problem is your awk?
      I did several tests, swapping awk for grep, cut, head etc, and in all tests awk was faster.

  12. 3 weeks ago
    Anonymous

    Black person:~$ nano bufetch.sh
    Black person:~$ chmod +x bufetch.sh
    Black person:~$ ./bufetch.sh
    OS Ubuntu 22.04.4 LTS
    KER 5.15.146.1-microsoft-standard-WSL2
    UPT 0 min
    PKS 1217 (dpkg)
    SHL bash
    TER bufetch.sh
    CPU AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx (8)
    RAM 312MiB / 2976MiB

    >TER bufetch.sh

  13. 3 weeks ago
    Anonymous

    It incorrectly shows RAM amount on my OpenWRT device, CPU seems weird?, and doesn't show package count since it uses opkg. The result after that is from a sysinfo script I made.

  14. 3 weeks ago
    Anonymous

    >pointless if statements when you can usually just run [ thing ] && cmd1 || cmd2
    >long repetitive elif chains that could probably be case statements
    >awk /grep/'{print $column}' on text with 1-character delimiters, when grep | cut is often faster (time it) because you're not running a whole programming language just for basic text manipulation
    >shell variables in printf strings (but not always? wtf) in a script that calls /bin/sh
    >variables set to unquoted $(subshells), some of which WILL have spaces/newlines in them
    >not taking advantage of variable manipulation when you can (such as ${var#remove_from_start} or ${var%remove_from_end})
    >cat | sed
    This makes me want to vomit more than the seven shots of whiskey I had.

    • 3 weeks ago
      Anonymous

      alright I was wrong about the unquoted subshell bit, I remember reading that it the case though

    • 3 weeks ago
      Anonymous

      Also, the point of the script is to be compatible with busybox (sh, awk, etc)
      is where the “bu” comes from

    • 3 weeks ago
      Anonymous

      I'm , I made https://termbin.com/adew to try to clean up and improve performance to OP's script. Here's what I ran to time the two versions, and what I got. bufetch.n is my edit.
      for f in bufetch*; do
      echo "$f"
      time for i in {1..200}; do
      ./"$f"
      done >/dev/null
      done

      bufetch

      real 0m10.253s
      user 0m5.298s
      sys 0m2.466s

      bufetch.n

      real 0m9.179s
      user 0m4.389s
      sys 0m2.215s

      I didn't touch the if/elif statement under "Get and display CPU info" out of caution, but it probably could be another pipechain or case statement. I also used which instead of command -v as well, because I found testing command -v in /bin/dash to be unreliable. If OP or another anon can do it better than I, then use something like command -v or 'type', as using shell builtins will keep the script more efficient.
      I also changed free -m to free -h but if you absolutely want to display memory in mebibytes that's fine

      Also, the point of the script is to be compatible with busybox (sh, awk, etc)
      is where the “bu” comes from

      That's good, I just mean how it's done isn't as clean or efficient as I would write my own scripts.

      • 3 weeks ago
        Anonymous

        how does it compare to neofetch in terms of speed?

      • 3 weeks ago
        Anonymous

        [/code]
        #!/bin/sh
        get_cpu_info() {
        local threads=0
        local cpuname=
        while read -r line; do
        key="${line%%:*}"
        key="${key%"${key##*[![:space:]]}"}"
        value="${line#*:}"
        value="${value#}"
        value="${value#"${value%%[![:space:]]*}"}"
        if [ "$key" = 'model name' ]; then
        cpuname="$value"
        threads="$(( threads + 1))"
        fi
        done < /proc/cpuinfo
        printf 'CPU: %s (%s)n' "${cpuname-UKNK}" "${threads-1}"
        }

        get_cpu_info
        [/code]

        dash ./muh_cpu 0.01s user 0.01s system 96% cpu 0.017 total

        there, adjust as needed. guaranteed faster than using gawk and grep.

        • 3 weeks ago
          Anonymous

          frick off.
          I fricking hate bbcodes.

          get_cpu_info() {
          local threads=0
          local cpuname=
          while read -r line; do
          key="${line%%:*}"
          key="${key%"${key##*[![:space:]]}"}"
          value="${line#*:}"
          value="${value#}"
          value="${value#"${value%%[![:space:]]*}"}"
          if [ "$key" = 'model name' ]; then
          cpuname="$value"
          threads="$(( threads + 1))"
          fi
          done < /proc/cpuinfo
          printf 'CPU: %s (%s)n' "${cpuname-UKNK}" "${threads-1}"
          }

          • 3 weeks ago
            Anonymous

            >compiled
            >by a troon
            enjoy your botnet

            This is obviously much slower, not to mention the reduction in readability.

            tc@box:~$ sudo cache-clear
            tc@box:~$ time sh ./default
            CPU AMD 4700S 8-Core Processor Desktop Kit (16)
            real 0m 0.01s
            user 0m 0.00s
            sys 0m 0.01s
            tc@box:~$ sudo cache-clear
            tc@box:~$ time sh ./muh_cpu
            CPU: AMD 4700S 8-Core Processor Desktop Kit (16)
            real 0m 0.10s
            user 0m 0.01s
            sys 0m 0.09s

          • 3 weeks ago
            Anonymous

            >slower
            it isn't, you're just an idiot and using bash.

          • 3 weeks ago
            Anonymous

            just try it yourself and share the results here
            I'm not using bash, but ash (which is the father of dash)
            My awk is also an implementation of busybox.

            if [ -f /proc/cpuinfo ]; then
            cpu=$(awk -F ': ' '/^(model name|isa|cpu model|Processor|Hardware)/ {print $2; exit}' /proc/cpuinfo)
            threads=$(awk '/^processor/ {count++} END {print count}' /proc/cpuinfo)
            printf "${GREEN}CPU${NC}t%s (%s)n" "$cpu" "$threads"
            fi

            get_cpu_info() {
            local threads=0
            local cpuname=
            while read -r line; do
            key="${line%%:*}"
            key="${key%"${key##*[![:space:]]}"}"
            value="${line#*:}"
            value="${value#}"
            value="${value#"${value%%[![:space:]]*}"}"
            if [ "$key" = 'model name' ]; then
            cpuname="$value"
            threads="$(( threads + 1))"
            fi
            done < /proc/cpuinfo
            printf 'CPU: %s (%s)n' "${cpuname-UKNK}" "${threads-1}"
            }

            get_cpu_info

          • 3 weeks ago
            Anonymous

            the difference is imperceptible on zsh or dash.
            what's your point? you're just a process spawning shitter because you can't use POSIX sh.

            if you really cared, you'd inline that awk into one script anyhow.

          • 3 weeks ago
            Anonymous

            >process spawning
            Your code is genuinely interesting, in fact 0 dependencies, but hard to maintain. What would be your approach to get the current terminal using this method?

          • 3 weeks ago
            Anonymous

            #!/bin/sh
            get_ppid_sid() {
            read -r line < /proc/"$1"/stat
            residue="${line#*')'}"
            set -- $residue
            sid="$4"
            ppid="$2"
            }

            if [ -t 0 ] || [ -t 1 ] || [ -t 2 ]; then
            get_ppid_sid self
            get_ppid_sid "$sid"
            term="$(realpath /proc/"$ppid"/exe)"
            printf 'TERM: %sn' "${term##*/}"
            else
            printf 'TERM: (UNKNOWN) This is not being executed by a terminal.n'
            fi

            no way to avoid the realpath/readlink call at the end unless you trust the output of comm, which will be truncated to 15 char + NUL, unfortunately.

          • 3 weeks ago
            Anonymous

            only downside is if you're using ssh, this code will print
            sh term_exe
            TERM: sshd

            but you can hardcode a list of "known bogus" terminal emulators and then check $TERM, but $TERM is almost always xterm-* because people don't want to have custom flavored terminfo autism, so you're kind of in a pickle in trickier cases. perhaps sshd is the better output in this case, imo, because it is the one with the controlling tty, I suppose.

          • 3 weeks ago
            Anonymous

            I apologize. It is true it is slow technically and especially in bash. To contextualize, I had a job once to maintain multiple numbers of shell garbage and the only way I was able to consistently remove performance leeching code was to avoid spawning processes. In many cases where posix' defined expansions were woefully inadequate, like they are here, sort of, I would punt to either sed or awk depending on what level of editing I needed, but I kept the use as low to non-existent as possible.

            Sorry.

  15. 3 weeks ago
    Anonymous

    I farted

  16. 3 weeks ago
    Anonymous

    >awk
    >cut
    why?
    learn your parameter expansions.

  17. 3 weeks ago
    Anonymous

    obsoleted by fastfetch

    • 3 weeks ago
      Anonymous

      >fastfetch
      >links to imagemagick
      why?

    • 3 weeks ago
      Anonymous

      to be fair to everyone itt...
      most the procfs files are incredibly neurotic which is why this is a shitshow in pure "sh" or otherwise. Parsing it while preserving the exact formatting of the actual key/values is a nightmare.
      /proc/$PID/stat for instance in the OP's code would be vulnerable to shit like:
      ./x y z
      754390 (x y z) S 754174 754390 754174 34816 754390 4194304 218 0 0 0 0 0 0 0 20 0 1 0 147944668 233963520 816 18446744073709551615 94814769434624 94814770410241 140731961518752 0 0 0 65536 4 65538 1 0 0 17 12 0 0 0 0 0 94814770633264 94814770681808 94814774550528 140731961526601 140731961526617 140731961526617 140731961532400 0

      honestly I fricking hate it. something like
      would probably be the ultimate goal since in C you could just directly syscall and interrogate linux directly.

      >process spawning
      Your code is genuinely interesting, in fact 0 dependencies, but hard to maintain. What would be your approach to get the current terminal using this method?

      very weird, but you can avoid the loop by asking for the session leader first ($6 in awk) and then getting the PPID ($4) of the session leader. the session leader *should* be your shell attached to your terminal unless your terminal and shell are fricking nuts

Your email address will not be published. Required fields are marked *