wlsunset: Fix pass through time variables to service

Passing them through as individual arguments on the commandline.
Previously quoting would pass them through as a single argument, making
it not work correctly.

Could switch to using bash arrays for this (to make it more robust
against word-splitting) but a) I prefer the portability of sh for such a
simple script and b) there _should_ never be a time when we pass through
anything that has weird word-splitting issues. Either the location is
passed through or the times.
This commit is contained in:
Marty Oehme 2025-02-28 08:27:20 +01:00
parent 19577a7c83
commit 96757895dc
Signed by: Marty
GPG key ID: 4E535BC19C61886E

View file

@ -1,16 +1,16 @@
#!/bin/sh
#!/usr/bin/env sh
[ -r ./conf ] && . ./conf
TIME_OPTS='-S \"09:00\" -s \"21:00\" -d \"3600\"'
TIME_OPTS="-S 08:00 -s 21:00 -d 3600"
if command -v curl >/dev/null 2>&1; then
loc=$(curl -s ipinfo.io | grep -e '"loc": ' | sed -e 's/^.*"loc": "\(.*\)",$/\1/')
if [ -n "$loc" ]; then
lat="$(echo "$loc" | cut -d, -f1)"
long="$(echo "$loc" | cut -d, -f2)"
TIME_OPTS="-l \"$lat\" -L \"$long\""
TIME_OPTS="-l $lat -L $long"
fi
fi
exec 2>&1
exec chpst -e "$TURNSTILE_ENV_DIR" wlsunset $TIME_OPTS "$@"
exec chpst -e "$TURNSTILE_ENV_DIR" wlsunset ${TIME_OPTS} "$@"