Skip to content

Instantly share code, notes, and snippets.

@grininmonkey
Created September 19, 2018 21:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grininmonkey/a4fa97eedcff8f57c511a585aa18a3a7 to your computer and use it in GitHub Desktop.
Save grininmonkey/a4fa97eedcff8f57c511a585aa18a3a7 to your computer and use it in GitHub Desktop.
Raspberry PI Welcome Info ( Copied from Retropie - Replaced Joystick with Raspberry Logo)
#!/bin/bash
#----------------------------------------------------------------------------#
# create file with no extension in /bin
# make it executable: chmod u+x <name-of-this-file>
# from terminal/console you can now type <name-of-this-file> to execute it
# add <name-of-this-file> as the last line in your ~/.bashrc
#
# <name-of-this-file> for example would be something like: pifetch
#
#----------------------------------------------------------------------------#
function pie_welcome() {
local upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
local secs=$((upSeconds%60))
local mins=$((upSeconds/60%60))
local hours=$((upSeconds/3600%24))
local days=$((upSeconds/86400))
local UPTIME=$(printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs")
# calculate rough CPU and GPU temperatures:
local cpuTempC
local cpuTempF
local gpuTempC
local gpuTempF
if [[ -f "/sys/class/thermal/thermal_zone0/temp" ]]; then
cpuTempC=$(($(cat /sys/class/thermal/thermal_zone0/temp)/1000)) && cpuTempF=$((cpuTempC*9/5+32))
fi
if [[ -f "/opt/vc/bin/vcgencmd" ]]; then
if gpuTempC=$(/opt/vc/bin/vcgencmd measure_temp); then
gpuTempC=${gpuTempC:5:2}
gpuTempF=$((gpuTempC*9/5+32))
else
gpuTempC=""
fi
fi
local df_out=()
local line
while read line; do
df_out+=("$line")
done < <(df -h /)
local rst="$(tput sgr0)"
local fgblk="${rst}$(tput setaf 0)" # Black - Regular
local fgred="${rst}$(tput setaf 1)" # Red
local fggrn="${rst}$(tput setaf 2)" # Green
local fgylw="${rst}$(tput setaf 3)" # Yellow
local fgblu="${rst}$(tput setaf 4)" # Blue
local fgpur="${rst}$(tput setaf 5)" # Purple
local fgcyn="${rst}$(tput setaf 6)" # Cyan
local fgwht="${rst}$(tput setaf 7)" # White
local bld="$(tput bold)"
local bfgblk="${bld}$(tput setaf 0)"
local bfgred="${bld}$(tput setaf 1)"
local bfggrn="${bld}$(tput setaf 2)"
local bfgylw="${bld}$(tput setaf 3)"
local bfgblu="${bld}$(tput setaf 4)"
local bfgpur="${bld}$(tput setaf 5)"
local bfgcyn="${bld}$(tput setaf 6)"
local bfgwht="${bld}$(tput setaf 7)"
local logo=(
"${fggrn} .~~. .~~. "
"${fggrn} '. \ ' ' / .' "
"${fgred} .~ .~~~..~. "
"${fgred} : .~.'~'.~. : "
"${fgred} ~ ( ) ( ) ~ "
"${fgred}( : '~'.~.'~' : ) "
"${fgred} ~ .~ ( ) ~. ~ "
"${fgred} ( : '~' : ) "
"${fgred} '~ .~~~. ~' "
"${fgred} '~' "
"${fgred} "
)
local out
local i
for i in "${!logo[@]}"; do
out+=" ${logo[$i]} "
case "$i" in
0)
out+="${fggrn}$(date +"%A, %e %B %Y, %r")"
;;
1)
out+="${fggrn}$(uname -srmo)"
;;
3)
out+="${fgylw}${df_out[0]}"
;;
4)
out+="${fgwht}${df_out[1]}"
;;
5)
out+="${fgred}Uptime.............: ${UPTIME}"
;;
6)
out+="${fgred}Memory.............: $(grep MemFree /proc/meminfo | awk {'print $2'})kB (Free) / $(grep MemTotal /proc/meminfo | awk {'print $2'})kB (Total)"
;;
7)
out+="${fgred}Running Processes..: $(ps ax | wc -l | tr -d " ")"
;;
8)
out+="${fgred}IP Address.........: $(ip route get 8.8.8.8 2>/dev/null | awk '{print $NF; exit}')"
;;
9)
out+="Temperature........: CPU: $cpuTempC°C/$cpuTempF°F GPU: $gpuTempC°C/$gpuTempF°F"
;;
10)
out+="${fgwht}Raspberry PI Foundation, https://www.raspberrypi.org/"
;;
esac
out+="\n"
done
echo -e "\n$out"
}
pie_welcome
@grininmonkey
Copy link
Author

grininmonkey commented Sep 19, 2018

The ASCII logo came from a forum thread on raspberrypi.org https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=5494#p78678

The following is a scrot showing the standard retropie welcome and the modified script above on a non retropie install...
2018-09-19-162921_1920x1080_scrot.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment