mirror of
https://github.com/dylanaraps/pfetch.git
synced 2026-01-02 16:02:12 +01:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
675814f33e | ||
|
|
2ef3584f5b | ||
|
|
aa22d4e32d | ||
|
|
c0d0d65aa0 | ||
|
|
a8a3e1f2fe | ||
|
|
8633671f99 | ||
|
|
577e8483a7 | ||
|
|
6558b34254 | ||
|
|
542b6af284 | ||
|
|
177d77c335 | ||
|
|
e2068c61d5 | ||
|
|
39f767e45b | ||
|
|
b2aac93208 | ||
|
|
271458be6e | ||
|
|
9fc34b0000 | ||
|
|
3bb449700c | ||
|
|
f82f5e9d2d | ||
|
|
be111026b1 | ||
|
|
4cfef9c1e4 | ||
|
|
c1cecae824 | ||
|
|
f5b527d852 | ||
|
|
2bf774e70f | ||
|
|
25324687b5 | ||
|
|
f15a8d25dd | ||
|
|
361a46df60 | ||
|
|
9f55ffb5aa | ||
|
|
364223cb48 | ||
|
|
7094147013 | ||
|
|
8d1b579b39 | ||
|
|
32743859da | ||
|
|
c36607909b | ||
|
|
a7b0439aeb | ||
|
|
0dcc4d6a82 | ||
|
|
67204770ac | ||
|
|
4524a3cc0a | ||
|
|
4f7617208d | ||
|
|
8dd5981fbc | ||
|
|
24498852fd | ||
|
|
a1bbe9749c | ||
|
|
c9b4d26084 | ||
|
|
1045166df2 | ||
|
|
5893e26575 | ||
|
|
14261f0fa1 | ||
|
|
40d78a9b26 | ||
|
|
729f553d87 |
@@ -37,6 +37,7 @@ picture"!
|
|||||||
- **MacOS**
|
- **MacOS**
|
||||||
- **Minix**
|
- **Minix**
|
||||||
- **Solaris**
|
- **Solaris**
|
||||||
|
- **IRIX**
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
@@ -57,6 +58,11 @@ PF_INFO="ascii"
|
|||||||
# Example: Only Information.
|
# Example: Only Information.
|
||||||
PF_INFO="title os host kernel uptime pkgs memory"
|
PF_INFO="title os host kernel uptime pkgs memory"
|
||||||
|
|
||||||
|
# A file to source before running pfetch.
|
||||||
|
# Default: unset
|
||||||
|
# Valid: A shell script
|
||||||
|
PF_SOURCE=""
|
||||||
|
|
||||||
# Separator between info name and info data.
|
# Separator between info name and info data.
|
||||||
# Default: unset
|
# Default: unset
|
||||||
# Valid: string
|
# Valid: string
|
||||||
|
|||||||
529
pfetch
529
pfetch
@@ -83,7 +83,7 @@ log() {
|
|||||||
printf '[3%s;1m%s[m' "${PF_COL1-4}" "$name"
|
printf '[3%s;1m%s[m' "${PF_COL1-4}" "$name"
|
||||||
|
|
||||||
# Print the info name and info data separator.
|
# Print the info name and info data separator.
|
||||||
printf '%s' "$PF_SEP"
|
printf %s "$PF_SEP"
|
||||||
|
|
||||||
# Move the cursor backward the length of the *current* info name and
|
# Move the cursor backward the length of the *current* info name and
|
||||||
# then move it forwards the length of the *longest* info name. This
|
# then move it forwards the length of the *longest* info name. This
|
||||||
@@ -131,7 +131,7 @@ get_os() {
|
|||||||
Linux*)
|
Linux*)
|
||||||
# Some Linux distributions (which are based on others)
|
# Some Linux distributions (which are based on others)
|
||||||
# fail to identify as they **do not** change the upstream
|
# fail to identify as they **do not** change the upstream
|
||||||
# distributions identification packages or files.
|
# distribution's identification packages or files.
|
||||||
#
|
#
|
||||||
# It is senseless to add a special case in the code for
|
# It is senseless to add a special case in the code for
|
||||||
# each and every distribution (which _is_ technically no
|
# each and every distribution (which _is_ technically no
|
||||||
@@ -182,6 +182,13 @@ get_os() {
|
|||||||
command -v crux && distro=$(crux)
|
command -v crux && distro=$(crux)
|
||||||
command -v guix && distro='Guix System'
|
command -v guix && distro='Guix System'
|
||||||
|
|
||||||
|
# Check to see if we're running Bedrock Linux which is
|
||||||
|
# very unique. This simply checks to see if the user's
|
||||||
|
# PATH contais a Bedrock specific value.
|
||||||
|
case $PATH in
|
||||||
|
*/bedrock/cross/*) distro='Bedrock Linux'
|
||||||
|
esac
|
||||||
|
|
||||||
# Check to see if Linux is running in Windows 10 under
|
# Check to see if Linux is running in Windows 10 under
|
||||||
# WSL1 (Windows subsystem for Linux [version 1]) and
|
# WSL1 (Windows subsystem for Linux [version 1]) and
|
||||||
# append a string accordingly.
|
# append a string accordingly.
|
||||||
@@ -279,13 +286,13 @@ get_kernel() {
|
|||||||
case $os in
|
case $os in
|
||||||
# Don't print kernel output on some systems as the
|
# Don't print kernel output on some systems as the
|
||||||
# OS name includes it.
|
# OS name includes it.
|
||||||
*BSD*|Haiku|Minix) ;;
|
*BSD*|Haiku|Minix)
|
||||||
|
return
|
||||||
*)
|
|
||||||
# '$kernel' is the cached output of 'uname -r'.
|
|
||||||
log kernel "$kernel" >&6
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# '$kernel' is the cached output of 'uname -r'.
|
||||||
|
log kernel "$kernel" >&6
|
||||||
}
|
}
|
||||||
|
|
||||||
get_host() {
|
get_host() {
|
||||||
@@ -310,7 +317,7 @@ get_host() {
|
|||||||
machdep.dmi.system-product)
|
machdep.dmi.system-product)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*BSD*)
|
*BSD*|Minix)
|
||||||
host=$(sysctl -n hw.vendor hw.product)
|
host=$(sysctl -n hw.vendor hw.product)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -343,7 +350,7 @@ get_host() {
|
|||||||
# found in the "blacklist" below. Only non-matches are appended
|
# found in the "blacklist" below. Only non-matches are appended
|
||||||
# to the final host string.
|
# to the final host string.
|
||||||
case $word in
|
case $word in
|
||||||
To | [Bb]e | [Ff]illed | by | O.E.M. | OEM |\
|
To | [Bb]e | [Ff]illed | [Bb]y | O.E.M. | OEM |\
|
||||||
Not | Applicable | Specified | System | Product | Name |\
|
Not | Applicable | Specified | System | Product | Name |\
|
||||||
Version | Undefined | Default | string | INVALID | <20> | os )
|
Version | Undefined | Default | string | INVALID | <20> | os )
|
||||||
continue
|
continue
|
||||||
@@ -397,6 +404,25 @@ get_uptime() {
|
|||||||
$(kstat -p unix:0:system_misc:snaptime)
|
$(kstat -p unix:0:system_misc:snaptime)
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
IRIX)
|
||||||
|
# Grab the uptime in a pretty format. Usually,
|
||||||
|
# 00:00:00 from the 'ps' command.
|
||||||
|
t=$(LC_ALL=POSIX ps -o etime= -p 1)
|
||||||
|
|
||||||
|
# Split the pretty output into days or hours
|
||||||
|
# based on the uptime.
|
||||||
|
case $t in
|
||||||
|
*-*) d=${t%%-*} t=${t#*-} ;;
|
||||||
|
*:*:*) h=${t%%:*} t=${t#*:} ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
h=${h#0} t=${t#0}
|
||||||
|
|
||||||
|
# Convert the split pretty fields back into
|
||||||
|
# seconds so we may re-convert them to our format.
|
||||||
|
s=$((${d:-0}*86400 + ${h:-0}*3600 + ${t%%:*}*60 + ${t#*:}))
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Convert the uptime from seconds into days, hours and minutes.
|
# Convert the uptime from seconds into days, hours and minutes.
|
||||||
@@ -445,12 +471,14 @@ get_pkgs() {
|
|||||||
has xbps-query && xbps-query -l
|
has xbps-query && xbps-query -l
|
||||||
has apk && apk info
|
has apk && apk info
|
||||||
has guix && guix package --list-installed
|
has guix && guix package --list-installed
|
||||||
|
has opkg && opkg list-installed
|
||||||
|
|
||||||
# Directories containing packages.
|
# Directories containing packages.
|
||||||
has kiss && printf '%s\n' /var/db/kiss/installed/*/
|
has kiss && printf '%s\n' /var/db/kiss/installed/*/
|
||||||
has brew && printf '%s\n' "$(brew --cellar)/"*
|
has brew && printf '%s\n' "$(brew --cellar)/"*
|
||||||
has emerge && printf '%s\n' /var/db/pkg/*/*/
|
has emerge && printf '%s\n' /var/db/pkg/*/*/
|
||||||
has pkgtool && printf '%s\n' /var/log/packages/*
|
has pkgtool && printf '%s\n' /var/log/packages/*
|
||||||
|
has eopkg && printf '%s\n' /var/lib/eopkg/package/*
|
||||||
|
|
||||||
# 'nix' requires two commands.
|
# 'nix' requires two commands.
|
||||||
has nix-store && {
|
has nix-store && {
|
||||||
@@ -506,9 +534,19 @@ get_pkgs() {
|
|||||||
has pkginfo && pkginfo -i
|
has pkginfo && pkginfo -i
|
||||||
has pkg && pkg list
|
has pkg && pkg list
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
IRIX)
|
||||||
|
versions -b
|
||||||
|
;;
|
||||||
esac | wc -l
|
esac | wc -l
|
||||||
`
|
`
|
||||||
|
|
||||||
|
case $os in
|
||||||
|
# IRIX's package manager adds 3 lines of extra
|
||||||
|
# output which we must account for here.
|
||||||
|
IRIX) packages=$((packages - 3)) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
[ "$packages" -gt 1 ] && log pkgs "$packages" >&6
|
[ "$packages" -gt 1 ] && log pkgs "$packages" >&6
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,6 +727,27 @@ get_memory() {
|
|||||||
mem_free=$((pages_free * hw_pagesize / 1024 / 1024))
|
mem_free=$((pages_free * hw_pagesize / 1024 / 1024))
|
||||||
mem_used=$((mem_full - mem_free))
|
mem_used=$((mem_full - mem_free))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
IRIX)
|
||||||
|
# Read the memory information from the 'top' command. Parse
|
||||||
|
# and split each line until we reach the line starting with
|
||||||
|
# "Memory".
|
||||||
|
#
|
||||||
|
# Example output: Memory: 160M max, 147M avail, .....
|
||||||
|
while IFS=' :' read -r label mem_full _ mem_free _; do
|
||||||
|
case $label in
|
||||||
|
Memory)
|
||||||
|
mem_full=${mem_full%M}
|
||||||
|
mem_free=${mem_free%M}
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done <<-EOF
|
||||||
|
$(top -n)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
mem_used=$((mem_full - mem_free))
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
log memory "${mem_used:-?}M / ${mem_full:-?}M" >&6
|
log memory "${mem_used:-?}M / ${mem_full:-?}M" >&6
|
||||||
@@ -709,7 +768,7 @@ get_wm() {
|
|||||||
# atom..
|
# atom..
|
||||||
#
|
#
|
||||||
# List of window managers which fail to set the name atom:
|
# List of window managers which fail to set the name atom:
|
||||||
# catwm, fvwm, dwm, 2bwm and monster.
|
# catwm, fvwm, dwm, 2bwm, monster, wmaker and sowm [mine! ;)].
|
||||||
#
|
#
|
||||||
# The final downside to this approach is that it does _not_
|
# The final downside to this approach is that it does _not_
|
||||||
# support Wayland environments. The only solution which supports
|
# support Wayland environments. The only solution which supports
|
||||||
@@ -781,7 +840,40 @@ get_wm() {
|
|||||||
wm=${wm%%\"*}
|
wm=${wm%%\"*}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*) wm= ;;
|
*)
|
||||||
|
# Fallback to checking the process list
|
||||||
|
# for the select few window managers which
|
||||||
|
# don't set '_NET_WM_NAME'.
|
||||||
|
#
|
||||||
|
# TODO: This is currently limited to 'grep'
|
||||||
|
# implementations providing the '-o'
|
||||||
|
# flag. This needs to be replaced with
|
||||||
|
# a command which searches for a list
|
||||||
|
# of strings and returns _only_ the
|
||||||
|
# first match's contents (also ensuring
|
||||||
|
# the search itself isn't matched).
|
||||||
|
#
|
||||||
|
# A generic parser isn't possible as
|
||||||
|
# the output of 'ps' is _not_ the same
|
||||||
|
# between implementations and across
|
||||||
|
# operating systems.
|
||||||
|
#
|
||||||
|
# The simple search method above works
|
||||||
|
# regardless of 'ps' implementation.
|
||||||
|
#
|
||||||
|
# Disable the shellcheck warning about using
|
||||||
|
# 'pgrep' instead of 'ps | grep' as 'pgrep'
|
||||||
|
# is not always available.
|
||||||
|
# shellcheck disable=2009
|
||||||
|
wm=$(ps x | grep -o \
|
||||||
|
-e '[c]atwm' \
|
||||||
|
-e '[f]vwm' \
|
||||||
|
-e '[d]wm' \
|
||||||
|
-e '[2]bwm' \
|
||||||
|
-e '[m]onsterwm' \
|
||||||
|
-e '[w]maker' \
|
||||||
|
-e '[s]owm')
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
@@ -819,12 +911,12 @@ get_palette() {
|
|||||||
#
|
#
|
||||||
# This allows us to save hardcoding a second set of sequences
|
# This allows us to save hardcoding a second set of sequences
|
||||||
# for background colors.
|
# for background colors.
|
||||||
palette=" [7m$c1 $c2 $c3 $c4 $c5 $c6 $c7 "
|
palette="[7m$c1 $c1 $c2 $c2 $c3 $c3 $c4 $c4 $c5 $c5 $c6 $c6 [m"
|
||||||
|
|
||||||
# Print the palette with a newline before and after.
|
# Print the palette with a new-line before and afterwards.
|
||||||
# The '\033[%sC' moves the text to the right, the
|
printf '\n' >&6
|
||||||
# length of the ascii art.
|
log "$palette
|
||||||
printf '\n[%sC%s[m\n' "${ascii_width-1}" "$palette" >&6
|
" " " >&6
|
||||||
}
|
}
|
||||||
|
|
||||||
get_ascii() {
|
get_ascii() {
|
||||||
@@ -871,54 +963,63 @@ get_ascii() {
|
|||||||
/${c7}/ ${c4}\\ \\
|
/${c7}/ ${c4}\\ \\
|
||||||
/${c7}// ${c4}\\ \\
|
/${c7}// ${c4}\\ \\
|
||||||
${c7}// ${c4}\\ \\
|
${c7}// ${c4}\\ \\
|
||||||
\\
|
${c4}\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Aa]ndroid*)
|
[Aa]ndroid*)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c2} ;, ,;
|
${c2} ;, ,;
|
||||||
';,.-----.,;'
|
${c2} ';,.-----.,;'
|
||||||
,' ',
|
${c2} ,' ',
|
||||||
/ O O \\
|
${c2} / O O \\
|
||||||
| |
|
${c2}| |
|
||||||
'-----------------'
|
${c2}'-----------------'
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Aa]rch*)
|
[Aa]rch*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c6} /\\
|
${c6} /\\
|
||||||
/ \\
|
${c6} / \\
|
||||||
/\\ \\
|
${c6} /\\ \\
|
||||||
${c4} / \\
|
${c4} / \\
|
||||||
/ ,, \\
|
${c4} / ,, \\
|
||||||
/ | | -\\
|
${c4} / | | -\\
|
||||||
/_-'' ''-_\\
|
${c4} /_-'' ''-_\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Aa]rco*)
|
[Aa]rco*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c4} /\\
|
${c4} /\\
|
||||||
/ \\
|
${c4} / \\
|
||||||
/ /\\ \\
|
${c4} / /\\ \\
|
||||||
/ / \\ \\
|
${c4} / / \\ \\
|
||||||
/ / \\ \\
|
${c4} / / \\ \\
|
||||||
/ / _____\\ \\
|
${c4} / / _____\\ \\
|
||||||
/_/ \`----.\\_\\
|
${c4}/_/ \`----.\\_\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Aa]rtix*)
|
[Aa]rtix*)
|
||||||
read_ascii 6 <<-EOF
|
read_ascii 6 <<-EOF
|
||||||
${c4} /\\
|
${c4} /\\
|
||||||
/ \\
|
${c4} / \\
|
||||||
/\`'.,\\
|
${c4} /\`'.,\\
|
||||||
/ ',
|
${c4} / ',
|
||||||
/ ,\`\\
|
${c4} / ,\`\\
|
||||||
/ ,.'\`. \\
|
${c4} / ,.'\`. \\
|
||||||
/.,'\` \`'.\\
|
${c4}/.,'\` \`'.\\
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
[Bb]edrock*)
|
||||||
|
read_ascii 4 <<-EOF
|
||||||
|
${c7}__
|
||||||
|
${c7}\\ \\___
|
||||||
|
${c7} \\ _ \\
|
||||||
|
${c7} \\___/
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -937,11 +1038,11 @@ get_ascii() {
|
|||||||
[Dd]ebian*)
|
[Dd]ebian*)
|
||||||
read_ascii 1 <<-EOF
|
read_ascii 1 <<-EOF
|
||||||
${c1} _____
|
${c1} _____
|
||||||
/ __ \\
|
${c1} / __ \\
|
||||||
| / |
|
${c1}| / |
|
||||||
| \\___-
|
${c1}| \\___-
|
||||||
-_
|
${c1}-_
|
||||||
--_
|
${c1} --_
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -952,19 +1053,30 @@ get_ascii() {
|
|||||||
>--${c1}|${c7}--<
|
>--${c1}|${c7}--<
|
||||||
(_-'${c1}|${c7}'-_)
|
(_-'${c1}|${c7}'-_)
|
||||||
${c1}|
|
${c1}|
|
||||||
|
|
${c1}|
|
||||||
|
|
${c1}|
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Ee]lementary*)
|
[Ee]lementary*)
|
||||||
read_ascii <<-EOF
|
read_ascii <<-EOF
|
||||||
${c7} _______
|
${c7} _______
|
||||||
/ ____ \\
|
${c7} / ____ \\
|
||||||
/ | / /\\
|
${c7}/ | / /\\
|
||||||
|__\\ / / |
|
${c7}|__\\ / / |
|
||||||
\\ /__/ /
|
${c7}\\ /__/ /
|
||||||
\\_______/
|
${c7}\\_______/
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
[Ee]ndeavour*)
|
||||||
|
read_ascii 4 <<-EOF
|
||||||
|
${c1}/${c4}\\
|
||||||
|
${c1}/${c4}/ \\${c6}\\
|
||||||
|
${c1}/${c4}/ \\ ${c6}\\
|
||||||
|
${c1}/ ${c4}/ _) ${c6})
|
||||||
|
${c1}/_${c4}/___-- ${c6}__-
|
||||||
|
${c6}/____--
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -984,71 +1096,83 @@ get_ascii() {
|
|||||||
[Ff]ree[Bb][Ss][Dd]*)
|
[Ff]ree[Bb][Ss][Dd]*)
|
||||||
read_ascii 1 <<-EOF
|
read_ascii 1 <<-EOF
|
||||||
${c1}/\\,-'''''-,/\\
|
${c1}/\\,-'''''-,/\\
|
||||||
\\_) (_/
|
${c1}\\_) (_/
|
||||||
| |
|
${c1}| |
|
||||||
| |
|
${c1}| |
|
||||||
; ;
|
${c1}; ;
|
||||||
'-_____-'
|
${c1}'-_____-'
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Gg]entoo*)
|
[Gg]entoo*)
|
||||||
read_ascii 5 <<-EOF
|
read_ascii 5 <<-EOF
|
||||||
${c5} _-----_
|
${c5} _-----_
|
||||||
( \\
|
${c5}( \\
|
||||||
\\ 0 \\
|
${c5}\\ 0 \\
|
||||||
${c7} \\ )
|
${c7} \\ )
|
||||||
/ _/
|
${c7} / _/
|
||||||
( _-
|
${c7}( _-
|
||||||
\\____-
|
${c7}\\____-
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Gg]uix[Ss][Dd]*|[Gg]uix*)
|
[Gg]uix[Ss][Dd]*|[Gg]uix*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3}|.__ __.|
|
${c3}|.__ __.|
|
||||||
|__ \\ / __|
|
${c3}|__ \\ / __|
|
||||||
\\ \\ / /
|
${c3}\\ \\ / /
|
||||||
\\ \\ / /
|
${c3}\\ \\ / /
|
||||||
\\ \\ / /
|
${c3}\\ \\ / /
|
||||||
\\ \\/ /
|
${c3}\\ \\/ /
|
||||||
\\__/
|
${c3}\\__/
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Hh]aiku*)
|
[Hh]aiku*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3} ,^,
|
${c3} ,^,
|
||||||
/ \\
|
${c3} / \\
|
||||||
*--_ ; ; _--*
|
${c3}*--_ ; ; _--*
|
||||||
\\ '" "' /
|
${c3}\\ '" "' /
|
||||||
'. .'
|
${c3}'. .'
|
||||||
.-'" "'-.
|
${c3}.-'" "'-.
|
||||||
'-.__. .__.-'
|
${c3}'-.__. .__.-'
|
||||||
|_|
|
${c3}|_|
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Hh]yperbola*)
|
[Hh]yperbola*)
|
||||||
read_ascii <<-EOF
|
read_ascii <<-EOF
|
||||||
${c7} |\`__.\`/
|
${c7} |\`__.\`/
|
||||||
\____/
|
${c7} \____/
|
||||||
.--.
|
${c7} .--.
|
||||||
/ \\
|
${c7} / \\
|
||||||
/ ___ \\
|
${c7} / ___ \\
|
||||||
/ .\` \`.\\
|
${c7}/ .\` \`.\\
|
||||||
/.\` \`.\\
|
${c7}/.\` \`.\\
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
[Ii][Rr][Ii][Xx]*)
|
||||||
|
read_ascii 1 <<-EOF
|
||||||
|
${c1} __
|
||||||
|
${c1} \\ \\ __
|
||||||
|
${c1} \\ \\ / /
|
||||||
|
${c1} \\ v /
|
||||||
|
${c1} / . \\
|
||||||
|
${c1} /_/ \\ \\
|
||||||
|
${c1} \\_\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Ll]inux*[Ll]ite*|[Ll]ite*)
|
[Ll]inux*[Ll]ite*|[Ll]ite*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3} /\\
|
${c3} /\\
|
||||||
/ \\
|
${c3} / \\
|
||||||
/ ${c7}/ ${c3}/
|
${c3} / ${c7}/ ${c3}/
|
||||||
> ${c7}/ ${c3}/
|
${c3}> ${c7}/ ${c3}/
|
||||||
\\ ${c7}\\ ${c3}\\
|
${c3}\\ ${c7}\\ ${c3}\\
|
||||||
\\_${c7}\\${c3}_\\
|
${c3}\\_${c7}\\${c3}_\\
|
||||||
${c7} \\
|
${c7} \\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
@@ -1056,12 +1180,12 @@ get_ascii() {
|
|||||||
[Ll]inux*[Mm]int*|[Mm]int)
|
[Ll]inux*[Mm]int*|[Mm]int)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c2} ___________
|
${c2} ___________
|
||||||
|_ \\
|
${c2}|_ \\
|
||||||
| ${c7}| _____ ${c2}|
|
${c2}| ${c7}| _____ ${c2}|
|
||||||
| ${c7}| | | | ${c2}|
|
${c2}| ${c7}| | | | ${c2}|
|
||||||
| ${c7}| | | | ${c2}|
|
${c2}| ${c7}| | | | ${c2}|
|
||||||
| ${c7}\\__${c7}___/ ${c2}|
|
${c2}| ${c7}\\__${c7}___/ ${c2}|
|
||||||
\\_________/
|
${c2}\\_________/
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1069,10 +1193,10 @@ get_ascii() {
|
|||||||
[Ll]inux*)
|
[Ll]inux*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c4} ___
|
${c4} ___
|
||||||
(${c7}.· ${c4}|
|
${c4}(${c7}.. ${c4}|
|
||||||
(${c5}<> ${c4}|
|
${c4}(${c5}<> ${c4}|
|
||||||
/ ${c7}__ ${c4}\\
|
${c4}/ ${c7}__ ${c4}\\
|
||||||
( ${c7}/ \\ ${c4}/|
|
${c4}( ${c7}/ \\ ${c4}/|
|
||||||
${c5}_${c4}/\\ ${c7}__)${c4}/${c5}_${c4})
|
${c5}_${c4}/\\ ${c7}__)${c4}/${c5}_${c4})
|
||||||
${c5}\/${c4}-____${c5}\/
|
${c5}\/${c4}-____${c5}\/
|
||||||
EOF
|
EOF
|
||||||
@@ -1081,9 +1205,9 @@ get_ascii() {
|
|||||||
[Mm]ac[Oo][Ss]*|[Dd]arwin*)
|
[Mm]ac[Oo][Ss]*|[Dd]arwin*)
|
||||||
read_ascii 1 <<-EOF
|
read_ascii 1 <<-EOF
|
||||||
${c1} .:'
|
${c1} .:'
|
||||||
_ :'_
|
${c1} _ :'_
|
||||||
${c2} .'\`_\`-'_\`\`.
|
${c2} .'\`_\`-'_\`\`.
|
||||||
:________.-'
|
${c2}:________.-'
|
||||||
${c3}:_______:
|
${c3}:_______:
|
||||||
${c4} :_______\`-;
|
${c4} :_______\`-;
|
||||||
${c5} \`._.-._.'
|
${c5} \`._.-._.'
|
||||||
@@ -1093,49 +1217,49 @@ get_ascii() {
|
|||||||
[Mm]ageia*)
|
[Mm]ageia*)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c6} *
|
${c6} *
|
||||||
*
|
${c6} *
|
||||||
**
|
${c6} **
|
||||||
${c7} /\\__/\\
|
${c7} /\\__/\\
|
||||||
/ \\
|
${c7}/ \\
|
||||||
\\ /
|
${c7}\\ /
|
||||||
\\____/
|
${c7} \\____/
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Mm]anjaro*)
|
[Mm]anjaro*)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c2}||||||||| ||||
|
${c2}||||||||| ||||
|
||||||
||||||||| ||||
|
${c2}||||||||| ||||
|
||||||
|||| ||||
|
${c2}|||| ||||
|
||||||
|||| |||| ||||
|
${c2}|||| |||| ||||
|
||||||
|||| |||| ||||
|
${c2}|||| |||| ||||
|
||||||
|||| |||| ||||
|
${c2}|||| |||| ||||
|
||||||
|||| |||| ||||
|
${c2}|||| |||| ||||
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Mm]inix*)
|
[Mm]inix*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c4} ,, ,,
|
${c4} ,, ,,
|
||||||
;${c7},${c4} ', ,' ${c7},${c4};
|
${c4};${c7},${c4} ', ,' ${c7},${c4};
|
||||||
; ${c7}',${c4} ',,' ${c7},'${c4} ;
|
${c4}; ${c7}',${c4} ',,' ${c7},'${c4} ;
|
||||||
; ${c7}',${c4} ${c7},'${c4} ;
|
${c4}; ${c7}',${c4} ${c7},'${c4} ;
|
||||||
; ${c7};, '' ,;${c4} ;
|
${c4}; ${c7};, '' ,;${c4} ;
|
||||||
; ${c7};${c4};${c7}',,'${c4};${c7};${c4} ;
|
${c4}; ${c7};${c4};${c7}',,'${c4};${c7};${c4} ;
|
||||||
', ${c7};${c4};; ;;${c7};${c4} ,'
|
${c4}', ${c7};${c4};; ;;${c7};${c4} ,'
|
||||||
'${c7};${c4}' '${c7};${c4}'
|
${c4} '${c7};${c4}' '${c7};${c4}'
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Mm][Xx]*)
|
[Mm][Xx]*)
|
||||||
read_ascii <<-EOF
|
read_ascii <<-EOF
|
||||||
${c7} \\\\ /
|
${c7} \\\\ /
|
||||||
\\\\/
|
${c7} \\\\/
|
||||||
\\\\
|
${c7} \\\\
|
||||||
/\\/ \\\\
|
${c7} /\\/ \\\\
|
||||||
/ \\ /\\
|
${c7} / \\ /\\
|
||||||
/ \\/ \\
|
${c7} / \\/ \\
|
||||||
/__________\\
|
${c7}/__________\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1146,124 +1270,137 @@ get_ascii() {
|
|||||||
${c7} \\\\ ${c3}\`.____
|
${c7} \\\\ ${c3}\`.____
|
||||||
${c7} \\\\${c3}-______,----\`-
|
${c7} \\\\${c3}-______,----\`-
|
||||||
${c7} \\\\
|
${c7} \\\\
|
||||||
\\\\
|
${c7} \\\\
|
||||||
\\\\
|
${c7} \\\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Nn]ix[Oo][Ss]*)
|
[Nn]ix[Oo][Ss]*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c4} \\\\ \\\\ //
|
${c4} \\\\ \\\\ //
|
||||||
==\\\\__\\\\/ //
|
${c4} ==\\\\__\\\\/ //
|
||||||
// \\\\//
|
${c4} // \\\\//
|
||||||
==// //==
|
${c4}==// //==
|
||||||
//\\\\___//
|
${c4} //\\\\___//
|
||||||
// /\\\\ \\\\==
|
${c4}// /\\\\ \\\\==
|
||||||
// \\\\ \\\\
|
${c4} // \\\\ \\\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Oo]pen[Bb][Ss][Dd]*)
|
[Oo]pen[Bb][Ss][Dd]*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3} _____
|
${c3} _____
|
||||||
\\- -/
|
${c3} \\- -/
|
||||||
\\_/ \\
|
${c3} \\_/ \\
|
||||||
| ${c7}O O${c3} |
|
${c3} | ${c7}O O${c3} |
|
||||||
|_ < ) 3 )
|
${c3} |_ < ) 3 )
|
||||||
/ \\ /
|
${c3} / \\ /
|
||||||
/-_____-\\
|
${c3} /-_____-\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Oo]penSUSE*|[Oo]pen*SUSE*|SUSE*|suse*)
|
[Oo]pen[Ss][Uu][Ss][Ee]*|[Oo]pen*SUSE*|SUSE*|suse*)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c2} _______
|
${c2} _______
|
||||||
__| __ \\
|
${c2}__| __ \\
|
||||||
/ .\\ \\
|
${c2} / .\\ \\
|
||||||
\\__/ |
|
${c2} \\__/ |
|
||||||
_______|
|
${c2} _______|
|
||||||
\\_______
|
${c2} \\_______
|
||||||
__________/
|
${c2}__________/
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
[Oo]pen[Ww]rt*)
|
||||||
|
read_ascii 1 <<-EOF
|
||||||
|
${c1} _______
|
||||||
|
${c1}| |.-----.-----.-----.
|
||||||
|
${c1}| - || _ | -__| |
|
||||||
|
${c1}|_______|| __|_____|__|__|
|
||||||
|
${c1} ________|__| __
|
||||||
|
${c1}| | | |.----.| |_
|
||||||
|
${c1}| | | || _|| _|
|
||||||
|
${c1}|________||__| |____|
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Pp]arabola*)
|
[Pp]arabola*)
|
||||||
read_ascii 5 <<-EOF
|
read_ascii 5 <<-EOF
|
||||||
${c5} __ __ __ _
|
${c5} __ __ __ _
|
||||||
.\`_//_//_/ / \`.
|
${c5}.\`_//_//_/ / \`.
|
||||||
/ .\`
|
${c5} / .\`
|
||||||
/ .\`
|
${c5} / .\`
|
||||||
/.\`
|
${c5} /.\`
|
||||||
/\`
|
${c5} /\`
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Pp]op!_[Oo][Ss]*)
|
[Pp]op!_[Oo][Ss]*)
|
||||||
read_ascii 6 <<-EOF
|
read_ascii 6 <<-EOF
|
||||||
${c6}______
|
${c6}______
|
||||||
\\ _ \\ __
|
${c6}\\ _ \\ __
|
||||||
\\ \\ \\ \\ / /
|
${c6}\\ \\ \\ \\ / /
|
||||||
\\ \\_\\ \\ / /
|
${c6}\\ \\_\\ \\ / /
|
||||||
\\ ___\\ /_/
|
${c6}\\ ___\\ /_/
|
||||||
\\ \\ _
|
${c6} \\ \\ _
|
||||||
__\\_\\__(_)_
|
${c6} __\\_\\__(_)_
|
||||||
(___________)
|
${c6}(___________)
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Pp]ure[Oo][Ss]*)
|
[Pp]ure[Oo][Ss]*)
|
||||||
read_ascii <<-EOF
|
read_ascii <<-EOF
|
||||||
${c7} _____________
|
${c7} _____________
|
||||||
| _________ |
|
${c7}| _________ |
|
||||||
| | | |
|
${c7}| | | |
|
||||||
| | | |
|
${c7}| | | |
|
||||||
| |_________| |
|
${c7}| |_________| |
|
||||||
|_____________|
|
${c7}|_____________|
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Ss]lackware*)
|
[Ss]lackware*)
|
||||||
read_ascii 4 <<-EOF
|
read_ascii 4 <<-EOF
|
||||||
${c4} ________
|
${c4} ________
|
||||||
/ ______|
|
${c4} / ______|
|
||||||
| |______
|
${c4} | |______
|
||||||
\\______ \\
|
${c4} \\______ \\
|
||||||
______| |
|
${c4} ______| |
|
||||||
| |________/
|
${c4}| |________/
|
||||||
|____________
|
${c4}|____________
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Ss]un[Oo][Ss]|[Ss]olaris*)
|
[Ss]un[Oo][Ss]|[Ss]olaris*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3} . .; .
|
${c3} . .; .
|
||||||
. :; :: ;: .
|
${c3} . :; :: ;: .
|
||||||
.;. .. .. .;.
|
${c3} .;. .. .. .;.
|
||||||
.. .. .. ..
|
${c3}.. .. .. ..
|
||||||
.;, ,;.
|
${c3} .;, ,;.
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Uu]buntu*)
|
[Uu]buntu*)
|
||||||
read_ascii 3 <<-EOF
|
read_ascii 3 <<-EOF
|
||||||
${c3} _
|
${c3} _
|
||||||
---(_)
|
${c3} ---(_)
|
||||||
_/ --- \\
|
${c3} _/ --- \\
|
||||||
(_) | |
|
${c3}(_) | |
|
||||||
\\ --- _/
|
${c3} \\ --- _/
|
||||||
---(_)
|
${c3} ---(_)
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[Vv]oid*)
|
[Vv]oid*)
|
||||||
read_ascii 2 <<-EOF
|
read_ascii 2 <<-EOF
|
||||||
${c2} _______
|
${c2} _______
|
||||||
_ \\______ -
|
${c2} _ \\______ -
|
||||||
| \\ ___ \\ |
|
${c2}| \\ ___ \\ |
|
||||||
| | / \ | |
|
${c2}| | / \ | |
|
||||||
| | \___/ | |
|
${c2}| | \___/ | |
|
||||||
| \\______ \\_|
|
${c2}| \\______ \\_|
|
||||||
-_______\\
|
${c2} -_______\\
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1302,12 +1439,8 @@ get_ascii() {
|
|||||||
# output without the use of a pipe ('|').
|
# output without the use of a pipe ('|').
|
||||||
# This ensures that any variables defined in the while loop
|
# This ensures that any variables defined in the while loop
|
||||||
# are still accessible in the script.
|
# are still accessible in the script.
|
||||||
#
|
|
||||||
# The 'awk' command below used to be a simple 'sed', however
|
|
||||||
# some versions of Android shipped with a totally broken 'sed'
|
|
||||||
# command from 'toybox' and so we're forced to avoid 'sed'.
|
|
||||||
done <<-EOF
|
done <<-EOF
|
||||||
$(printf %s "$ascii" | awk '{gsub("\\[3.m","");print}')
|
$(printf %s "$ascii" | sed 's/\[3.m//g')
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Add a gap between the ascii art and the information.
|
# Add a gap between the ascii art and the information.
|
||||||
@@ -1330,6 +1463,11 @@ main() {
|
|||||||
# This gives full control over what it displayed on the screen.
|
# This gives full control over what it displayed on the screen.
|
||||||
exec 6>&1 >/dev/null
|
exec 6>&1 >/dev/null
|
||||||
|
|
||||||
|
# Allow the user to execute their own script and modify or
|
||||||
|
# extend pfetch's behavior.
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
. "${PF_SOURCE:-/dev/null}" ||:
|
||||||
|
|
||||||
# Ensure that the 'TMPDIR' is writable as heredocs use it and
|
# Ensure that the 'TMPDIR' is writable as heredocs use it and
|
||||||
# fail without the write permission. This was found to be the
|
# fail without the write permission. This was found to be the
|
||||||
# case on Android where the temporary directory requires root.
|
# case on Android where the temporary directory requires root.
|
||||||
@@ -1345,9 +1483,7 @@ main() {
|
|||||||
c7='[37m'; c8='[38m'
|
c7='[37m'; c8='[38m'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Avoid text-wrapping from wrecking the program output
|
# Avoid text-wrapping from wrecking the program output.
|
||||||
# and hide the cursor to hide its moving around during
|
|
||||||
# the printing process.
|
|
||||||
#
|
#
|
||||||
# Some terminals don't support these sequences, nor do they
|
# Some terminals don't support these sequences, nor do they
|
||||||
# silently conceal them if they're printed resulting in
|
# silently conceal them if they're printed resulting in
|
||||||
@@ -1355,14 +1491,11 @@ main() {
|
|||||||
[ "$TERM" = dumb ] ||
|
[ "$TERM" = dumb ] ||
|
||||||
[ "$TERM" = minix ] ||
|
[ "$TERM" = minix ] ||
|
||||||
[ "$TERM" = cons25 ] || {
|
[ "$TERM" = cons25 ] || {
|
||||||
# '[?7l': Disable line-wrapping.
|
# Disable line-wrapping.
|
||||||
# '[?25l': Hide the cursor.
|
printf '[?7l' >&6
|
||||||
printf '[?7l[?25l' >&6
|
|
||||||
|
|
||||||
# Leave the terminal how we found it on exit or Ctrl+C.
|
# Enable line-wrapping again on exit.
|
||||||
# '[?7h': Enable line-wrapping.
|
trap 'printf [?7h >&6' EXIT
|
||||||
# '[?25h': Show the cursor.
|
|
||||||
trap 'printf [?7h[?25h >&6' EXIT
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Store the output of 'uname' to avoid calling it multiple times
|
# Store the output of 'uname' to avoid calling it multiple times
|
||||||
|
|||||||
Reference in New Issue
Block a user