summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/goprecords-upload-client.sh38
1 files changed, 27 insertions, 11 deletions
diff --git a/contrib/goprecords-upload-client.sh b/contrib/goprecords-upload-client.sh
index e235c51..7e04cd9 100755
--- a/contrib/goprecords-upload-client.sh
+++ b/contrib/goprecords-upload-client.sh
@@ -1,10 +1,20 @@
#!/bin/sh
set -e
GOPRECORDS_BASE_URL="${GOPRECORDS_BASE_URL:-https://goprecords.f3s.buetow.org}"
-GOPRECORDS_HOST="${GOPRECORDS_HOST:?set GOPRECORDS_HOST (e.g. f0, pi0)}"
-GOPRECORDS_TOKEN_FILE="${GOPRECORDS_TOKEN_FILE:-/etc/goprecords-upload.token}"
+GOPRECORDS_HOST="${GOPRECORDS_HOST:?set GOPRECORDS_HOST (e.g. f0, pi0, earth)}"
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:${PATH}"
+_default_token_file() {
+ if [ "$(id -u)" = "0" ]; then
+ printf '/etc/goprecords-upload.token'
+ else
+ config="${XDG_CONFIG_HOME:-${HOME}/.config}"
+ printf '%s/goprecords-upload-%s/token' "$config" "$GOPRECORDS_HOST"
+ fi
+}
+
+GOPRECORDS_TOKEN_FILE="${GOPRECORDS_TOKEN_FILE:-$(_default_token_file)}"
+
if ! test -r "$GOPRECORDS_TOKEN_FILE"; then
echo "goprecords-upload-client: cannot read $GOPRECORDS_TOKEN_FILE" >&2
exit 1
@@ -23,17 +33,21 @@ upload() {
"${GOPRECORDS_BASE_URL}/upload/${GOPRECORDS_HOST}/${kind}"
}
-records_path=
-if test -f /var/spool/uptimed/records; then
- records_path=/var/spool/uptimed/records
-elif test -f /var/db/uptimed/records; then
- records_path=/var/db/uptimed/records
-elif test -f /usr/local/var/uptimed/records; then
- records_path=/usr/local/var/uptimed/records
-else
+_find_records() {
+ for p in \
+ /var/spool/uptimed/records \
+ /var/db/uptimed/records \
+ /usr/local/var/uptimed/records; do
+ if test -f "$p"; then
+ printf '%s' "$p"
+ return 0
+ fi
+ done
echo "goprecords-upload-client: no uptimed records file found" >&2
exit 1
-fi
+}
+
+records_path=$(_find_records)
tmp=$(mktemp)
trap 'rm -f "$tmp"' 0 INT TERM HUP
@@ -51,6 +65,8 @@ fi
if test -r /etc/os-release; then
upload os.txt /etc/os-release
+elif test -r /var/run/dmesg.boot; then
+ upload os.txt /var/run/dmesg.boot
else
uname -a >"$tmp"
upload os.txt "$tmp"