1 Commits
iOS ... windows

Author SHA1 Message Date
Dylan Araps
3ca67a75c4 pfetch: windows support 2019-10-01 10:34:48 +03:00

66
pfetch
View File

@@ -210,27 +210,19 @@ get_os() {
# says "populate $line with the third field's contents". # says "populate $line with the third field's contents".
while IFS='<>' read -r _ _ line _; do while IFS='<>' read -r _ _ line _; do
case $line in case $line in
# Match the key and read the next line # Match 'ProductVersion' and read the next line
# directly as it contains the key's value. # directly as it contains the key's value.
# ProductVersion)
# Define a shell variable using the key's value. IFS='<>' read -r _ _ mac_version _
ProductName|ProductVersion)
IFS='<>' read -r _ _ "${line?}" _
break break
;; ;;
esac esac
done < /System/Library/CoreServices/SystemVersion.plist done < /System/Library/CoreServices/SystemVersion.plist
case ${ProductName?} in # Use the ProductVersion to determine which macOS/OS X codename
iPhone*) # the system has. As far as I'm aware there's no "dynamic" way
distro="iOS ${ProductVersion?}" # of grabbing this information.
;; case $mac_version in
*)
# Use the ProductVersion to determine which macOS/OS X
# codename the system has. As far as I'm aware there's
# no "dynamic" way of grabbing this information.
case ${ProductVersion?} in
10.4*) distro='Mac OS X Tiger' ;; 10.4*) distro='Mac OS X Tiger' ;;
10.5*) distro='Mac OS X Leopard' ;; 10.5*) distro='Mac OS X Leopard' ;;
10.6*) distro='Mac OS X Snow Leopard' ;; 10.6*) distro='Mac OS X Snow Leopard' ;;
@@ -246,9 +238,7 @@ get_os() {
*) distro='macOS' ;; *) distro='macOS' ;;
esac esac
distro="$distro ${ProductVersion?}" distro="$distro $mac_version"
;;
esac
;; ;;
Haiku) Haiku)
@@ -271,6 +261,19 @@ get_os() {
IFS='(' read -r distro _ < /etc/release IFS='(' read -r distro _ < /etc/release
;; ;;
CYGWIN*|MSYS*|MINGW*)
# Grab everything after the first instance of
# white-space in the command output of 'wmic'.
#
# The format of 'wmic' is as follows:
# Caption=Microsoft Windows 7 Enterprise
#
# This extracts: ^^^^^^^^^^^^^^^^^^^^
read -r _ distro <<-EOF
$(wmic os get Caption /value)
EOF
;;
*) *)
# Catch all to ensure '$distro' is never blank. # Catch all to ensure '$distro' is never blank.
# This also handles the BSDs. # This also handles the BSDs.
@@ -317,6 +320,21 @@ get_host() {
*BSD*) *BSD*)
host=$(sysctl -n hw.vendor hw.product) host=$(sysctl -n hw.vendor hw.product)
;; ;;
CYGWIN*|MSYS*|MINGW*)
# Grab everything after the first instance of '=' in each
# line of the command output of 'wmic'. Append the output
# of each line to the '$host' variable.
#
# The format of 'wmic' is as follows:
# Manufacturer=VMware, Inc.
# Model=VMware Virtual Platform
while IFS='=' read -r _ val; do
host="${host}${val:+ $val}"
done <<-EOF
$(wmic computersystem get manufacturer,model /value)
EOF
;;
esac esac
# Turn the host string into an argument list so we can iterate # Turn the host string into an argument list so we can iterate
@@ -366,7 +384,7 @@ get_uptime() {
# converting that data into days, hours and minutes using simple # converting that data into days, hours and minutes using simple
# math. # math.
case $os in case $os in
Linux*|Minix*) Linux*|Minix*|CYGWIN*|MSYS*|MINGW*)
IFS=. read -r s _ < /proc/uptime IFS=. read -r s _ < /proc/uptime
;; ;;
@@ -495,6 +513,14 @@ get_pkgs() {
has pkginfo && pkginfo -i has pkginfo && pkginfo -i
has pkg && pkg list has pkg && pkg list
;; ;;
CYGWIN*)
cygcheck -cd
;;
MSYS*)
pacman -Qq
;;
esac | wc -l esac | wc -l
` `
@@ -506,7 +532,7 @@ get_memory() {
# Used memory is calculated using the following "formula": # Used memory is calculated using the following "formula":
# MemUsed = MemTotal + Shmem - MemFree - Buffers - Cached - SReclaimable # MemUsed = MemTotal + Shmem - MemFree - Buffers - Cached - SReclaimable
# Source: https://github.com/KittyKatt/screenFetch/issues/386 # Source: https://github.com/KittyKatt/screenFetch/issues/386
Linux*) Linux*|CYGWIN*|MSYS*|MINGW*)
# Parse the '/proc/meminfo' file splitting on ':' and 'k'. # Parse the '/proc/meminfo' file splitting on ':' and 'k'.
# The format of the file is 'key: 000kB' and an additional # The format of the file is 'key: 000kB' and an additional
# split is used on 'k' to filter out 'kB'. # split is used on 'k' to filter out 'kB'.