-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathretropie_startup.sh
More file actions
121 lines (111 loc) · 3.71 KB
/
retropie_startup.sh
File metadata and controls
121 lines (111 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#! /usr/bin/env bash
# RETROPIE PROFILE START
function getIPAddress() {
local ip_route
ip_route=$(ip -4 route get 8.8.8.8 2>/dev/null)
if [[ -z "$ip_route" ]]; then
ip_route=$(ip -6 route get 2001:4860:4860::8888 2>/dev/null)
fi
[[ -n "$ip_route" ]] && grep -oP "src \K[^\s]+" <<<"$ip_route"
}
function retropie_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=(
"${fgred} .***. "
"${fgred} ***${bfgwht}*${fgred}* "
"${fgred} \`***' "
"${bfgwht} |*| "
"${bfgwht} |*| "
"${bfgred} ..${bfgwht}|*|${bfgred}.. "
"${bfgred}.*** ${bfgwht}*${bfgred} ***."
"${bfgred}*******${fggrn}@@${bfgred}**"
"${fgred}\`*${bfgred}****${bfgylw}@@${bfgred}*${fgred}*'"
"${fgred} \`*******'${fgrst} "
"${fgred} \`\"\"\"'${fgrst} "
)
local out
local i
for i in "${!logo[@]}"; do
out+=" ${logo[$i]} "
case "$i" in
0)
out+="${fggrn}$(date +"%A, %e %B %Y, %X")"
;;
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.........: $(getIPAddress)"
;;
9)
out+="Temperature........: CPU: ${cpuTempC}°C/${cpuTempF}°F GPU: ${gpuTempC}°C/${gpuTempF}°F"
;;
10)
out+="${fgwht}The RetroPie Project, https://retropie.org.uk"
;;
esac
out+="${rst}\n"
done
echo -e "\n$out"
}
retropie_welcome
# RETROPIE PROFILE END