Skip to content

Commit 20f077f

Browse files
feat: POSIX.1-2001 compatiblity
1 parent 8fd252b commit 20f077f

2 files changed

Lines changed: 25 additions & 30 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
### Dependencies
1717

1818
- [Any Nerdfonts font](https://www.nerdfonts.com/font-downloads), [Cozette](https://github.com/slavfox/Cozette), or [Phosphor](https://github.com/phosphor-icons/homepage/releases/tag/v2.0.0)
19-
- [POSIX.1-2017 compliant shell](#shells-tested)
19+
- [POSIX.1-2001 or higher compliant shell](#shells-tested)
2020
- [Anything but Windows](#oses-tested)
2121

2222
### To install and run

nerdfetch

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
ostype="$(uname)"
66

7-
version=8.4.2
7+
version=8.5.0
88
font=nerd
99
distrotype=none
1010
osi=""
@@ -237,7 +237,7 @@ pkg_info-netbsd)
237237
;;
238238
esac
239239

240-
packages="${packages#"${packages%%[![:space:]]*}"}"
240+
packages=$(printf '%s' "$packages" | sed 's/^[[:space:]]*//')
241241
manager=${manager%-query}
242242

243243
## UPTIME DETECTION
@@ -249,7 +249,8 @@ elif [ $distrotype = bsd ] || [ $distrotype = netbsd ]; then
249249
else
250250
case $ostype in
251251
*"Linux"*)
252-
IFS=. read -r s _ </proc/uptime
252+
s=$(cat /proc/uptime)
253+
s=${s%%.*}
253254
;;
254255
*)
255256
s=$(sysctl -n kern.boottime)
@@ -283,36 +284,30 @@ fi
283284

284285
case $ostype in
285286
*"Linux"*)
286-
while IFS=':k ' read -r key val _; do
287-
case $key in
288-
MemTotal)
289-
mem_used=$((mem_used + val))
290-
mem_full=$val
291-
;;
292-
Shmem) mem_used=$((mem_used + val)) ;;
293-
MemFree | Buffers | Cached | SReclaimable) mem_used=$((mem_used - val)) ;;
294-
esac
295-
done </proc/meminfo
296-
mem_used=$((mem_used / 1024))
287+
eval $(awk -F': +' '
288+
/^MemTotal:/ {print "mem_full=" int($2)}
289+
/^MemFree:/ {print "mem_free=" int($2)}
290+
/^Buffers:/ {print "mem_buffers=" int($2)}
291+
/^Cached:/ {print "mem_cached=" int($2)}
292+
/^Shmem:/ {print "mem_shmem=" int($2)}
293+
/^SReclaimable:/ {print "mem_sreclaimable=" int($2)}
294+
' /proc/meminfo)
295+
mem_used=$(( (mem_full + mem_shmem - mem_free - mem_buffers - mem_cached - mem_sreclaimable) / 1024 ))
297296
mem_full=$((mem_full / 1024))
298297
;;
299298
*"Darwin"*)
300299
mem_full=$(($(sysctl -n hw.memsize) / 1024 / 1024))
301300
[ $mem_full -gt 0 ] || mem_full=$(expr $(sysctl -n hw.memsize) / 1024 / 1024)
302-
while IFS=:. read -r key val _; do
303-
case $key in
304-
'Anonymous '*|*' wired'* | *' occupied'*)
305-
mem_used=$((mem_used + ${val:-0}))
306-
;;
307-
*' purgeable'*)
308-
mem_used=$((mem_used - ${val:-0}))
309-
;;
310-
esac
311-
done <<-EOF
312-
$(vm_stat)
313-
EOF
314-
315-
mem_used=$((mem_used * ( $(sysctl -n vm.pagesize) / 1024 ) / 1024))
301+
eval $(vm_stat | awk -F': +' '
302+
/Anonymous/ {anon += int($2)}
303+
/wired/ {wired += int($2)}
304+
/occupied/ {occupied += int($2)}
305+
/purgeable/ {purgeable += int($2)}
306+
END {
307+
print "mem_pages=" (anon + wired + occupied - purgeable)
308+
}
309+
')
310+
mem_used=$((mem_pages * $(sysctl -n vm.pagesize) / 1024 / 1024))
316311
;;
317312
*"BSD"*)
318313
mem_full=$(($(sysctl -n hw.physmem) / 1024 / 1024))
@@ -360,7 +355,7 @@ c2="${reset}${yellow}" # third color
360355

361356
cat <<EOF
362357
363-
${c0} ___ ${nc}${USER}${red}@${reset}${hn}${host}${reset}
358+
${c0} ___ ${nc}${USER}${red}@${reset}${hn}${host}${reset}
364359
${c0} (${c1}.. ${c0}\ ${lc}${osi} ${ic}${os}${reset}
365360
${c0} (${c2}<> ${c0}| ${lc}${ki} ${ic}${kernel}${reset}
366361
${c0} /${c1}/ \\ ${c0}\\ ${lc}${ri} ${ic}${RAM}${memstat} ${mempercent}

0 commit comments

Comments
 (0)