70 lines
1.7 KiB
Bash
Executable file
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
|