diff --git a/home/modules/tui/shell/fish/functions.nix b/home/modules/tui/shell/fish/functions.nix index 6f0b6d3..b9e5922 100644 --- a/home/modules/tui/shell/fish/functions.nix +++ b/home/modules/tui/shell/fish/functions.nix @@ -2,8 +2,28 @@ programs.fish.functions = { # cht.sh integration cht = "curl cheat.sh/$argv"; - # Disable greeting - fish_greeting = ""; + + # Display weather from tempest station + fish_greeting = '' + if test -f "${config.sops.secrets.tempest-station.path}" + set station (cat ${config.sops.secrets.tempest-station.path}) + set token (cat ${config.sops.secrets.tempest-token.path}) + set wxjson (curl --max-time 2 --compressed -sL "https://swd.weatherflow.com/swd/rest/better_forecast?station_id=$station&token=$token&units_temp=f") + if test $status -eq 0; and echo $wxjson | jq empty >/dev/null 2>&1 + set -l wxdata (echo $wxjson | jq -r '[ + (.current_conditions.conditions | ascii_downcase), + (.current_conditions.air_temperature | round | tostring), + (.forecast.daily[0].air_temp_low | round | tostring), + (.forecast.daily[0].air_temp_high | round | tostring) + ] | @tsv' | string split \t) + echo -ne "\nwx@home: "; set_color -d green; echo -n "$wxdata[1] and $wxdata[2]°f "; set_color normal + echo -n "("; set_color -d blue; echo -n "$wxdata[3]°"; set_color normal + echo -n "|"; set_color -d red; echo -n "$wxdata[4]°"; set_color normal; echo ")" + else + return 1 + end + end + ''; get-local-ip = "ip addr show $(ip route | grep default | awk '{print $5}') | grep 'inet ' | awk '{print $2}' | cut -d/ -f1";