diff options
Diffstat (limited to 'contrib')
| -rwxr-xr-x | contrib/goprecords-upload-client.sh | 38 |
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" |
