#!/bin/sh # Shows the current moon phase. moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase" [ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || ( flock -n 9 && ( until { [ "$(cat /sys/class/net/w*/operstate)" = 'up' ] || [ "$(cat /sys/class/net/e*/operstate)" = 'up' ]; } && curl -sf "wttr.in/?format=%m" --output "$moonfile" && touch "$moonfile"; do sleep 60; done && pkill -RTMIN+"${1:-17}" "${STATUSBAR:-dwmblocks}" ) & echo; exit ) 9>"${XDG_RUNTIME_DIR}/sb-moonphase.lock" icon="$(cat "$moonfile")" case "$icon" in 🌑) name="New" ;; 🌒) name="Waxing Crescent" ;; 🌓) name="First Quarter" ;; 🌔) name="Waxing Gibbous" ;; 🌕) name="Full" ;; 🌖) name="Waning Gibbous" ;; 🌗) name="Last Quarter" ;; 🌘) name="Waning Crescent" ;; *) exit 1 ;; esac echo "${icon-?}" case $BLOCK_BUTTON in 3) notify-send "🌜 Moon phase module" "Displays current moon phase. - 🌑: New - 🌒: Waxing Crescent - 🌓: First Quarter - 🌔: Waxing Gibbous - 🌕: Full - 🌖: Waning Gibbous - 🌗: Last Quarter - 🌘: Waning Crescent" ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac