Compare commits

...

13 Commits

Author SHA1 Message Date
appeasementPolitik
282045b108
Merge 92d3560888279fad9df63a4295b55b01522112cd into f26e5678e626e604ed586fc6420b944dc023d3f2 2023-08-18 21:22:00 +00:00
appeasementPolitik
92d3560888
Robustness not needed anymore because of curl's --output, no more empty files 2023-08-18 21:21:44 +00:00
appeasementPolitik
b0dbb1d1f6
Also change modification time 2023-08-18 14:49:50 +00:00
appeasementPolitik
f26e5678e6
Fix arkenfox pacman hook complaining about root (#1351)
The previous pull request on LARBS turned out not to work, so make sure `arkenfox-auto-update` runs `arkenfox-update` as the user of the firefox profile. Otherwise it complains that it's running as root and stops.

The way of getting the username is safe, because it gets the username from the owner of the user.js file of that profile.
2023-08-18 12:20:05 +00:00
appeasementPolitik
36d40adb8d
Only redirect non-empty output: for when services are down 2023-08-16 13:32:44 +00:00
appeasementPolitik
de863bf0f0
Make the retry logic better + other changes 2023-08-16 10:56:33 +00:00
appeasementPolitik
b7dc644e1a
Re-add fail-early to sb-price 2023-04-23 15:02:32 +00:00
appeasementPolitik
fead6d66ce
Merge branch 'master' into async 2023-04-20 17:16:20 +00:00
appeasementPolitik
b1ddd9548e
Merge latest commits and add retries 2023-04-20 17:11:58 +00:00
appeasementPolitik
e3a5d38200
Become synchronous on manual run and make dwmblocks signal code optional 2023-04-05 08:09:57 +00:00
appeasementPolitik
0e237592d7
Allow dwmblocks signal numbers to be changed 2023-04-04 07:25:19 +00:00
appeasementPolitik
060c093deb
Merge branch 'LukeSmithxyz:master' into async 2023-04-04 07:19:35 +00:00
appeasementPolitik
d1054d839e
Make dwmblocks modules async 2023-04-02 11:53:46 +00:00
5 changed files with 38 additions and 17 deletions

View File

@ -16,5 +16,8 @@ IFS='
# Update each found profile.
for profile in $profiles; do
arkenfox-updater -p "${profile%%/user.js*}" -s
userjs=${profile%%/user.js*}
user=$(stat -c '%U' "$userjs") || continue
su -l "$user" -c "arkenfox-updater -c -p $userjs -s"
done

View File

@ -7,11 +7,11 @@ url="${WTTRURL:-wttr.in}"
weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport"
# Get a weather report from 'wttr.in' and save it locally.
getforecast() { curl -sf "$url/$LOCATION" > "$weatherreport" || exit 1; }
getforecast() { curl -sf "$url/$LOCATION" --output "$weatherreport" && touch "$weatherreport"; }
# Forecast should be updated only once a day.
checkforecast() {
[ -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null |
[ "$(stat -c %y "$weatherreport" 2>/dev/null |
cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ]
}
@ -48,6 +48,9 @@ case $BLOCK_BUTTON in
6) "$TERMINAL" -e "$EDITOR" "$0" ;;
esac
checkforecast || getforecast
showweather
checkforecast && showweather ||
{ [ -z "$(pgrep 'sb-forecast' | tail -n +3)" ] &&
( until { [ "$(cat /sys/class/net/w*/operstate)" = 'up' ] || [ "$(cat /sys/class/net/e*/operstate)" = 'up' ]; } &&
getforecast; do sleep 60; done &&
pkill -RTMIN+"${1:-5}" "${STATUSBAR:-dwmblocks}" ) &
echo; }

View File

@ -5,10 +5,15 @@
#
# https://www.maketecheasier.com/ip-address-geolocation-lookups-linux/
set -e
ifinstalled "geoip" || exit 1
ifinstalled "geoip"
addr="$(geoiplookup "$(curl -sfm 1 ifconfig.me 2>/dev/null)")"
ipfile="$XDG_RUNTIME_DIR/iplocate"
addr=$(cat "$ipfile" 2>/dev/null) && addr=$(geoiplookup "$addr" 2>/dev/null) && rm "$ipfile" ||
{ [ -z "$(pgrep 'sb-iplocate' | tail -n +3)" ] &&
( until { [ "$(cat /sys/class/net/w*/operstate)" = 'up' ] || [ "$(cat /sys/class/net/e*/operstate)" = 'up' ]; } &&
curl -sf ifconfig.me --output "$ipfile"; do sleep 60; done &&
pkill -RTMIN+"${1:-27}" "${STATUSBAR:-dwmblocks}" ) &
echo; exit; }
name="${addr##*, }"
flag="$(grep "flag: $name" "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji")"
flag="${flag%% *}"

View File

@ -4,8 +4,12 @@
moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase"
[ -s "$moonfile" ] && [ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] ||
{ curl -sf "wttr.in/?format=%m" > "$moonfile" || exit 1 ;}
[ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] ||
{ [ -z "$(pgrep 'sb-moonphase' | tail -n +3)" ] &&
( 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; }
icon="$(cat "$moonfile")"

View File

@ -28,8 +28,7 @@ filestat="$(stat -c %x "$pricefile" 2>/dev/null)"
[ -d "$dir" ] || mkdir -p "$dir"
updateprice() { curl -sf -m 1 --fail-early $denom.$url/{1$target,$target$interval} --output "$pricefile" --output "$chartfile" ||
rm -f "$pricefile" "$chartfile" ;}
updateprice() { curl -sf --fail-early $denom.$url/{1$target,$target$interval} --output "$pricefile" --output "$chartfile" && touch "$pricefile" "$chartfile"; }
[ "${filestat%% *}" != "$(date '+%Y-%m-%d')" ] &&
updateme="1"
@ -48,9 +47,16 @@ case $BLOCK_BUTTON in
esac
[ -n "$updateme" ] &&
updateprice "$target" &&
[ -n "$showupdate" ] &&
notify-send "$icon Update complete." "$name price is now
\$$(cat "$pricefile")"
if [ -n "$showupdate" ]; then
updateprice && notify-send "$icon Update complete." "$name price is now \$$(cat "$pricefile")"
else
[ -n "$4" ] &&
{ [ -z "$(pgrep 'sb-price' | tail -n +3)" ] &&
( until { [ "$(cat /sys/class/net/w*/operstate)" = 'up' ] || [ "$(cat /sys/class/net/e*/operstate)" = 'up' ]; } &&
updateprice; do sleep 60; done &&
pkill -RTMIN+"$4" "${STATUSBAR:-dwmblocks}" ) &
echo; exit; } ||
updateprice
fi
[ -f "$pricefile" ] && printf "%s%s%0.2f" "$icon" "$symb" "$(cat "$pricefile")"