Recently Written · git

timeclock

Spacemacs layer for tracking your time.

git clone https://github.com/equwal/timeclock

Log | Files | Refs


commit 5ea5a454993dad0f0e37363e480bc1d576202fd8
Spenser Truex <spensertruexonline@gmail.com>
2019-09-11 15:46:55 -0700

Added timelog selector function to separate public GSP stuff.

 funcs.el       |  0
 keybindings.el | 28 ++++++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/funcs.el b/funcs.el
new file mode 100644
index 0000000..e69de29
diff --git a/keybindings.el b/keybindings.el
index ec980f8..1e0f820 100644
--- a/keybindings.el
+++ b/keybindings.el
@@ -1,7 +1,31 @@
+(defvar timeclock-log-dirs '(("g" "~/.emacs.d/private/timelogs/gsp-log")
+                             ("p" "~/.emacs.d/private/timelogs/private-log")))
+(defvar timeclock-in-dir timeclock-file)
+(defvar timeclock-temp-file timeclock-file)
+(defun timeclock-in-selector ()
+  (interactive)
+  (labels ((inner
+            (warn-next)
+            (let ((selection (downcase (read-from-minibuffer
+                                        (if warn-next
+                                            "INVALID; [G]sp or [P]rivate timelog? [p/g]"
+                                          "[G]sp or [P]rivate timelog? [p/g]")))))
+              (if (member selection (mapcar #'car timeclock-log-dirs))
+                  (progn (setf timeclock-temp-file timeclock-file)
+                         (setf timeclock-file (cadr (assoc selection timeclock-log-dirs)))
+                         (timeclock-in 0 nil t))
+                (inner t)))))
+    (inner nil)))
+(defun timeclock-out-selector ()
+  (interactive)
+  ;; KLUDGE: This function should not need to exist. timeclock-in-selector is
+  ;; the only special one that should be needed.
+  (timeclock-out 0 nil t)
+  (setf timeclock-file timeclock-temp-file))
 (spacemacs/declare-prefix "tt" "timeclock")
 (spacemacs/set-leader-keys
-   "tti"          'timeclock-in
-   "tto"          'timeclock-out
+   "tti"          'timeclock-in-selector
+   "tto"          'timeclock-out-selector
    "ttc"          'timeclock-change
    "ttr"          'timeclock-reread-log
    "ttu"          'timeclock-update-mode-line