summaryrefslogtreecommitdiff
path: root/journal-reminder.ros
diff options
context:
space:
mode:
Diffstat (limited to 'journal-reminder.ros')
-rwxr-xr-xjournal-reminder.ros36
1 files changed, 36 insertions, 0 deletions
diff --git a/journal-reminder.ros b/journal-reminder.ros
new file mode 100755
index 0000000..500be53
--- /dev/null
+++ b/journal-reminder.ros
@@ -0,0 +1,36 @@
+#!/bin/sh
+#|-*- mode:lisp -*-|#
+#|
+exec ros -Q -- $0 "$@"
+|#
+
+(defpackage :me.bsima.journal-reminder (:use :cl))
+(in-package :me.bsima.journal-reminder)
+
+(defparameter *journal-dir* "/home/ben/Dropbox/org/journal")
+
+(defun today-string ()
+ (multiple-value-bind (second minute hour day month year)
+ (get-decoded-time)
+ (declare (ignore second minute hour))
+ (format nil "~d~d~d" year month day)))
+
+(defun mk-journal-file (journal-dir date)
+ (format nil "~a/~a" journal-dir date))
+
+(defun journaled-today? ()
+ (let ((journal-file (mk-journal-file *journal-dir* (today-string))))
+ (if (probe-file journal-file)
+ T
+ nil)))
+
+(defun journal-reminder (&rest argv)
+ (declare (ignorable argv))
+ ;; If journal-dir argumen is supplied, use it
+ (let ((*journal-dir* (or (first argv) *journal-dir*)))
+ (if (journaled-today?)
+ nil
+ (format t "You still need to journal!~%"))))
+
+(defun main (&rest argv)
+ (apply #'journal-reminder argv))