summaryrefslogtreecommitdiffstats
path: root/.local/bin/weath
diff options
context:
space:
mode:
authorappeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com>2024-07-15 17:28:50 +0000
committerGitHub <noreply@github.com>2024-07-15 17:28:50 +0000
commit368d3583a6c2e067491a160553c4130187fd0127 (patch)
tree19ee4abbfe7deeec04c782feb2ea9d118115b232 /.local/bin/weath
parentcf38cd5ba813741e8ea61c72b30b8c983a3d0abb (diff)
downloadeibhear-368d3583a6c2e067491a160553c4130187fd0127.tar.gz
eibhear-368d3583a6c2e067491a160553c4130187fd0127.tar.zst
eibhear-368d3583a6c2e067491a160553c4130187fd0127.zip
weath: Add option to get forecast from a different location (#1327)
* weath: Add option to get forecast from a different location * Remove retry and make max time lower because it is interactive * Give weath 'cp' option to copy forecast as plain text for sharing * Make weath a separate script
Diffstat (limited to '.local/bin/weath')
-rw-r--r--.local/bin/weath25
1 files changed, 25 insertions, 0 deletions
diff --git a/.local/bin/weath b/.local/bin/weath
new file mode 100644
index 0000000..a526411
--- /dev/null
+++ b/.local/bin/weath
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Get the weather on the terminal. You can pass an alternative location as a parameter,
+# and/or use the 'cp' option to copy the forecast as plaintext to the clipboard.
+
+report="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport"
+
+if [ "$1" = 'cp' ]; then
+ # shellcheck disable=SC2015
+ [ -z "$2" ] && sed 's/\x1b\[[^m]*m//g' "$report" | xclip -selection clipboard &&
+ notify-send "Weather forecast for '${LOCATION:-$(head -n 1 "$report" | cut -d' ' -f3-)}' copied to clipboard." ||
+ { data="$(curl -sfm 5 "${WTTRURL:-wttr.in}/$2?T")" &&
+ notify-send "Weather forecast for '$2' copied to clipboard." &&
+ echo "$data" | xclip -selection clipboard ||
+ notify-send 'Failed to get weather forecast!' 'Check your internet connection and the supplied location.'; }
+else
+ [ -n "$2" ] &&
+ notify-send "Invalid option '$1'! The only valid option is 'cp'." &&
+ exit 1
+
+ # shellcheck disable=SC2015
+ [ -z "$1" ] && less -S "$report" ||
+ data="$(curl -sfm 5 "${WTTRURL:-wttr.in}/$1")" && echo "$data" | less -S ||
+ notify-send 'Failed to get weather forecast!' 'Check your internet connection and the supplied location.'
+fi