diff options
Diffstat (limited to 'journal-reminder.ros')
-rwxr-xr-x | journal-reminder.ros | 36 |
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)) |