dotfiles.git

commit bd2e9fc936cc6b3cad8efe414e147e8fd8df98a8

Author: Adam <git@apiote.xyz>

water script

 .local/bin/drank | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++
 .local/bin/drunk | 1 


diff --git a/.local/bin/drank b/.local/bin/drank
new file mode 100755
index 0000000000000000000000000000000000000000..f8d4e28a2039ca88f9d30a2e13e717e3a6b7bfb5
--- /dev/null
+++ b/.local/bin/drank
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+mkdir -p "$HOME/.local/state/water"
+
+if [ ! -f "$HOME/.local/state/water/water.db" ]
+then
+	sqlite3 "$HOME/.local/state/water/water.db" "create table devices (device_id text, device_type text)"
+	meID=$(uuidgen -r)
+	sqlite3 "$HOME/.local/state/water/water.db" "insert into devices values('$meID', 'me')"
+	sqlite3 "$HOME/.local/state/water/water.db" "create table intakes (date text, time text, amount int, drink text, device_id text)"
+fi
+
+case "$(basename "$0")" in
+	drank)
+		if [ -z "$1" ] || [ -z "$2" ]
+		then
+			echo 'usage drank <amount> <drink> [time]'
+			exit 1
+		fi
+		if echo "$1" | grep -Eq '^[0-9]+ml$'
+		then
+			amount=$(echo "$1" | grep -Eq '^[0-9]+')
+		elif echo "$1" | grep -Eq '^[0-9.]+$'
+		then
+			amount=$(echo "$1" | grep -E '^([0-9]+(\.[0-9]+)?)|(\.[0-9]+)$' -o)
+			amount=$(echo "$amount * 1000" | bc)
+		else
+			case "$1" in
+				glass) amount=100 ;;
+				cup) amount=250 ;;
+				can) amount=300 ;;
+				mug) amount=400 ;;
+				Mug) amount=500 ;;
+				bottle) amount=700 ;;
+			esac
+		fi
+		if [ -z "$3" ]
+		then
+			date=$(date '+%Y%m%d')
+			time=$(date '+%H%M%S')
+		else
+			date=$(echo "$3" | cut -c -8)
+			time="$(echo "$3" | cut -c 8-)00"
+		fi
+		meID=$(sqlite3 "$HOME/.local/state/water/water.db" -noheader "select device_id from devices where device_type = 'me'" 2>/dev/null)
+		sqlite3 "$HOME/.local/state/water/water.db" "insert into intakes values('$date', '$time', $amount, '$2', '$meID')" 2>/dev/null
+		echo "ok, drank ${amount} ml $2"
+		;;
+	drunk)
+		today=$(date '+%Y%m%d')
+		sqlite3 "$HOME/.local/state/water/water.db" -noheader "select amount, drink, time from devices join intakes using(device_id) where device_type = 'me' and date = '$today'" 2>/dev/null
+		;;
+esac




diff --git a/.local/bin/drunk b/.local/bin/drunk
new file mode 120000
index 0000000000000000000000000000000000000000..e01cd44bbdca69eb8687a3ff62156522f058611d
--- /dev/null
+++ b/.local/bin/drunk
@@ -0,0 +1 @@
+drank
\ No newline at end of file