changeset 650: | 692dfd7f02d0 |
parent: | 74e563ed4537 |
child: | af486e0a40c9 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 13 Sep 2024 20:30:55 -0400 |
permissions: | -rw-r--r-- |
description: | update with-cli syntax |
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 |
|
561 | 7 | (:use :cl :organ :std :cli :log :clap) |
96 | 8 | (:export :main)) |
9 | ||
10 | (in-package :bin/organ) |
|
561 | 11 | (defopt organ-help (print-help *cli*)) |
12 | (defopt organ-version (print-version *cli*)) |
|
13 | (defopt organ-log-level (setq *log-level* (if *arg* t :info))) |
|
14 | ;; (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
|
15 | (defcmd organ-describe |
561 | 16 | (if *args* |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
17 | ;; TODO typed args |
561 | 18 | (describe (org-parse :document (pathname (car *args*)))) |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
19 | (describe (org-parse :document #P"readme.org")))) |
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
20 | |
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
21 | (defcmd organ-inspect |
561 | 22 | (if *args* |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
23 | ;; TODO typed args |
561 | 24 | (inspect (org-parse :document (pathname (car *args*)))) |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
25 | (inspect (org-parse :document #P"readme.org")))) |
96 | 26 | |
27 | (defcmd organ-show |
|
561 | 28 | (if *args* |
29 | (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
|
30 | (error! "missing file arg"))) |
96 | 31 | |
32 | (defcmd organ-parse |
|
561 | 33 | (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
|
34 | (describe (org-parse :document input)))) |
96 | 35 | |
561 | 36 | (define-cli *cli* |
96 | 37 | :name "organ" |
38 | :version "0.0.1" |
|
39 | :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
|
40 | :thunk 'organ-describe |
567 | 41 | :opts ((:name "level" :global t :description "set the log level" :thunk organ-log-level) |
42 | (:name "help" :global t :description "print help" :thunk organ-help) |
|
43 | (:name "version" :global t :description "print version" :thunk organ-version) |
|
44 | ;; (:name "output" :description "output file" :kind file :thunk organ-output) |
|
45 | ) |
|
46 | :cmds ((:name inspect |
|
47 | :description "inspect an org file" |
|
48 | :thunk organ-inspect) |
|
49 | (:name show |
|
50 | :description "display local org info" |
|
51 | :thunk organ-show) |
|
52 | (:name describe |
|
53 | :description "describe local org info" |
|
54 | :thunk organ-describe) |
|
55 | (:name parse |
|
56 | :thunk organ-parse))) |
|
96 | 57 | |
58 | (defun run () |
|
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
59 | (let ((*log-level* :info)) |
650 | 60 | (with-cli (*cli* opts cmds args) (cli:args) |
561 | 61 | (do-cmd *cli*) |
62 | (debug-opts *cli*)))) |
|
96 | 63 | |
64 | (defmain () |
|
65 | (run) |
|
66 | (sb-ext:exit :code 0)) |