changeset 651: | af486e0a40c9 |
parent: | 692dfd7f02d0 |
child: | 2e7d93b892a5 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Sat, 14 Sep 2024 22:13:06 -0400 |
permissions: | -rw-r--r-- |
description: | multi-binaries, working on removing x.lisp |
96 | 1 | ;;; organ.lisp --- Org-mode utility |
2 | ||
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
3 | ;; |
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
4 | |
96 | 5 | ;;; Code: |
6 | (defpackage :bin/organ |
|
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
650
diff
changeset
|
7 | (:use :cl :organ :std :cli :log :clap)) |
96 | 8 | |
9 | (in-package :bin/organ) |
|
561 | 10 | (defopt organ-help (print-help *cli*)) |
11 | (defopt organ-version (print-version *cli*)) |
|
12 | (defopt organ-log-level (setq *log-level* (if *arg* t :info))) |
|
13 | ;; (defopt organ-output (when *arg* (trace! (or *arg* "output.organ")))) |
|
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
14 | (defcmd organ-describe |
561 | 15 | (if *args* |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
16 | ;; TODO typed args |
561 | 17 | (describe (org-parse :document (pathname (car *args*)))) |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
18 | (describe (org-parse :document #P"readme.org")))) |
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
19 | |
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
20 | (defcmd organ-inspect |
561 | 21 | (if *args* |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
22 | ;; TODO typed args |
561 | 23 | (inspect (org-parse :document (pathname (car *args*)))) |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
24 | (inspect (org-parse :document #P"readme.org")))) |
96 | 25 | |
26 | (defcmd organ-show |
|
561 | 27 | (if *args* |
28 | (print (org-parse-lines t (uiop:read-file-string (car *args*)))) |
|
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
29 | (error! "missing file arg"))) |
96 | 30 | |
31 | (defcmd organ-parse |
|
561 | 32 | (let ((input (if *args* (car *args*) #P"readme.org"))) |
309
94d358919982
refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents:
308
diff
changeset
|
33 | (describe (org-parse :document input)))) |
96 | 34 | |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
650
diff
changeset
|
35 | (define-cli *organ-cli* |
96 | 36 | :name "organ" |
37 | :version "0.0.1" |
|
38 | :description "org-mode toolbox" |
|
584
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
567
diff
changeset
|
39 | :thunk 'organ-describe |
567 | 40 | :opts ((:name "level" :global t :description "set the log level" :thunk organ-log-level) |
41 | (:name "help" :global t :description "print help" :thunk organ-help) |
|
42 | (:name "version" :global t :description "print version" :thunk organ-version) |
|
43 | ;; (:name "output" :description "output file" :kind file :thunk organ-output) |
|
44 | ) |
|
45 | :cmds ((:name inspect |
|
46 | :description "inspect an org file" |
|
47 | :thunk organ-inspect) |
|
48 | (:name show |
|
49 | :description "display local org info" |
|
50 | :thunk organ-show) |
|
51 | (:name describe |
|
52 | :description "describe local org info" |
|
53 | :thunk organ-describe) |
|
54 | (:name parse |
|
55 | :thunk organ-parse))) |
|
96 | 56 | |
57 | (defun run () |
|
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
58 | (let ((*log-level* :info)) |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
650
diff
changeset
|
59 | (with-cli (*organ-cli* opts cmds args) (cli:args) |
561 | 60 | (do-cmd *cli*) |
61 | (debug-opts *cli*)))) |
|
96 | 62 | |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
650
diff
changeset
|
63 | (defmain start-organ () |
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
650
diff
changeset
|
64 | (run)) |