From 166a7b30f8e6b42b72169ad98bf0d8316408c314 Mon Sep 17 00:00:00 2001 From: Andy Lu Date: Mon, 11 Dec 2023 12:44:58 -0500 Subject: [PATCH] Add `alu-journal-output` --- alu-journal-output | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 alu-journal-output diff --git a/alu-journal-output b/alu-journal-output new file mode 100644 index 0000000..88134a3 --- /dev/null +++ b/alu-journal-output @@ -0,0 +1,47 @@ +#!/usr/bin/env bb + + +(require '[babashka.deps :as deps]) +(deps/add-deps + '{:deps {io.github.lispyclouds/bblgum {:git/sha "1d4de3d49b84f64d1b71930fa1161f8d2622a4d9"} + dev.andylu/clj-lipgloss {:local/root "/home/andy/git/clj-lipgloss"} + com.widdindustries/cljc.java-time {:mvn/version "0.1.21"}}}) + + +(ns dev.andylu.journal-output + (:require [bblgum.core :as b] + [clj-lipgloss.core :as lg + :use [log]] + [cljc.java-time.local-date :as ld] + [cljc.java-time.temporal.chrono-unit :use [days]])) + + +(let [today (ld/now) + end-of-year (ld/of (. today getYear) + 12 + 31) + span (-> (. today + until + end-of-year + days) + inc) + current-page (-> (b/gum :input :prompt "Current page: ") + :result + first + Integer/parseInt) + end-page 228 + page-per-day (-> current-page + (+ (* -1 end-page)) + (* -1) + inc + (/ (float span)))] + (log :info + (format "There are %s days between and including %s and %s" + span + today + end-of-year)) + (log :info + (format "To get to page %s by the end of the year from %s, you have to write %s pages per day" + end-page + current-page + page-per-day)))