40 lines
875 B
Common Lisp
40 lines
875 B
Common Lisp
(ql:quickload '(unix-opts mito cl-ppcre croatoan local-time))
|
|
|
|
;; Migrate database structure
|
|
(mito:connect-toplevel :sqlite3 :database-name #P"timer.db")
|
|
(setq mito:*auto-migration-mode* t)
|
|
(load "database/category.lisp")
|
|
(load "database/run.lisp")
|
|
|
|
;; Utils
|
|
(load "util.lisp")
|
|
|
|
;; Config file importing
|
|
(load "config.lisp")
|
|
|
|
;; Load the UI
|
|
(load "ui.lisp")
|
|
|
|
;; The timing logic
|
|
(load "speedrun.lisp")
|
|
|
|
;; Define command line arguments
|
|
(opts:define-opts
|
|
(:name :import
|
|
:description "create splits and category from a config file"
|
|
:short #\i
|
|
:long "import"
|
|
:arg-parser #'identity))
|
|
|
|
(defmacro when-option ((options opt) &body body)
|
|
`(let ((it (getf ,options ,opt)))
|
|
(when it
|
|
,@body)))
|
|
(defun main ()
|
|
(let ((options (opts:get-opts)))
|
|
(when-option (options :import)
|
|
(import-config (getf options :import))))
|
|
(run-ui))
|
|
|
|
(main)
|