aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpfetch33
1 files changed, 33 insertions, 0 deletions
diff --git a/pfetch b/pfetch
index 2b42538..c2cad1e 100755
--- a/pfetch
+++ b/pfetch
@@ -250,6 +250,10 @@ get_os() {
trap '' EXIT
;;
+ SunOS)
+ IFS='(' read -r distro _ < /etc/release
+ ;;
+
*)
# Catch all to ensure '$distro' is never blank.
# This also handles the BSDs.
@@ -371,6 +375,12 @@ get_uptime() {
# regular seconds.
s=$(($(system_time) / 1000000))
;;
+
+ SunOS)
+ IFS=' .' read -r _ s _ <<-EOF
+ $(kstat -p unix:0:system_misc:snaptime)
+ EOF
+ ;;
esac
# Convert the uptime from seconds into days, hours and minutes.
@@ -460,6 +470,11 @@ get_pkgs() {
Minix)
printf '%s\n' /usr/pkg/var/db/pkg/*/
;;
+
+ SunOS)
+ has pkginfo && pkginfo -i
+ has pkg && pkg list
+ ;;
esac | wc -l
`
@@ -616,6 +631,24 @@ get_memory() {
mem_used=$(((mem_full - mem_free) / 1024))
mem_full=$(( mem_full / 1024))
;;
+
+ SunOS)
+ hw_pagesize=$(pagesize)
+
+ while read -r key val; do
+ case $key in
+ *total) pages_total=$val ;;
+ *free) pages_free=$val ;;
+ esac
+ done <<-EOF
+ $(kstat -p unix:0:system_pages:pagestotal \
+ unix:0:system_pages:pagesfree)
+ EOF
+
+ mem_full=$((pages_total * hw_pagesize / 1024 / 1024))
+ mem_free=$((pages_free * hw_pagesize / 1024 / 1024))
+ mem_used=$((mem_full - mem_free))
+ ;;
esac
log memory "${mem_used:-?}M / ${mem_full:-?}M" >&6