]> arthur.barton.de Git - ax-zsh.git/blobdiff - plugins/calendar/calendar.ax-io
Correctly test XDG_CACHE_HOME for writability for "stamp files"
[ax-zsh.git] / plugins / calendar / calendar.ax-io
index 101320000d77120ee6a4748e9ba5aad1e9999ee9..6d573d210f2d558d83752eeddfcd1ffaed3c6127 100644 (file)
@@ -4,17 +4,21 @@
 # Make sure that "calendar(1)" is installed.
 (( $+commands[calendar] )) || return 1
 
-# Don't run this plugin on "check-plugins"!
-[[ -z "$AXZSH_PLUGIN_CHECK" ]] || return 0
+# Don't run this plugin on "check-plugins", but test if it would work!
+# It fails when no calendar files are available, for example, on macOS ...
+if [[ -n "$AXZSH_PLUGIN_CHECK" ]]; then
+       calendar >/dev/null 2>&1 || return 1
+       return 0
+fi
 
 # Don't show any info when ~/.hushlogin exists ...
 [[ -r ~/.hushlogin ]] && return 0
 
-# Check if neofetch(1) infos have been shown during last 60 minutes, and if so,
+# Check if calendar(1) infos have been shown during last 60 minutes, and if so,
 # don't show them now but return.
 [[ -z `find "$XDG_CACHE_HOME/axzsh_last_calendar" -mmin -60 2>/dev/null` ]] || return 0
 
-tmpfile=$(mktemp ${TMPDIR:-/tmp}/calendar.XXXXXX) || return 1
+tmpfile=$(mktemp "$TMPDIR/calendar.XXXXXX") || return 1
 
 calendar -A0 >"$tmpfile"
 if [[ -s "$tmpfile" ]]; then
@@ -23,4 +27,4 @@ fi
 rm -f "$tmpfile"
 
 # Wtite "stamp" file.
-[[ -w ~/ ]] && touch "$XDG_CACHE_HOME/axzsh_last_calendar"
+[[ -w "$XDG_CACHE_HOME" ]] && touch "$XDG_CACHE_HOME/axzsh_last_calendar"