changelog shortlog graph tags branches changeset files file revisions raw help

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

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
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
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
8
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
9
 (in-package :bin/organ)
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
10
 (defopt organ-help (print-help *cli*))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
11
 (defopt organ-version (print-version *cli*))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
12
 (defopt organ-log-level (setq *log-level* (if *arg* t :info)))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
15
   (if *args*
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
16
       ;; TODO typed args
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
21
   (if *args*
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
22
       ;; TODO typed args
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
25
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
26
 (defcmd organ-show
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
27
   (if *args*
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
30
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
31
 (defcmd organ-parse
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
36
   :name "organ"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
37
   :version "0.0.1"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
40
   :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
41
 	 (:name "help" :global t :description "print help" :thunk organ-help)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
42
 	 (:name "version" :global t :description "print version" :thunk organ-version)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
43
          ;; (:name "output" :description "output file" :kind file :thunk organ-output)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
44
          )
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
45
   :cmds ((:name inspect 
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
46
           :description "inspect an org file"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
47
           :thunk organ-inspect)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
48
          (:name show
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
49
           :description "display local org info"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
50
           :thunk organ-show)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
51
          (:name describe
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
52
           :description "describe local org info"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
53
           :thunk organ-describe)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
54
 	 (:name parse
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
55
 	  :thunk organ-parse)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
56
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
60
       (do-cmd *cli*)
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
61
       (debug-opts *cli*))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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))