Add support for QNX/Blackberry 10 (#480)
* Add support for QNX 8.x/Blackberry 10 * Maybe the real uptime was the friends we made along the way * Detect name of the terminal application * Re-run the list distros script * Fix for incorrect memory utilization, and various copilot suggestions. Removed code providing unreliable detection of the terminal application * Apply suggestion from @Copilot Ignore header lines for qpkg package manager Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Remove erroneous dependencies --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1124,6 +1124,10 @@ def detect(name: str) -> AsciiArt | None:
|
|||||||
from .q4os import q4os
|
from .q4os import q4os
|
||||||
return q4os
|
return q4os
|
||||||
|
|
||||||
|
if name.startswith('qnx') or name.startswith('blackberry 10'):
|
||||||
|
from .qnx import qnx
|
||||||
|
return qnx
|
||||||
|
|
||||||
if name.startswith('qubes'):
|
if name.startswith('qubes'):
|
||||||
from .qubes import qubes
|
from .qubes import qubes
|
||||||
return qubes
|
return qubes
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# This file is automatically generated. Please do not modify.
|
||||||
|
|
||||||
|
from . import AsciiArt
|
||||||
|
|
||||||
|
qnx = AsciiArt(match=r'''"QNX"* | "Blackberry 10"*''', color='1', ascii=r"""
|
||||||
|
${c1} .KMMMMMbo .KMMMMMbo
|
||||||
|
aMMMMMMMMb aMMMMMMMMb
|
||||||
|
,KMMMMMMMMp ,KMMMMMMMMp
|
||||||
|
AMMMMMMMP* AMMMMMMMP* ,KMMMMMbo
|
||||||
|
aMMMMMMMMb
|
||||||
|
.KMMMMMbo .KMMMMMbo .KMMMMMMMMp
|
||||||
|
aMMMMMMMMb aMMMMMMMMb AMMMMMMMP*
|
||||||
|
,KMMMMMMMMp .KMMMMMMMMp
|
||||||
|
AMMMMMMMP* AMMMMMMMP* .KMMMMMbo
|
||||||
|
aMMMMMMMMb
|
||||||
|
.KMMMMMbo ,KMMMMMMMMp
|
||||||
|
aMMMMMMMMb AMMMMMMMP*
|
||||||
|
,KMMMMMMMMp
|
||||||
|
AMMMMMMMP*
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -891,7 +891,7 @@ image_source="auto"
|
|||||||
# Tumbleweed, openSUSE Tumbleweed-Slowroll, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Panwah,
|
# Tumbleweed, openSUSE Tumbleweed-Slowroll, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Panwah,
|
||||||
# Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint,
|
# Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint,
|
||||||
# Peropesis, phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX,
|
# Peropesis, phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX,
|
||||||
# Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
# Proxmox, PuffOS, Puppy, PureOS, Q4OS, QNX, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
||||||
# Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, Rhino Linux, rocky, Rosa,
|
# Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, Rhino Linux, rocky, Rosa,
|
||||||
# Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Salix, Sasanqua, Scientific, secureblue, semc,
|
# Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Salix, Sasanqua, Scientific, secureblue, semc,
|
||||||
# Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel, Slackware, SliTaz, SmartOS,
|
# Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel, Slackware, SliTaz, SmartOS,
|
||||||
@@ -1046,6 +1046,7 @@ get_os() {
|
|||||||
Interix) os=Interix ;;
|
Interix) os=Interix ;;
|
||||||
Ironclad) os=Ironclad;;
|
Ironclad) os=Ironclad;;
|
||||||
OSF1) os=digitalUNIX ;;
|
OSF1) os=digitalUNIX ;;
|
||||||
|
QNX) os=QNX ;;
|
||||||
|
|
||||||
Linux|GNU*)
|
Linux|GNU*)
|
||||||
os=Linux
|
os=Linux
|
||||||
@@ -1523,6 +1524,11 @@ get_distro() {
|
|||||||
digitalUNIX)
|
digitalUNIX)
|
||||||
distro="digital UNIX ${kernel_version}"
|
distro="digital UNIX ${kernel_version}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
QNX)
|
||||||
|
distro=$(cat /pps/services/deviceproperties | awk -F'::' '$1 == "device_os" { print $2 }')
|
||||||
|
distro="${distro} ($(cat /base/etc/os.version))"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
distro=${distro//Enterprise Server}
|
distro=${distro//Enterprise Server}
|
||||||
@@ -1531,7 +1537,7 @@ get_distro() {
|
|||||||
|
|
||||||
# Get OS architecture.
|
# Get OS architecture.
|
||||||
case $os in
|
case $os in
|
||||||
Solaris|illumos|AIX|Haiku|IRIX|FreeMiNT|BSD|digitalUNIX)
|
Solaris|illumos|AIX|Haiku|IRIX|FreeMiNT|BSD|digitalUNIX|QNX)
|
||||||
machine_arch=$(uname -p)
|
machine_arch=$(uname -p)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1868,6 +1874,10 @@ get_model() {
|
|||||||
model="${model/Manufacturer}"
|
model="${model/Manufacturer}"
|
||||||
model="${model/Model}"
|
model="${model/Model}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
QNX)
|
||||||
|
model=$(cat /pps/services/deviceproperties | awk -F'::' '/modelname/ {m=$2} /modelnumber/ {n=$2} END {print m" ("n")"}')
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Remove dummy OEM info.
|
# Remove dummy OEM info.
|
||||||
@@ -2022,6 +2032,13 @@ get_uptime() {
|
|||||||
Haiku)
|
Haiku)
|
||||||
s=$(($(system_time) / 1000000))
|
s=$(($(system_time) / 1000000))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
QNX)
|
||||||
|
boot=$(date -d "$(pidin info | sed -n 's/.*BootTime:\([^$]*\)/\1/p')" +%s)
|
||||||
|
now=$(date +%s)
|
||||||
|
|
||||||
|
s=$((now - boot))
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
d="$((s / 60 / 60 / 24)) days"
|
d="$((s / 60 / 60 / 24)) days"
|
||||||
@@ -2402,6 +2419,11 @@ get_packages() {
|
|||||||
manager=swpkg
|
manager=swpkg
|
||||||
pkgs_h=3 tot versions -b && ((packages-=3))
|
pkgs_h=3 tot versions -b && ((packages-=3))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
QNX)
|
||||||
|
has qpkg && pkgs_h=4 tot qpkg list && ((packages-=4))
|
||||||
|
has apk && tot apk info
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Count the total number of packages.
|
# Count the total number of packages.
|
||||||
@@ -3358,6 +3380,17 @@ END
|
|||||||
cores="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe cpu get NumberOfCores)"
|
cores="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe cpu get NumberOfCores)"
|
||||||
cores="${cores/NumberOfCores}"
|
cores="${cores/NumberOfCores}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"QNX")
|
||||||
|
# Get CPU name
|
||||||
|
cpu="$(uname -m | cut -d '_' -f 1)"
|
||||||
|
|
||||||
|
# Get CPU speed
|
||||||
|
speed="$(pidin info | grep -o '[0-9]\+MHz' | head -1 | tr -d 'MHz')"
|
||||||
|
|
||||||
|
# Get CPU cores
|
||||||
|
cores="$(pidin info | grep -c '^Processor[0-9]')"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Remove un-needed patterns from cpu output.
|
# Remove un-needed patterns from cpu output.
|
||||||
@@ -3779,6 +3812,14 @@ get_memory() {
|
|||||||
mem_free="$(( $(showmem -f) * 1000 ))"
|
mem_free="$(( $(showmem -f) * 1000 ))"
|
||||||
mem_used="$(( $(showmem -u) * 1000 ))"
|
mem_used="$(( $(showmem -u) * 1000 ))"
|
||||||
mem_total="$(( $(showmem -t) * 1000 ))"
|
mem_total="$(( $(showmem -t) * 1000 ))"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"QNX")
|
||||||
|
mem_free="$(( $(pidin info | sed -n 's/.*FreeMem:\([0-9][0-9]*\)MB\/.*/\1/p') * 1024 ))"
|
||||||
|
mem_total="$(( $(pidin info | sed -n 's|.*MB/||;s|MB Boot.*||p') * 1024 ))"
|
||||||
|
mem_used="$((mem_total - mem_free))"
|
||||||
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
|
[[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
|
||||||
@@ -4211,6 +4252,10 @@ get_resolution() {
|
|||||||
# Need to block X11 queries
|
# Need to block X11 queries
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"QNX")
|
||||||
|
resolution=$(cat /pps/services/deviceproperties | awk -F'::' '$1 == "screen_res" { print $2 }')
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
if type -p xrandr >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
|
if type -p xrandr >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
|
||||||
case $refresh_rate in
|
case $refresh_rate in
|
||||||
@@ -5245,6 +5290,12 @@ get_battery() {
|
|||||||
battery0now="$(awk -F '[^0-9]*' 'NR==5 {print $4}' /dev/power/acpi_battery/0)"
|
battery0now="$(awk -F '[^0-9]*' 'NR==5 {print $4}' /dev/power/acpi_battery/0)"
|
||||||
battery="$((battery0full * 100 / battery0now))%"
|
battery="$((battery0full * 100 / battery0now))%"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"QNX")
|
||||||
|
battery="$(cat /pps/system/BattMgr/status | sed -n 's/.*"StateOfCharge":\([0-9]*\).*/\1/p')%"
|
||||||
|
state="$(cat /pps/system/BattMgr/status | sed -n 's/.*"ChargerStatus":"\([^"]*\)".*/\1/p' )"
|
||||||
|
[[ "$state" == "CHARGING" ]] && battery_state="charging"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[[ "$battery_state" ]] && battery+=" Charging"
|
[[ "$battery_state" ]] && battery+=" Charging"
|
||||||
@@ -6674,7 +6725,7 @@ ASCII:
|
|||||||
OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus, Parrot, Parsix,
|
OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus, Parrot, Parsix,
|
||||||
PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Peropesis,
|
PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Peropesis,
|
||||||
phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS,
|
phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS,
|
||||||
Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes,
|
Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, QNX, Qubes,
|
||||||
Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
||||||
Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, Rhino
|
Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, Rhino
|
||||||
Linux, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient
|
Linux, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient
|
||||||
@@ -13397,6 +13448,26 @@ ${c1}:##############. ${c2}:======:
|
|||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"QNX"* | "Blackberry 10"*)
|
||||||
|
set_colors 1
|
||||||
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
${c1} .KMMMMMbo .KMMMMMbo
|
||||||
|
aMMMMMMMMb aMMMMMMMMb
|
||||||
|
,KMMMMMMMMp ,KMMMMMMMMp
|
||||||
|
AMMMMMMMP* AMMMMMMMP* ,KMMMMMbo
|
||||||
|
aMMMMMMMMb
|
||||||
|
.KMMMMMbo .KMMMMMbo .KMMMMMMMMp
|
||||||
|
aMMMMMMMMb aMMMMMMMMb AMMMMMMMP*
|
||||||
|
,KMMMMMMMMp .KMMMMMMMMp
|
||||||
|
AMMMMMMMP* AMMMMMMMP* .KMMMMMbo
|
||||||
|
aMMMMMMMMb
|
||||||
|
.KMMMMMbo ,KMMMMMMMMp
|
||||||
|
aMMMMMMMMb AMMMMMMMP*
|
||||||
|
,KMMMMMMMMp
|
||||||
|
AMMMMMMMP*
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
"Qubes"*)
|
"Qubes"*)
|
||||||
set_colors 4 5 7 6
|
set_colors 4 5 7 6
|
||||||
read -rd '' ascii_data <<'EOF'
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
|||||||
Reference in New Issue
Block a user