Support added for FreeMiNT on Atari computers and clones/VMs

This commit is contained in:
Jeffrey Armstrong 2017-12-31 14:50:28 -05:00
parent dc929a6594
commit 21f1faec62
2 changed files with 113 additions and 3 deletions

19
ascii/distro/gem Normal file
View File

@ -0,0 +1,19 @@
${c1} ##
## #########
#### ##
#### #### ##
#### #### ## ##
#### #### ## ##
#### #### ## ## ##
#### ######
###### ## ## ####
#### ################
#### ## ####
## #### ######
## ## #### ####
## ## ## ## ## ####
#### ## ## ##

View File

@ -44,6 +44,7 @@ get_os() {
"MINIX") os="MINIX" ;;
"AIX") os="AIX" ;;
"IRIX64") os="IRIX" ;;
"FreeMiNT") os="FreeMiNT" ;;
*)
printf "%s\n" "Unknown OS detected: '$kernel_name', aborting..." >&2
printf "%s\n" "Open an issue on GitHub to add support for your OS." >&2
@ -230,6 +231,10 @@ get_distro() {
"IRIX")
distro="IRIX ${kernel_version}"
;;
"FreeMiNT")
distro="FreeMiNT"
;;
esac
distro="${distro//Enterprise Server}"
@ -238,7 +243,7 @@ get_distro() {
# Get OS architecture.
case "$os" in
"Solaris" | "AIX" | "Haiku" | "IRIX") machine_arch="$(uname -p)" ;;
"Solaris" | "AIX" | "Haiku" | "IRIX" | "FreeMiNT") machine_arch="$(uname -p)" ;;
*) machine_arch="$(uname -m)" ;;
esac
@ -340,6 +345,10 @@ get_model() {
"AIX")
model="$(/usr/bin/uname -M)"
;;
"FreeMiNT")
model="$(sysctl -n hw.model)"
;;
esac
# Remove dummy OEM info.
@ -426,6 +435,13 @@ get_uptime() {
h="${h#0}" t="${t#0}"
seconds="$((d*86400 + h*3600 + ${t%%:*}*60 + ${t#*:}))"
;;
"FreeMiNT")
boot="$(sysctl -n kern.boottime)"
now="$(date +%s)"
seconds="$((now - boot))"
;;
esac
days="$((seconds / 60 / 60 / 24)) days"
@ -604,6 +620,12 @@ get_packages() {
"IRIX")
packages="$(($(versions -b | wc -l)-3))"
;;
"FreeMiNT")
type -p rpm >/dev/null && \
packages="$((packages+=$(rpm -qa | wc -l)))"
;;
esac
((packages == 0)) && unset packages
@ -653,6 +675,26 @@ get_de() {
esac
;;
"FreeMiNT")
get_wm
if [ -e /proc/thing* ]; then
de="Thing"
elif [ -e /proc/jinnee* ]; then
de="Jinnee"
elif [ -e /proc/tera* ]; then
de="Teradesk"
elif [ -e /proc/mdesk ]; then
de="mDesk"
elif [ -e /proc/neod* ]; then
de="NeoDesk"
elif [ -e /proc/zdesk* ]; then
de="zDesk"
else
de="Atari"
fi
;;
*)
((wm_run != 1)) && get_wm
@ -727,7 +769,7 @@ get_wm() {
-e "westford" \
-e "weston")"
elif [[ "$DISPLAY" && "$os" != "Mac OS X" ]]; then
elif [[ "$DISPLAY" && "$os" != "Mac OS X" && "$os" != "FreeMiNT" ]]; then
id="$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)"
id="${id##* }"
wm="$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)"
@ -763,6 +805,21 @@ get_wm() {
[[ "$wm" == "blackbox" ]] && wm="bbLean (Blackbox)"
wm="${wm:+$wm, }Explorer"
;;
"FreeMiNT")
if [ -e /proc/xaaes* ]; then
wm="XaAES"
elif [ -e /proc/myaes* ]; then
wm="MyAES"
elif [ -e /proc/naes* ]; then
wm="N.AES"
elif [ -e /proc/geneva* ]; then
wm="Geneva"
else
wm="Atari AES"
fi
;;
esac
fi
@ -1104,6 +1161,12 @@ get_cpu() {
# Get CPU cores.
cores="$(sysconf NPROC_ONLN)"
;;
"FreeMiNT")
cpu="$(cat /kern/cpuinfo | awk -F':' '/CPU:/ {printf $2}')"
speed="$(cat /kern/cpuinfo | awk -F':' '/Clocking:/ {printf $2}' | awk -F'.' '{ printf $1 }')"
;;
esac
# Remove un-needed patterns from cpu output.
@ -1188,7 +1251,8 @@ get_cpu_usage() {
"Haiku") cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;;
"iPhone OS") cores="${cpu/*\(}"; cores="${cores/\)*}" ;;
"AIX") cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" ;;
"IRIX") cores="$(sysconf NPROC_ONLN)"
"IRIX") cores="$(sysconf NPROC_ONLN)" ;;
"FreeMiNT") cores="$(sysctl -n hw.ncpu)"
esac
fi
@ -1445,6 +1509,15 @@ get_memory() {
mem_free="$((mem_stat[5] / 1024))"
mem_used="$((mem_total - mem_free))"
;;
"FreeMiNT")
mem_total="$(cat /kern/meminfo | awk -F ':|kB' '/MemTotal:/ {printf $2}')"
mem_free="$(cat /kern/meminfo | awk -F ':|kB' '/MemFree:/ {printf $2}')"
mem_used="$(( mem_total - mem_free ))"
mem_total="$(( mem_total / 1024 ))"
mem_used="$(( mem_used / 1024 ))"
;;
esac
memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}"
@ -1833,6 +1906,11 @@ get_term() {
*) term="${TERM_PROGRAM/\.app}" ;;
esac
# Most likely TosWin2 on FreeMiNT - quick check
if [[ "$TERM" == "tw52" || "$TERM" == "tw100" ]]; then
term="TosWin2"
fi
# Check $PPID for terminal emulator.
while [[ -z "$term" ]]; do
if [[ "$SSH_CONNECTION" ]]; then
@ -2384,6 +2462,12 @@ get_cols() {
unset -v blocks blocks2 cols
# TosWin2 on FreeMiNT is terrible at this,
# so we'll reset colors arbitrarily
if [ "${term}" == "TosWin2" ]; then
printf "%b\n" "\\e[30;47m"
fi
# Tell info() that we printed manually.
prin=1
}
@ -3368,6 +3452,13 @@ get_distro_colors() {
ascii_file="freebsd"
;;
"FreeMiNT"*)
# Don't explicitly set colors since
# TosWin2 doesn't reset well
# set_colors 0
ascii_file="gem"
;;
"Frugalware"*)
set_colors 4 7 1
ascii_file="frugalware"