From 0abf481cf6e6f0d7ecf45df01860919ba150d736 Mon Sep 17 00:00:00 2001 From: Geoffray Levasseur-Brandin Date: Thu, 19 Jun 2025 14:37:32 +0200 Subject: [PATCH] various improvement and securisation --- profile.d/info.sh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/profile.d/info.sh b/profile.d/info.sh index 1cfe70a..fceb2c1 100644 --- a/profile.d/info.sh +++ b/profile.d/info.sh @@ -39,6 +39,9 @@ # ------------------------------------------------------------------------------ ver() { + [[ -z $PROFVERSION ]] && \ + disp W "No version defined. Profile is probably badly installed." && \ + return 1 disp "Profile version $PROFVERSION." } export -f ver @@ -48,11 +51,13 @@ export -f ver # ------------------------------------------------------------------------------ meteo() { - cities=$@ - [[ $# -eq 0 ]] && local cities=$DEFAULT_CITY + local encoded cities=("$@") + [[ $# -eq 0 ]] && cities=("$DEFAULT_CITY") - for city in $cities; do - curl https://wttr.in/$city || disp E "Failed fetching datas for $city." + for city in "${cities[@]}"; do + encoded=$(urlencode "$city") + curl -s "https://wttr.in/$encoded" || \ + disp E "Failed fetching datas for $city." done } export -f meteo @@ -67,9 +72,13 @@ showinfo() if [[ -s /usr/share/figlet/ansi_shadow.flf ]]; then local figopt="-f ansi_shadow" fi - figlet -k $(hostname) $figopt + if [[ -n $figopt ]]; then + figlet -k "$figopt" "$(hostname)" + else + figlet "$(hostname)" + fi else - echo "$(hostname -f)" + hostname -f fi echo "" if command -v neofetch >/dev/null 2>&1; then @@ -77,12 +86,13 @@ showinfo() else ( if [[ -s /etc/os-release ]]; then + # shellcheck disable=SC1091 . /etc/os-release echo "$NAME $VERSION" else cat /proc/version fi - echo "Uptime: $(uptime)" + echo "Uptime: $(uptime -p)" ) fi }