From e50fb3dbbebc144adadaa7d0d7945e77587df393 Mon Sep 17 00:00:00 2001 From: Jakub Czajka Date: Tue, 2 Jan 2024 13:00:11 +0100 Subject: [PATCH] Add a script for tracking sleep schedule. --- metrics.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ sleep.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 metrics.sh create mode 100644 sleep.sh diff --git a/metrics.sh b/metrics.sh new file mode 100644 index 0000000..ee1fc09 --- /dev/null +++ b/metrics.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# Copyright (c) 2024 Jakub Czajka +# License: GPL-3.0 or later. + +. /etc/environment + +PAGE=" + + + + + Metrics + + + +
+
+ Sleep + + + + + + +
+
+ +" + +echo "HTTP/1.1 200 OK" +echo "Content-Type: text/html" +echo "${PAGE}" | sed 's/^[ \t]*//g' diff --git a/sleep.sh b/sleep.sh new file mode 100644 index 0000000..46a3a29 --- /dev/null +++ b/sleep.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# Copyright (c) 2024 Jakub Czajka +# License: GPL-3.0 or later. + +. /etc/environment + +request_body=$(echo "${REQUEST_BODY}" | /usr/bin/python3 -c "\ +import sys; +from urllib.parse import unquote_plus; +print(unquote_plus(sys.stdin.read()));") + +get_query_param() { + echo "${request_body}" | sed "s/^.*${1}=// ; s/\&.*$//" +} + +query_db() { + /usr/bin/psql --user=metrics_tracker --dbname="${METRICS_DB}" \ + --tuples-only --no-align --command="${1}" +} + +sleep_date=$(get_query_param "date") +start=$(get_query_param "start") +finish=$(get_query_param "finish") +sleep_id=$(query_db "\ +WITH new_sleep_id AS ( + INSERT INTO sleep ( + date, + start, + finish + ) + VALUES ( + '${sleep_date}', + '${start}', + '${finish}' + ) + RETURNING id +) +SELECT * +FROM new_sleep_id;") + +PAGE=" + + + + + Purchase + + + +Recorded new sleep (id=${sleep_id}) from ${start} to ${finish}. + +" + +echo "HTTP/1.1 200 OK" +echo "Content-Type: text/html" +echo "${PAGE}" | sed 's/^[ \t]*//g' -- 2.39.5