diff --git a/.bin/anki-poem.sh b/.bin/anki-poem.sh new file mode 100755 index 0000000..6105a64 --- /dev/null +++ b/.bin/anki-poem.sh @@ -0,0 +1,29 @@ +#!/bin/sh +file="${1?please supply a poetry file}" +[ -f "$file" ] || { + echo "'$file' is no file" + exit 1 +} + +poem="$(mktemp)" +clean () { + rm "$poem" +} +trap clean EXIT +sed '/^$/d' "$file" > "$poem" + +htmlize() { + awk 'ORS="
"' \ + | head -c -5 # remove final
characters +} + +for line_number in $(seq 1 "$(wc -l "$poem" | cut -d' ' -f1)"); do + if [ "$line_number" -gt 3 ] && [ "$line_number" -gt 1 ]; then + sed -n "$((line_number - 3)),$((line_number - 1))p" "$poem" + else + sed -n "1,$((line_number - 1))p" "$poem" + fi | htmlize + printf '\t' + sed -n "${line_number},+1p" "$poem" | htmlize + printf '\n' +done diff --git a/.bin/watson2fdf.sh b/.bin/watson2fdf.sh new file mode 100755 index 0000000..bf19ed2 --- /dev/null +++ b/.bin/watson2fdf.sh @@ -0,0 +1,26 @@ +project=Filli +year=2022 + +for month in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec; do + from="$(date +%F -d "$month 1, $year")" + to="$(date +%F -d "$month 1, $year + 1 month")" + watson report --json --from "$from" --to "$to" --project "$project" +done | jq --slurp ' + def in_array($arr): + . as $value | any($arr[]; . == $value); + + map( + ["engadin-app","fysiweb","val-muestair","mia-engiadina","ol"] as $official_projects + | (.timespan.from | .[0:7]) as $timespan + | .projects | .[0] + | .time as $total_time + | .tags + | select(. != null) + | map(select(.name | in_array($official_projects))) + | (map(.time)|add) as $official_time + | map({key:.name, value:.time}) | from_entries + | .other |= ($total_time - $official_time) + | map_values(. / (60*60) | ceil) + | .month |= $timespan + ) +' diff --git a/lib/i3status-rust.nix b/lib/i3status-rust.nix index 9b8f121..b603fa3 100644 --- a/lib/i3status-rust.nix +++ b/lib/i3status-rust.nix @@ -211,12 +211,12 @@ in { | ${pkgs.coreutils}/bin/head -1 \ | ${pkgs.coreutils}/bin/date --date="$(cat)" +%s )" \ - '($nextEvent - now) as $deltaT - | { + '{ text: $now, icon: "time", state: ( - if $deltaT < (5 * 60) then + ($nextEvent - now) as $deltaT + | if $deltaT < (5 * 60) then "Critical" elif $deltaT < (15 * 60) then "Warning"