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**
|
||||
- **Minix**
|
||||
- **Solaris**
|
||||
- **IRIX**
|
||||
|
||||
## Configuration
|
||||
|
||||
@@ -57,6 +58,11 @@ PF_INFO="ascii"
|
||||
# Example: Only Information.
|
||||
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.
|
||||
# Default: unset
|
||||
# Valid: string
|
||||
|
||||
584
pfetch
584
pfetch
@@ -83,7 +83,7 @@ log() {
|
||||
printf '[3%s;1m%s[m' "${PF_COL1-4}" "$name"
|
||||
|
||||
# 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
|
||||
# then move it forwards the length of the *longest* info name. This
|
||||
@@ -131,7 +131,7 @@ get_os() {
|
||||
Linux*)
|
||||
# Some Linux distributions (which are based on others)
|
||||
# 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
|
||||
# each and every distribution (which _is_ technically no
|
||||
@@ -182,6 +182,13 @@ get_os() {
|
||||
command -v crux && distro=$(crux)
|
||||
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
|
||||
# WSL1 (Windows subsystem for Linux [version 1]) and
|
||||
# append a string accordingly.
|
||||
@@ -279,13 +286,13 @@ get_kernel() {
|
||||
case $os in
|
||||
# Don't print kernel output on some systems as the
|
||||
# OS name includes it.
|
||||
*BSD*|Haiku|Minix) ;;
|
||||
|
||||
*)
|
||||
# '$kernel' is the cached output of 'uname -r'.
|
||||
log kernel "$kernel" >&6
|
||||
*BSD*|Haiku|Minix)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
# '$kernel' is the cached output of 'uname -r'.
|
||||
log kernel "$kernel" >&6
|
||||
}
|
||||
|
||||
get_host() {
|
||||
@@ -310,7 +317,7 @@ get_host() {
|
||||
machdep.dmi.system-product)
|
||||
;;
|
||||
|
||||
*BSD*)
|
||||
*BSD*|Minix)
|
||||
host=$(sysctl -n hw.vendor hw.product)
|
||||
;;
|
||||
esac
|
||||
@@ -343,7 +350,7 @@ get_host() {
|
||||
# found in the "blacklist" below. Only non-matches are appended
|
||||
# to the final host string.
|
||||
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 |\
|
||||
Version | Undefined | Default | string | INVALID | <20> | os )
|
||||
continue
|
||||
@@ -397,6 +404,25 @@ get_uptime() {
|
||||
$(kstat -p unix:0:system_misc:snaptime)
|
||||
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
|
||||
|
||||
# Convert the uptime from seconds into days, hours and minutes.
|
||||
@@ -445,12 +471,14 @@ get_pkgs() {
|
||||
has xbps-query && xbps-query -l
|
||||
has apk && apk info
|
||||
has guix && guix package --list-installed
|
||||
has opkg && opkg list-installed
|
||||
|
||||
# Directories containing packages.
|
||||
has kiss && printf '%s\n' /var/db/kiss/installed/*/
|
||||
has brew && printf '%s\n' "$(brew --cellar)/"*
|
||||
has emerge && printf '%s\n' /var/db/pkg/*/*/
|
||||
has pkgtool && printf '%s\n' /var/log/packages/*
|
||||
has eopkg && printf '%s\n' /var/lib/eopkg/package/*
|
||||
|
||||
# 'nix' requires two commands.
|
||||
has nix-store && {
|
||||
@@ -506,9 +534,19 @@ get_pkgs() {
|
||||
has pkginfo && pkginfo -i
|
||||
has pkg && pkg list
|
||||
;;
|
||||
|
||||
IRIX)
|
||||
versions -b
|
||||
;;
|
||||
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
|
||||
}
|
||||
|
||||
@@ -689,72 +727,32 @@ get_memory() {
|
||||
mem_free=$((pages_free * hw_pagesize / 1024 / 1024))
|
||||
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
|
||||
|
||||
log memory "${mem_used:-?}M / ${mem_full:-?}M" >&6
|
||||
}
|
||||
|
||||
get_disk() {
|
||||
# Store the version of the 'df' command as the available
|
||||
# flags, options and implementation differs between operating
|
||||
# systems and we need to handle these edge-cases.
|
||||
df_version=$(df --version 2>&1)
|
||||
|
||||
case $df_version in
|
||||
# The 'df' command is from AIX.
|
||||
*IMitv*)
|
||||
set -- -P -g
|
||||
;;
|
||||
|
||||
# The 'df' command is from IRIX.
|
||||
*befhikm*)
|
||||
set -- -P -k
|
||||
;;
|
||||
|
||||
# The 'df' command is from OpenBSD.
|
||||
*hiklnP*)
|
||||
set -- -h
|
||||
;;
|
||||
|
||||
# The 'df' command is from Haiku and is wildly
|
||||
# different and provides no workable output,
|
||||
# end here.
|
||||
*Tracker*) # Haiku
|
||||
return
|
||||
;;
|
||||
|
||||
# From testing it is saffe to assume that
|
||||
# any other 'df' version provides these flags.
|
||||
*)
|
||||
set -- -P -h
|
||||
;;
|
||||
esac
|
||||
|
||||
# Read the output of 'df' line by line. The first line
|
||||
# contains header information for the "table" so it is
|
||||
# skipped.
|
||||
#
|
||||
# The next lines are then split to grab the relevant
|
||||
# information and thankfully the output remains the
|
||||
# same between all but one 'df' implementation.
|
||||
#
|
||||
# TODO: Configure disks to send to 'df'. Do we need to
|
||||
# do this? I'd love to _not_ do it.
|
||||
df "$@" / | while read -r name full used _ perc _; do
|
||||
[ "$header" ] || { header=1; continue; }
|
||||
|
||||
case $df_version in
|
||||
# The 'df' command is from IRIX.
|
||||
*befhikm*)
|
||||
used=$((used/1024/1024))G
|
||||
full=$((full/1024/1024))G
|
||||
;;
|
||||
esac
|
||||
|
||||
log disk "$name [$used / $full ($perc)]" >&6
|
||||
done
|
||||
}
|
||||
|
||||
get_wm() {
|
||||
case $os in
|
||||
# Don't display window manager on macOS.
|
||||
@@ -770,7 +768,7 @@ get_wm() {
|
||||
# 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_
|
||||
# support Wayland environments. The only solution which supports
|
||||
@@ -842,7 +840,40 @@ get_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
|
||||
}
|
||||
;;
|
||||
@@ -880,12 +911,12 @@ get_palette() {
|
||||
#
|
||||
# This allows us to save hardcoding a second set of sequences
|
||||
# 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.
|
||||
# The '\033[%sC' moves the text to the right, the
|
||||
# length of the ascii art.
|
||||
printf '\n[%sC%s[m\n' "${ascii_width-1}" "$palette" >&6
|
||||
# Print the palette with a new-line before and afterwards.
|
||||
printf '\n' >&6
|
||||
log "$palette
|
||||
" " " >&6
|
||||
}
|
||||
|
||||
get_ascii() {
|
||||
@@ -932,54 +963,63 @@ get_ascii() {
|
||||
/${c7}/ ${c4}\\ \\
|
||||
/${c7}// ${c4}\\ \\
|
||||
${c7}// ${c4}\\ \\
|
||||
\\
|
||||
${c4}\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Aa]ndroid*)
|
||||
read_ascii 2 <<-EOF
|
||||
${c2} ;, ,;
|
||||
';,.-----.,;'
|
||||
,' ',
|
||||
/ O O \\
|
||||
| |
|
||||
'-----------------'
|
||||
${c2} ';,.-----.,;'
|
||||
${c2} ,' ',
|
||||
${c2} / O O \\
|
||||
${c2}| |
|
||||
${c2}'-----------------'
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Aa]rch*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c6} /\\
|
||||
/ \\
|
||||
/\\ \\
|
||||
${c6} / \\
|
||||
${c6} /\\ \\
|
||||
${c4} / \\
|
||||
/ ,, \\
|
||||
/ | | -\\
|
||||
/_-'' ''-_\\
|
||||
${c4} / ,, \\
|
||||
${c4} / | | -\\
|
||||
${c4} /_-'' ''-_\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Aa]rco*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c4} /\\
|
||||
/ \\
|
||||
/ /\\ \\
|
||||
/ / \\ \\
|
||||
/ / \\ \\
|
||||
/ / _____\\ \\
|
||||
/_/ \`----.\\_\\
|
||||
${c4} / \\
|
||||
${c4} / /\\ \\
|
||||
${c4} / / \\ \\
|
||||
${c4} / / \\ \\
|
||||
${c4} / / _____\\ \\
|
||||
${c4}/_/ \`----.\\_\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Aa]rtix*)
|
||||
read_ascii 6 <<-EOF
|
||||
${c4} /\\
|
||||
/ \\
|
||||
/\`'.,\\
|
||||
/ ',
|
||||
/ ,\`\\
|
||||
/ ,.'\`. \\
|
||||
/.,'\` \`'.\\
|
||||
${c4} / \\
|
||||
${c4} /\`'.,\\
|
||||
${c4} / ',
|
||||
${c4} / ,\`\\
|
||||
${c4} / ,.'\`. \\
|
||||
${c4}/.,'\` \`'.\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Bb]edrock*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c7}__
|
||||
${c7}\\ \\___
|
||||
${c7} \\ _ \\
|
||||
${c7} \\___/
|
||||
EOF
|
||||
;;
|
||||
|
||||
@@ -998,11 +1038,11 @@ get_ascii() {
|
||||
[Dd]ebian*)
|
||||
read_ascii 1 <<-EOF
|
||||
${c1} _____
|
||||
/ __ \\
|
||||
| / |
|
||||
| \\___-
|
||||
-_
|
||||
--_
|
||||
${c1} / __ \\
|
||||
${c1}| / |
|
||||
${c1}| \\___-
|
||||
${c1}-_
|
||||
${c1} --_
|
||||
EOF
|
||||
;;
|
||||
|
||||
@@ -1013,19 +1053,30 @@ get_ascii() {
|
||||
>--${c1}|${c7}--<
|
||||
(_-'${c1}|${c7}'-_)
|
||||
${c1}|
|
||||
|
|
||||
|
|
||||
${c1}|
|
||||
${c1}|
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Ee]lementary*)
|
||||
read_ascii <<-EOF
|
||||
${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
|
||||
;;
|
||||
|
||||
@@ -1045,71 +1096,83 @@ get_ascii() {
|
||||
[Ff]ree[Bb][Ss][Dd]*)
|
||||
read_ascii 1 <<-EOF
|
||||
${c1}/\\,-'''''-,/\\
|
||||
\\_) (_/
|
||||
| |
|
||||
| |
|
||||
; ;
|
||||
'-_____-'
|
||||
${c1}\\_) (_/
|
||||
${c1}| |
|
||||
${c1}| |
|
||||
${c1}; ;
|
||||
${c1}'-_____-'
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Gg]entoo*)
|
||||
read_ascii 5 <<-EOF
|
||||
${c5} _-----_
|
||||
( \\
|
||||
\\ 0 \\
|
||||
${c5}( \\
|
||||
${c5}\\ 0 \\
|
||||
${c7} \\ )
|
||||
/ _/
|
||||
( _-
|
||||
\\____-
|
||||
${c7} / _/
|
||||
${c7}( _-
|
||||
${c7}\\____-
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Gg]uix[Ss][Dd]*|[Gg]uix*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3}|.__ __.|
|
||||
|__ \\ / __|
|
||||
\\ \\ / /
|
||||
\\ \\ / /
|
||||
\\ \\ / /
|
||||
\\ \\/ /
|
||||
\\__/
|
||||
${c3}|__ \\ / __|
|
||||
${c3}\\ \\ / /
|
||||
${c3}\\ \\ / /
|
||||
${c3}\\ \\ / /
|
||||
${c3}\\ \\/ /
|
||||
${c3}\\__/
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Hh]aiku*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3} ,^,
|
||||
/ \\
|
||||
*--_ ; ; _--*
|
||||
\\ '" "' /
|
||||
'. .'
|
||||
.-'" "'-.
|
||||
'-.__. .__.-'
|
||||
|_|
|
||||
${c3} / \\
|
||||
${c3}*--_ ; ; _--*
|
||||
${c3}\\ '" "' /
|
||||
${c3}'. .'
|
||||
${c3}.-'" "'-.
|
||||
${c3}'-.__. .__.-'
|
||||
${c3}|_|
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Hh]yperbola*)
|
||||
read_ascii <<-EOF
|
||||
${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
|
||||
;;
|
||||
|
||||
[Ll]inux*[Ll]ite*|[Ll]ite*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3} /\\
|
||||
/ \\
|
||||
/ ${c7}/ ${c3}/
|
||||
> ${c7}/ ${c3}/
|
||||
\\ ${c7}\\ ${c3}\\
|
||||
\\_${c7}\\${c3}_\\
|
||||
${c3} / \\
|
||||
${c3} / ${c7}/ ${c3}/
|
||||
${c3}> ${c7}/ ${c3}/
|
||||
${c3}\\ ${c7}\\ ${c3}\\
|
||||
${c3}\\_${c7}\\${c3}_\\
|
||||
${c7} \\
|
||||
EOF
|
||||
;;
|
||||
@@ -1117,12 +1180,12 @@ get_ascii() {
|
||||
[Ll]inux*[Mm]int*|[Mm]int)
|
||||
read_ascii 2 <<-EOF
|
||||
${c2} ___________
|
||||
|_ \\
|
||||
| ${c7}| _____ ${c2}|
|
||||
| ${c7}| | | | ${c2}|
|
||||
| ${c7}| | | | ${c2}|
|
||||
| ${c7}\\__${c7}___/ ${c2}|
|
||||
\\_________/
|
||||
${c2}|_ \\
|
||||
${c2}| ${c7}| _____ ${c2}|
|
||||
${c2}| ${c7}| | | | ${c2}|
|
||||
${c2}| ${c7}| | | | ${c2}|
|
||||
${c2}| ${c7}\\__${c7}___/ ${c2}|
|
||||
${c2}\\_________/
|
||||
EOF
|
||||
;;
|
||||
|
||||
@@ -1130,10 +1193,10 @@ get_ascii() {
|
||||
[Ll]inux*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c4} ___
|
||||
(${c7}.· ${c4}|
|
||||
(${c5}<> ${c4}|
|
||||
/ ${c7}__ ${c4}\\
|
||||
( ${c7}/ \\ ${c4}/|
|
||||
${c4}(${c7}.. ${c4}|
|
||||
${c4}(${c5}<> ${c4}|
|
||||
${c4}/ ${c7}__ ${c4}\\
|
||||
${c4}( ${c7}/ \\ ${c4}/|
|
||||
${c5}_${c4}/\\ ${c7}__)${c4}/${c5}_${c4})
|
||||
${c5}\/${c4}-____${c5}\/
|
||||
EOF
|
||||
@@ -1142,9 +1205,9 @@ get_ascii() {
|
||||
[Mm]ac[Oo][Ss]*|[Dd]arwin*)
|
||||
read_ascii 1 <<-EOF
|
||||
${c1} .:'
|
||||
_ :'_
|
||||
${c1} _ :'_
|
||||
${c2} .'\`_\`-'_\`\`.
|
||||
:________.-'
|
||||
${c2}:________.-'
|
||||
${c3}:_______:
|
||||
${c4} :_______\`-;
|
||||
${c5} \`._.-._.'
|
||||
@@ -1154,49 +1217,49 @@ get_ascii() {
|
||||
[Mm]ageia*)
|
||||
read_ascii 2 <<-EOF
|
||||
${c6} *
|
||||
*
|
||||
**
|
||||
${c6} *
|
||||
${c6} **
|
||||
${c7} /\\__/\\
|
||||
/ \\
|
||||
\\ /
|
||||
\\____/
|
||||
${c7}/ \\
|
||||
${c7}\\ /
|
||||
${c7} \\____/
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Mm]anjaro*)
|
||||
read_ascii 2 <<-EOF
|
||||
${c2}||||||||| ||||
|
||||
||||||||| ||||
|
||||
|||| ||||
|
||||
|||| |||| ||||
|
||||
|||| |||| ||||
|
||||
|||| |||| ||||
|
||||
|||| |||| ||||
|
||||
${c2}||||||||| ||||
|
||||
${c2}|||| ||||
|
||||
${c2}|||| |||| ||||
|
||||
${c2}|||| |||| ||||
|
||||
${c2}|||| |||| ||||
|
||||
${c2}|||| |||| ||||
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Mm]inix*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c4} ,, ,,
|
||||
;${c7},${c4} ', ,' ${c7},${c4};
|
||||
; ${c7}',${c4} ',,' ${c7},'${c4} ;
|
||||
; ${c7}',${c4} ${c7},'${c4} ;
|
||||
; ${c7};, '' ,;${c4} ;
|
||||
; ${c7};${c4};${c7}',,'${c4};${c7};${c4} ;
|
||||
', ${c7};${c4};; ;;${c7};${c4} ,'
|
||||
'${c7};${c4}' '${c7};${c4}'
|
||||
${c4};${c7},${c4} ', ,' ${c7},${c4};
|
||||
${c4}; ${c7}',${c4} ',,' ${c7},'${c4} ;
|
||||
${c4}; ${c7}',${c4} ${c7},'${c4} ;
|
||||
${c4}; ${c7};, '' ,;${c4} ;
|
||||
${c4}; ${c7};${c4};${c7}',,'${c4};${c7};${c4} ;
|
||||
${c4}', ${c7};${c4};; ;;${c7};${c4} ,'
|
||||
${c4} '${c7};${c4}' '${c7};${c4}'
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Mm][Xx]*)
|
||||
read_ascii <<-EOF
|
||||
${c7} \\\\ /
|
||||
\\\\/
|
||||
\\\\
|
||||
/\\/ \\\\
|
||||
/ \\ /\\
|
||||
/ \\/ \\
|
||||
/__________\\
|
||||
${c7} \\\\/
|
||||
${c7} \\\\
|
||||
${c7} /\\/ \\\\
|
||||
${c7} / \\ /\\
|
||||
${c7} / \\/ \\
|
||||
${c7}/__________\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
@@ -1207,124 +1270,137 @@ get_ascii() {
|
||||
${c7} \\\\ ${c3}\`.____
|
||||
${c7} \\\\${c3}-______,----\`-
|
||||
${c7} \\\\
|
||||
\\\\
|
||||
\\\\
|
||||
${c7} \\\\
|
||||
${c7} \\\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Nn]ix[Oo][Ss]*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c4} \\\\ \\\\ //
|
||||
==\\\\__\\\\/ //
|
||||
// \\\\//
|
||||
==// //==
|
||||
//\\\\___//
|
||||
// /\\\\ \\\\==
|
||||
// \\\\ \\\\
|
||||
${c4} ==\\\\__\\\\/ //
|
||||
${c4} // \\\\//
|
||||
${c4}==// //==
|
||||
${c4} //\\\\___//
|
||||
${c4}// /\\\\ \\\\==
|
||||
${c4} // \\\\ \\\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Oo]pen[Bb][Ss][Dd]*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3} _____
|
||||
\\- -/
|
||||
\\_/ \\
|
||||
| ${c7}O O${c3} |
|
||||
|_ < ) 3 )
|
||||
/ \\ /
|
||||
/-_____-\\
|
||||
${c3} \\- -/
|
||||
${c3} \\_/ \\
|
||||
${c3} | ${c7}O O${c3} |
|
||||
${c3} |_ < ) 3 )
|
||||
${c3} / \\ /
|
||||
${c3} /-_____-\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Oo]penSUSE*|[Oo]pen*SUSE*|SUSE*|suse*)
|
||||
[Oo]pen[Ss][Uu][Ss][Ee]*|[Oo]pen*SUSE*|SUSE*|suse*)
|
||||
read_ascii 2 <<-EOF
|
||||
${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
|
||||
;;
|
||||
|
||||
[Pp]arabola*)
|
||||
read_ascii 5 <<-EOF
|
||||
${c5} __ __ __ _
|
||||
.\`_//_//_/ / \`.
|
||||
/ .\`
|
||||
/ .\`
|
||||
/.\`
|
||||
/\`
|
||||
${c5}.\`_//_//_/ / \`.
|
||||
${c5} / .\`
|
||||
${c5} / .\`
|
||||
${c5} /.\`
|
||||
${c5} /\`
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Pp]op!_[Oo][Ss]*)
|
||||
read_ascii 6 <<-EOF
|
||||
${c6}______
|
||||
\\ _ \\ __
|
||||
\\ \\ \\ \\ / /
|
||||
\\ \\_\\ \\ / /
|
||||
\\ ___\\ /_/
|
||||
\\ \\ _
|
||||
__\\_\\__(_)_
|
||||
(___________)
|
||||
${c6}\\ _ \\ __
|
||||
${c6}\\ \\ \\ \\ / /
|
||||
${c6}\\ \\_\\ \\ / /
|
||||
${c6}\\ ___\\ /_/
|
||||
${c6} \\ \\ _
|
||||
${c6} __\\_\\__(_)_
|
||||
${c6}(___________)
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Pp]ure[Oo][Ss]*)
|
||||
read_ascii <<-EOF
|
||||
${c7} _____________
|
||||
| _________ |
|
||||
| | | |
|
||||
| | | |
|
||||
| |_________| |
|
||||
|_____________|
|
||||
${c7}| _________ |
|
||||
${c7}| | | |
|
||||
${c7}| | | |
|
||||
${c7}| |_________| |
|
||||
${c7}|_____________|
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Ss]lackware*)
|
||||
read_ascii 4 <<-EOF
|
||||
${c4} ________
|
||||
/ ______|
|
||||
| |______
|
||||
\\______ \\
|
||||
______| |
|
||||
| |________/
|
||||
|____________
|
||||
${c4} / ______|
|
||||
${c4} | |______
|
||||
${c4} \\______ \\
|
||||
${c4} ______| |
|
||||
${c4}| |________/
|
||||
${c4}|____________
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Ss]un[Oo][Ss]|[Ss]olaris*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3} . .; .
|
||||
. :; :: ;: .
|
||||
.;. .. .. .;.
|
||||
.. .. .. ..
|
||||
.;, ,;.
|
||||
${c3} . :; :: ;: .
|
||||
${c3} .;. .. .. .;.
|
||||
${c3}.. .. .. ..
|
||||
${c3} .;, ,;.
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Uu]buntu*)
|
||||
read_ascii 3 <<-EOF
|
||||
${c3} _
|
||||
---(_)
|
||||
_/ --- \\
|
||||
(_) | |
|
||||
\\ --- _/
|
||||
---(_)
|
||||
${c3} ---(_)
|
||||
${c3} _/ --- \\
|
||||
${c3}(_) | |
|
||||
${c3} \\ --- _/
|
||||
${c3} ---(_)
|
||||
EOF
|
||||
;;
|
||||
|
||||
[Vv]oid*)
|
||||
read_ascii 2 <<-EOF
|
||||
${c2} _______
|
||||
_ \\______ -
|
||||
| \\ ___ \\ |
|
||||
| | / \ | |
|
||||
| | \___/ | |
|
||||
| \\______ \\_|
|
||||
-_______\\
|
||||
${c2} _ \\______ -
|
||||
${c2}| \\ ___ \\ |
|
||||
${c2}| | / \ | |
|
||||
${c2}| | \___/ | |
|
||||
${c2}| \\______ \\_|
|
||||
${c2} -_______\\
|
||||
EOF
|
||||
;;
|
||||
|
||||
@@ -1363,12 +1439,8 @@ get_ascii() {
|
||||
# output without the use of a pipe ('|').
|
||||
# This ensures that any variables defined in the while loop
|
||||
# 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
|
||||
$(printf %s "$ascii" | awk '{gsub("\\[3.m","");print}')
|
||||
$(printf %s "$ascii" | sed 's/\[3.m//g')
|
||||
EOF
|
||||
|
||||
# Add a gap between the ascii art and the information.
|
||||
@@ -1391,6 +1463,11 @@ main() {
|
||||
# This gives full control over what it displayed on the screen.
|
||||
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
|
||||
# fail without the write permission. This was found to be the
|
||||
# case on Android where the temporary directory requires root.
|
||||
@@ -1406,9 +1483,7 @@ main() {
|
||||
c7='[37m'; c8='[38m'
|
||||
}
|
||||
|
||||
# Avoid text-wrapping from wrecking the program output
|
||||
# and hide the cursor to hide its moving around during
|
||||
# the printing process.
|
||||
# Avoid text-wrapping from wrecking the program output.
|
||||
#
|
||||
# Some terminals don't support these sequences, nor do they
|
||||
# silently conceal them if they're printed resulting in
|
||||
@@ -1416,14 +1491,11 @@ main() {
|
||||
[ "$TERM" = dumb ] ||
|
||||
[ "$TERM" = minix ] ||
|
||||
[ "$TERM" = cons25 ] || {
|
||||
# '[?7l': Disable line-wrapping.
|
||||
# '[?25l': Hide the cursor.
|
||||
printf '[?7l[?25l' >&6
|
||||
# Disable line-wrapping.
|
||||
printf '[?7l' >&6
|
||||
|
||||
# Leave the terminal how we found it on exit or Ctrl+C.
|
||||
# '[?7h': Enable line-wrapping.
|
||||
# '[?25h': Show the cursor.
|
||||
trap 'printf [?7h[?25h >&6' EXIT
|
||||
# Enable line-wrapping again on exit.
|
||||
trap 'printf [?7h >&6' EXIT
|
||||
}
|
||||
|
||||
# Store the output of 'uname' to avoid calling it multiple times
|
||||
|
||||
Reference in New Issue
Block a user