changelog shortlog graph tags branches changeset files file revisions raw help

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

changeset 319: c5956756f9e5
parent: 1f14280be401
child: 3e3cce6ed1f0
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 08 May 2024 23:11:35 -0400
permissions: -rw-r--r--
description: skel show
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
1
 ;;; Code:
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
2
 (uiop:define-package :bin/skel
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
3
     (:use :cl :std :cli/clap :vc :sb-ext)
285
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
4
   (:use-reexport :skel :log)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
5
   (:export :main))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
6
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
7
 (in-package :bin/skel)
281
1c6e8353a855 abolish nu build makefiles
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
8
 (in-readtable :shell)
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
9
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
10
 (defopt skc-help (print-help $cli))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
11
 (defopt skc-version (print-version $cli))
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
12
 (defopt skc-level *log-level* (setq *log-level* (or $val :info)))
284
597f34d43df7 x.lisp upgrades, skel upgrades, worked on shell reader macros
Richard Westhaver <ellis@rwest.io>
parents: 281
diff changeset
13
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
14
 ;; TODO 2023-10-13: almost there
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
15
 (defopt skc-config
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
16
   (init-user-skelrc (when $val (parse-file-opt $val))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
17
 
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
18
 (defcmd skc-edit
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
19
   (let ((file (or (when $args (pop $args)) (find-skelfile #P"."))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
20
     (cli/ed:run-emacsclient (namestring file))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
21
       
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
22
 (defcmd skc-init
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
23
   (let ((file (when $args (pop $args)))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
24
 	(name (if (> $argc 1) (pop $args))))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
25
     (handler-bind
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
26
 	((sb-ext:file-exists 
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
27
 	   #'(lambda (s)
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
28
 	       (uiop:println (format nil "file already exists: ~A" (or file *default-skelfile*)))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
29
 	       (let ((f2 (read-line)))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
30
 		 (if (string= f2 "") 
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
31
 		     (error s)
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
32
 		     (use-value f2 s))))))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
33
       (init-skelfile file name))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
34
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
35
 (defcmd skc-describe
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
36
   (describe
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
37
    (find-skelfile 
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
38
     (if $args (pathname (car $args))
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
39
 	#P".")
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
40
     :load t)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
41
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
42
 (defcmd skc-inspect
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
43
   (sb-ext:enable-debugger)
285
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
44
   (inspect
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
45
    (find-skelfile
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
46
     (if $args (pathname (car $args))
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
47
 	#P".")
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
48
     :load t)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
49
 
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
50
 (defcmd skc-id
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
51
   (println (std:format-sxhash (obj/id:id (find-skelfile #P"." :load t)))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
52
 
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
53
 (defun skc-show-case (sel)
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
54
   (std/string:string-case (sel :default (nyi!))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
55
     (":id" (std:format-sxhash (obj/id:id (find-skelfile #P"." :load t))))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
56
     (":config" (if (probe-file *user-skelrc*)
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
57
                    (describe (load-user-skelrc) t)
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
58
                    (describe *skel-user-config* nil)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
59
     (":vc" (sk-vc (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
60
     (":author" (sk-author (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
61
     (":scripts" (sk-scripts (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
62
     (":rules" (sk-rules (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
63
     (":description" (sk-description (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
64
     (":tags" (sk-tags (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
65
     (":docs" (sk-docs (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
66
     (":version" (sk-docs (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
67
     (":imports" (sk-imports (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
68
     (":license" (sk-license (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
69
     (":stash" (sk-stash (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
70
     (":store" (sk-store (find-skelfile #P"." :load t)))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
71
     (":cache" (sk-cache (find-skelfile #P"." :load t)))))
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
72
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
73
 (defcmd skc-show
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
74
   (if $args 
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
75
       (mapc (lambda (x) (when-let ((ret (skc-show-case x))) (println ret))) $args)
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
76
       (describe (find-skelfile #P"." :load t))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
77
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
78
 (defcmd skc-push
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
79
   (case (sk-vc (find-skelfile #P"." :load t))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
80
     (:hg (run-hg-command "push" $args t))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
81
 
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
82
 (defcmd skc-pull
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
83
   (case (sk-vc (find-skelfile #P"." :load t))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
84
     (:hg (run-hg-command "pull" (push "-u" $args) t))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
85
 
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
86
 (defcmd skc-status
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
87
   (case (sk-vc (find-skelfile #P"." :load t))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
88
     (:hg (progn
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
89
            (let ((proc (run-hg-command "status" nil :stream)))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
90
              (copy-stream (process-output proc) *standard-output*)
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
91
              (finish-output))))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
92
     (t (progn
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
93
             (let ((proc (run-git-command "status" nil :stream)))
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
94
               (copy-stream (process-output proc) *standard-output*)
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
95
               (finish-output))))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
96
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
97
 (defcmd skc-make
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
98
   (if $args
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
99
       (mapc (lambda (rule) (debug! (sk-run (sk-find-rule rule (find-skelfile #P"." :load t))))) $args)
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
100
       (debug! (sk-run (aref (sk-rules (find-skelfile #P"." :load t)) 0)))))
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
101
 
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
102
 (defcmd skc-run
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
103
   (if $args
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
104
       (mapc (lambda (script) (debug! (sk-run (sk-find-script script (find-skelfile #P"." :load t))))) $args)
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
105
       (required-argument :script)))
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
106
 
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
107
 (defcmd skc-shell
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
108
   (if $args
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
109
       (nyi!)
317
1f14280be401 repl tweaks
Richard Westhaver <ellis@rwest.io>
parents: 316
diff changeset
110
       (let ((*no-exit* t))
1f14280be401 repl tweaks
Richard Westhaver <ellis@rwest.io>
parents: 316
diff changeset
111
         (in-package :skel)
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
112
         (use-package :std-user)
317
1f14280be401 repl tweaks
Richard Westhaver <ellis@rwest.io>
parents: 316
diff changeset
113
         ;; (sb-ext:enable-debugger)
1f14280be401 repl tweaks
Richard Westhaver <ellis@rwest.io>
parents: 316
diff changeset
114
         (require :sb-aclrepl)
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
115
         (init-skel-vars)
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
116
         (sb-impl::toplevel-repl nil))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
117
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
118
 (define-cli $cli
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
119
   :name "skel"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
120
   :version "0.1.1"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
121
   :description "A hacker's project compiler and build tool."
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
122
   :thunk skc-describe
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
123
   :opts (make-opts 
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
124
 	  (:name "help" :global t :description "print this message" 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
125
 	   :thunk skc-help)
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
126
 	  (:name "version" :global t :description "print version" 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
127
 	   :thunk skc-version)
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
128
 	  (:name "level" :global t :description "set log level (debug,info,trace,warn)"
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
129
 	   :thunk skc-level)
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
130
 	  (:name "config" :global t :description "set a custom skel user config" :kind file
319
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
131
 	   :thunk skc-config)
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
132
 	  (:name "input" :global t :description "input source" :kind string)
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
133
 	  (:name "output" :global t :description "output target" :kind string))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
134
   :cmds (make-cmds
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
135
 	  (:name init
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
136
 	   :description "initialize a skelfile in the current directory"
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
137
 	   :opts (make-opts (:name "name" :description "project name" :kind string))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
138
 	   :thunk skc-init)
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
139
           (:name describe
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
140
            :description "describe a skelfile"
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
141
            :thunk skc-describe)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
142
 	  (:name show
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
143
 	   :description "show project slots"
158
ellis <ellis@rwest.io>
parents: 156
diff changeset
144
 	   :opts (make-opts 
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
145
                    (:name "file" :description "path to skelfile" :kind file)
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
146
                    (:name "user" :description "print user configuration")
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
147
                    (:name "system" :description "print system configuration"))
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
148
 	   :thunk skc-show)
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
149
           (:name id
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
150
            :description "print the project id"
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
151
            :thunk skc-id)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
152
 	  (:name inspect
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
153
 	   :description "inspect the project skelfile"
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
154
 	   :opts (make-opts (:name "file" :description "path to skelfile" :kind file))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
155
 	   :thunk skc-inspect)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
156
 	  (:name make
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
157
 	   :description "build project targets"
309
94d358919982 refactor rust, fixing cli issues and rdb error handling
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
158
 	   :opts (make-opts (:name "target" :description "target to build" :kind string))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
159
 	   :thunk skc-make)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
160
 	  (:name run
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
161
 	   :description "run a script or command"
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
162
            :thunk skc-run)
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
163
           (:name status
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
164
            :description "print the vc status"
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
165
            :thunk skc-status)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
166
 	  (:name push
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
167
 	   :description "push the current project upstream"
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
168
 	   :thunk skc-push)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
169
 	  (:name pull
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
170
 	   :description "pull the current project from remote"
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
171
            :thunk skc-pull)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
172
 	  (:name clone
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
173
 	   :description "clone a remote project")
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
174
 	  (:name commit
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
175
 	   :description "commit changes to the project vc")
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
176
 	  (:name edit
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
177
 	   :description "edit a project file in emacs."
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
178
            :thunk skc-edit)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
179
 	  (:name shell
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
180
 	   :description "open the sk-shell interpreter"
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
181
            :thunk skc-shell)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
182
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
183
 (defun run ()
284
597f34d43df7 x.lisp upgrades, skel upgrades, worked on shell reader macros
Richard Westhaver <ellis@rwest.io>
parents: 281
diff changeset
184
   (let ((*log-level* :info))
186
2f4dba134218 nu work and update skel readtable to :shell
Richard Westhaver <ellis@rwest.io>
parents: 176
diff changeset
185
     (in-readtable :shell)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 186
diff changeset
186
     (with-cli (opts cmds) $cli
231
Richard Westhaver <ellis@rwest.io>
parents: 230
diff changeset
187
       (load-skelrc)
158
ellis <ellis@rwest.io>
parents: 156
diff changeset
188
       ;; TODO 2024-01-01: need to parse out CMD opts from args slot - they still there
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
189
       (do-opt (find-opt $cli "level"))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
190
       (do-cmd $cli)
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
191
       (debug-opts $cli))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
192
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
193
 (defmain ()
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
194
   (run)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
195
   (sb-ext:exit :code 0))