changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/bin/organ.lisp

changeset 647: 74e563ed4537
parent: 35bb0d5ec95e
child: 692dfd7f02d0
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 11 Sep 2024 21:40:01 -0400
permissions: -rw-r--r--
description: cli and rt/fuzz
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
1
 ;;; organ.lisp --- Org-mode utility
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Code:
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
6
 (defpackage :bin/organ
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
7
   (:use :cl :organ :std :cli :log :clap)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
8
   (:export :main))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
9
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
10
 (in-package :bin/organ)
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
11
 (defopt organ-help (print-help *cli*))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
12
 (defopt organ-version (print-version *cli*))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
13
 (defopt organ-log-level (setq *log-level* (if *arg* t :info)))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
16
   (if *args*
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
17
       ;; TODO typed args
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
22
   (if *args*
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
23
       ;; TODO typed args
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
26
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
27
 (defcmd organ-show
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
28
   (if *args*
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
31
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
32
 (defcmd organ-parse
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
35
 
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
36
 (define-cli *cli*
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
37
   :name "organ"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
38
   :version "0.0.1"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
41
   :opts ((:name "level" :global t :description "set the log level" :thunk organ-log-level)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
42
 	 (:name "help" :global t :description "print help" :thunk organ-help)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
43
 	 (:name "version" :global t :description "print version" :thunk organ-version)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
44
          ;; (:name "output" :description "output file" :kind file :thunk organ-output)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
45
          )
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
46
   :cmds ((:name inspect 
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
47
           :description "inspect an org file"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
48
           :thunk organ-inspect)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
49
          (:name show
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
50
           :description "display local org info"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
51
           :thunk organ-show)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
52
          (:name describe
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
53
           :description "describe local org info"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
54
           :thunk organ-describe)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
55
 	 (:name parse
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
56
 	  :thunk organ-parse)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
57
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
58
 (defun run ()
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
59
   (let ((*log-level* :info))
647
74e563ed4537 cli and rt/fuzz
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
60
     (with-cli (*cli* opts cmds args) ()
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
61
       (do-cmd *cli*)
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
62
       (debug-opts *cli*))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
63
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
64
 (defmain ()
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
65
   (run)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
66
   (sb-ext:exit :code 0))