dotfiles/scripts/fetch-min
tavo-wasd fd69ecbbe6 init
2023-05-08 20:39:39 -06:00

70 lines
1.7 KiB
Bash
Executable file

#!/bin/sh
#
# fet.sh
# a fetch in pure POSIX shell
#
# by 6kg@github
#
# Modified by me
## Distro
# freedesktop.org/software/systemd/man/os-release.html
# a common file that has variables about the distro
for os in /etc/os-release /usr/lib/os-release; do
# some POSIX shells exit when trying to source a file that doesn't exist
[ -f $os ] && . $os && break
done
## Uptime
# the simple math is shamefully stolen from aosync
IFS=. read -r uptime _ < /proc/uptime
d=$((uptime / 60 / 60 / 24))
up=$(printf %02d:%02d $((uptime / 60 / 60 % 24)) $((uptime / 60 % 60)))
[ "$d" -gt 0 ] && up="${d}d $up"
## Packages
# clean environment, then make every file in the dir an argument,
# then save the argument count to $pkgs
set --
# kiss, arch, debian, void, gentoo
for i in '/var/db/kiss/installed/*' '/var/lib/pacman/local/[0-9a-z]*' \
'/var/lib/dpkg/info/*.list' '/var/db/xbps/.*' '/var/db/pkg/*/*'; do
set -- $i
[ $# -gt 1 ] && pkgs="$#" && break
done
[ -d "/var/db/kiss" ] && pkgs="$pkgs (kiss)"
[ -d "/var/lib/pacman" ] && pkgs="$pkgs (pacman)"
[ -d "/var/lib/dpkg" ] && pkgs="$pkgs (dpkg)"
[ -d "/var/db/xbps" ] && pkgs="$pkgs (xbps)"
[ -d "/var/db/pkg" ] && pkgs="$pkgs (emerge)"
## Packages - other package managers
# flatpak
set --
which flatpak > /dev/null 2>&1 && pkgs="$pkgs $(flatpak list | wc -l) (flatpak)"
# nix-env
set --
which nix-env > /dev/null 2>&1 && pkgs="$pkgs $(ls /nix/store | wc -l) (nix-env)"
col() {
printf ' '
for i in 1 2 3 4 5 6; do
printf '\033[9%sm%s' "$i" "${colourblocks:-▅▅}"
done
printf '\033[0m\n'
}
print() {
[ "$2" ] && printf '\033[9%sm%6s\033[0m%b%s\n' \
"${accent:-4}" "$1" "${separator:- ~ }" "$2"
}
print os "$ID"
print sh "$SHELL"
print up "$up"
print kern "$(uname -r)"
print pkgs "$pkgs"
print term "$TERM"
col