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