changeset 662: | a53be64410c5 |
parent: | 65102f74d1ae |
child: | cc89b337384b |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Sat, 21 Sep 2024 18:18:14 -0400 |
permissions: | -rw-r--r-- |
description: | removed skel project env/def, added to BIND |
96 | 1 | ;;; Code: |
323
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
2 | |
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
3 | ;; TODO 2024-05-09: add shell configurables to rules - maybe at sk-command |
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
4 | ;; level. :INPUT :WAIT :OUTPUT |
409
3e7d5e10eb42
add ssl feature, skel fix
Richard Westhaver <ellis@rwest.io>
parents:
388
diff
changeset
|
5 | (in-package :std-user) |
384 | 6 | (defpkg :bin/skel |
647 | 7 | (:use :cl :std :cli |
8 | :vc :sb-ext :skel :log :cli/clap/util |
|
508 | 9 | :dat/sxp #+tools :skel/tools/viz) |
645 | 10 | (:import-from :cli/shell :*shell-input* :*shell-directory*) |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
647
diff
changeset
|
11 | (:use :cli/tools/sbcl)) |
96 | 12 | |
13 | (in-package :bin/skel) |
|
281
1c6e8353a855
abolish nu build makefiles
Richard Westhaver <ellis@rwest.io>
parents:
231
diff
changeset
|
14 | (in-readtable :shell) |
311 | 15 | |
623 | 16 | (defopt skc-help (print-help *cli*)) |
561 | 17 | (defopt skc-version (print-version *cli*)) |
384 | 18 | (defopt skc-level *log-level* |
567 | 19 | (setq *log-level* (if *arg* (if (stringp *arg*) |
20 | (sb-int:keywordicate (string-upcase *arg*)) |
|
21 | *arg*) |
|
22 | :info))) |
|
284
597f34d43df7
x.lisp upgrades, skel upgrades, worked on shell reader macros
Richard Westhaver <ellis@rwest.io>
parents:
281
diff
changeset
|
23 | |
652 | 24 | (defopt skc-config (load-user-skelrc (or *arg* *user-skelrc*))) |
96 | 25 | |
311 | 26 | (defcmd skc-edit |
561 | 27 | (let ((file (or (when *args* (pop *args*)) (sk-path *skel-project*)))) |
311 | 28 | (cli/ed:run-emacsclient (namestring file)))) |
321 | 29 | |
96 | 30 | (defcmd skc-init |
561 | 31 | (let ((file (when *args* (pop *args*))) |
563 | 32 | (name (when (> *argc* 1) (pop *args*)))) |
33 | ;; TODO: test, may need to be |
|
384 | 34 | ;; sequential for side-effect |
35 | ;; of pop |
|
289
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
36 | (handler-bind |
381
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
37 | ((sb-ext:file-exists |
289
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
38 | #'(lambda (s) |
381
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
39 | (std:println (format nil "file already exists: ~A" (or file *default-skelfile*))) |
289
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
40 | (let ((f2 (read-line))) |
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
41 | (if (string= f2 "") |
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
42 | (error s) |
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
43 | (use-value f2 s)))))) |
c4682fedd73d
added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents:
287
diff
changeset
|
44 | (init-skelfile file name)))) |
96 | 45 | |
46 | (defcmd skc-describe |
|
311 | 47 | (describe |
561 | 48 | (if (> *argc* 0) |
49 | (find-skelfile (pathname (car *args*)) :load t) |
|
500 | 50 | (or *skel-project* *skel-user-config* *skel-system-config*)))) |
51 | ||
96 | 52 | |
53 | (defcmd skc-inspect |
|
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
286
diff
changeset
|
54 | (sb-ext:enable-debugger) |
330
7c3bbb64cc73
print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents:
327
diff
changeset
|
55 | (setq *no-exit* t) |
285 | 56 | (inspect |
57 | (find-skelfile |
|
561 | 58 | (if *args* (pathname (car *args*)) |
285 | 59 | #P".") |
60 | :load t))) |
|
96 | 61 | |
508 | 62 | #+tools |
63 | (defcmd skc-view |
|
561 | 64 | (if *args* |
65 | (let ((stuff (loop for a in *args* |
|
508 | 66 | collect (sk-slot-case a)))) |
67 | (sk-view (if (= 1 (length stuff)) (car stuff) stuff))) |
|
68 | (sk-view (if (boundp '*skel-project*) *skel-project* |
|
567 | 69 | (if (boundp '*skel-user-config*) *skel-user-config* |
70 | (if (boundp '*skel-system-config*) *skel-system-config* |
|
71 | (skel-simple-error "skel config files not installed"))))))) |
|
508 | 72 | |
311 | 73 | (defcmd skc-id |
74 | (println (std:format-sxhash (obj/id:id (find-skelfile #P"." :load t))))) |
|
75 | ||
570 | 76 | (defun call-with-args (action args) |
645 | 77 | (let* ((*default-pathname-defaults* *skel-path*)) |
78 | (if (null args) |
|
79 | (sk-call *skel-project* action) |
|
80 | (mapc (lambda (x) |
|
652 | 81 | (sk-call *skel-project* (keywordicate (symbol-name action) '- (string-upcase x)))) |
645 | 82 | args)))) |
516
f68a5996a2b1
skel updates, sketch of sk-path parser
Richard Westhaver <ellis@rwest.io>
parents:
508
diff
changeset
|
83 | |
567 | 84 | (defcmd skc-compile |
570 | 85 | (call-with-args :compile *args*)) |
567 | 86 | (defcmd skc-build |
570 | 87 | (call-with-args :build *args*)) |
567 | 88 | (defcmd skc-dist |
570 | 89 | (call-with-args :dist *args*)) |
567 | 90 | (defcmd skc-install |
570 | 91 | (call-with-args :install *args*)) |
567 | 92 | (defcmd skc-pack |
570 | 93 | (call-with-args :pack *args*)) |
567 | 94 | (defcmd skc-unpack |
570 | 95 | (call-with-args :unpack *args*)) |
567 | 96 | (defcmd skc-bundle |
570 | 97 | (call-with-args :bundle *args*)) |
567 | 98 | (defcmd skc-unbundle |
570 | 99 | (call-with-args :unbundle *args*)) |
567 | 100 | (defcmd skc-clean |
570 | 101 | (call-with-args :clean *args*)) |
567 | 102 | (defcmd skc-test |
570 | 103 | (call-with-args :test *args*)) |
567 | 104 | (defcmd skc-bench |
570 | 105 | (call-with-args :bench *args*)) |
567 | 106 | (defcmd skc-save |
570 | 107 | (call-with-args :save *args*)) |
322
605c0f678c98
adjusted PRINT-HELP formatting for cli/clap
Richard Westhaver <ellis@rwest.io>
parents:
321
diff
changeset
|
108 | |
342 | 109 | (defun sk-slot-case (sel) |
655
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
110 | (std/string:string-case ((string-left-trim ":" sel) :default (skel-simple-error "invalid slot")) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
111 | ("id" (std:format-sxhash (obj/id:id *skel-project*))) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
112 | ("name" (sk-name *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
113 | ("author" (sk-author *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
114 | ("version" (sk-version *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
115 | ("description" (sk-description *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
116 | ("tags" (sk-tags *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
117 | ("license" (sk-license *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
118 | ("vc" (sk-vc *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
119 | ("components" (sk-components *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
120 | ("scripts" (sk-scripts *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
121 | ("rules" (sk-rules *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
122 | ("phases" (hash-table-alist (sk-phases *skel-project*))) |
662
a53be64410c5
removed skel project env/def, added to BIND
Richard Westhaver <ellis@rwest.io>
parents:
655
diff
changeset
|
123 | ;; ("env" (sk-env *skel-project*)) |
655
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
124 | ("bind" (sk-bind *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
125 | ("include" (sk-include *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
126 | ("stash" (sk-stash *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
127 | ("store" (sk-store *skel-project*)) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
128 | ("config" *skel-user-config*) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
129 | ("sys" *skel-system-config*) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
130 | ("cache" (sk-cache *skel-user-config*)))) |
319 | 131 | |
96 | 132 | (defcmd skc-show |
652 | 133 | (if *args* |
561 | 134 | (mapc (lambda (x) (when-let ((ret (sk-slot-case x))) (println ret))) *args*) |
340
5ac5e6516f6f
special vars for skel bin
Richard Westhaver <ellis@rwest.io>
parents:
339
diff
changeset
|
135 | (describe (if (boundp '*skel-project*) *skel-project* |
499 | 136 | (if (boundp '*skel-user-config*) *skel-user-config* |
137 | (if (boundp '*skel-system-config*) *skel-system-config* |
|
508 | 138 | (skel-simple-error "skel config files not installed"))))))) |
96 | 139 | |
140 | (defcmd skc-push |
|
337
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
141 | (case (sk-vc-meta-kind (sk-vc (find-skelfile #P"." :load t))) |
561 | 142 | (:git (run-git-command "push" *args* t)) |
143 | (:hg (run-hg-command "push" *args* t)) |
|
508 | 144 | (t (skel-simple-error "unknown VC type")))) |
311 | 145 | |
146 | (defcmd skc-pull |
|
337
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
147 | (case (sk-vc-meta-kind (sk-vc (find-skelfile #P"." :load t))) |
561 | 148 | (:git (run-git-command "pull" *args* t)) |
149 | (:hg (run-hg-command "pull" (append '("-u") *args*) t)) |
|
508 | 150 | (t (skel-simple-error "unknown VC type")))) |
311 | 151 | |
331
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
152 | (defun hg-status () |
466 | 153 | (with-open-stream (proc (process-output (run-hg-command "status" nil :stream))) |
154 | (loop for x = (read-line proc nil) |
|
155 | while x |
|
156 | do (println x)))) |
|
331
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
157 | |
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
158 | (defun git-status () |
466 | 159 | (with-open-stream (proc (run-git-command "status" nil :stream)) |
160 | (loop for x = (read-line proc nil) |
|
161 | while x |
|
162 | do (println x)))) |
|
331
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
163 | |
311 | 164 | (defcmd skc-status |
331
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
165 | (case (sk-vc-meta-kind (sk-vc (find-skelfile #P"." :load t))) |
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
166 | (:git (git-status)) |
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
167 | (:hg (hg-status)) |
1e5e4bbcdf8b
add tmux, comment out some broken grovelled constants, fix krypt asd typo
Richard Westhaver <ellis@rwest.io>
parents:
330
diff
changeset
|
168 | (t (hg-status)))) |
337
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
169 | |
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
170 | (defcmd skc-clone |
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
171 | (case (sk-vc-meta-kind (sk-vc (find-skelfile #P"." :load t))) |
561 | 172 | (:git (run-git-command "clone" *args* t)) |
173 | (:hg (run-hg-command "clone" *args* t)) |
|
508 | 174 | (t (skel-simple-error "unknown VC type")))) |
337
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
175 | |
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
176 | (defcmd skc-commit |
4fc0ccc55bca
edits to cli/clap arg processing
Richard Westhaver <ellis@rwest.io>
parents:
331
diff
changeset
|
177 | (case (sk-vc-meta-kind (sk-vc (find-skelfile #P"." :load t))) |
654 | 178 | (:git (run-git-command "commit" (append '("-m") *args*) t)) |
662
a53be64410c5
removed skel project env/def, added to BIND
Richard Westhaver <ellis@rwest.io>
parents:
655
diff
changeset
|
179 | (:hg (run-hg-command "commit" (when *args* (append '("-m") *args*)) t)) |
508 | 180 | (t (skel-simple-error "unknown VC type")))) |
96 | 181 | |
182 | (defcmd skc-make |
|
323
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
183 | (let ((sk (find-skelfile #P"." :load t))) |
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
184 | (sb-ext:enable-debugger) |
623 | 185 | (log:debug! "cli args" *args*) |
465 | 186 | ;; (setq *no-exit* t) |
561 | 187 | (if *args* |
188 | (loop for a in *args* |
|
323
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
189 | do (debug! |
623 | 190 | (if-let ((rule (sk-find-rule a sk))) |
191 | (sk-make sk rule) |
|
192 | ;; TODO 2024-08-23: restart condition here |
|
193 | (skel-simple-error "rule not found: ~A" a)))) |
|
323
29b643913ea0
messing with shells, need :INPUT, :OUTPUT, and :WAIT params in skelfiles
Richard Westhaver <ellis@rwest.io>
parents:
322
diff
changeset
|
194 | (debug! (sk-make sk (aref (sk-rules sk) 0)))))) |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
286
diff
changeset
|
195 | |
312 | 196 | (defcmd skc-run |
561 | 197 | (if *args* |
325
9b573fc6bc40
vc updates, fixed missing in-package lines, skel errors
Richard Westhaver <ellis@rwest.io>
parents:
323
diff
changeset
|
198 | (mapc (lambda (script) |
652 | 199 | ;; first check if a script with the same name exists, else check for a rule definition |
200 | (if-let ((script (sk-find-script |
|
201 | (pathname-name script) |
|
202 | (find-skelfile #P"." :load t)))) |
|
203 | (sk-run script) |
|
204 | (call-with-args :run (list script)))) |
|
623 | 205 | *args*) |
381
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
206 | (required-argument 'name))) |
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
207 | |
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
208 | (defcmd skc-vc |
561 | 209 | (if *args* |
210 | (std/string:string-case ((car *args*) :default (skel-simple-error "invalid command")) |
|
381
386d51cf61ca
add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents:
379
diff
changeset
|
211 | ("status" (skc-status nil nil))) |
561 | 212 | (skc-status nil *opts*))) |
312 | 213 | |
287
609931bd65ba
organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents:
286
diff
changeset
|
214 | (defcmd skc-shell |
321 | 215 | (sb-ext:enable-debugger) |
339 | 216 | (trace! "starting skel shell") |
330
7c3bbb64cc73
print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents:
327
diff
changeset
|
217 | (setq *no-exit* t) |
321 | 218 | (cli/clap::with-cli-handlers |
384 | 219 | (progn |
220 | (in-package :sk-user) |
|
221 | (use-package :cl-user) |
|
222 | (use-package :sb-ext) |
|
223 | (use-package :std-user) |
|
224 | (init-skel-vars) |
|
225 | (println "Welcome to SKEL") |
|
226 | (sb-impl::toplevel-repl nil)))) |
|
96 | 227 | |
388
dec30b6fd500
prelude/user packages init
Richard Westhaver <ellis@rwest.io>
parents:
384
diff
changeset
|
228 | (defcmd skc-new |
654 | 229 | (println *args*) |
230 | (println *opts*)) |
|
567 | 231 | |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
647
diff
changeset
|
232 | (define-cli *skel-cli* |
96 | 233 | :name "skel" |
500 | 234 | :version #.(format nil "0.1.1:~A" (read-line (sb-ext:process-output (vc:run-hg-command "id" '("-i") :stream)))) |
363 | 235 | :description "A hacker's project compiler." |
584
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
570
diff
changeset
|
236 | :thunk 'skc-show |
567 | 237 | :opts ((:name "help" :global t :description "print this message" |
584
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
570
diff
changeset
|
238 | :thunk skc-help) |
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
570
diff
changeset
|
239 | (:name "version" :global t :description "print version" |
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
570
diff
changeset
|
240 | :thunk skc-version) |
567 | 241 | (:name "level" :global t :description "set log level (warn,info,debug,trace)" |
242 | :thunk skc-level) |
|
243 | (:name "config" :global t :description "set a custom skel user config" :kind file) |
|
244 | (:name "input" :global t :description "input source" :kind string) |
|
245 | (:name "output" :global t :description "output target" :kind string)) |
|
246 | :cmds ((:name init |
|
247 | :description "initialize a skelfile in the current directory" |
|
584
35bb0d5ec95e
bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents:
570
diff
changeset
|
248 | :opts (:name "name" :description "project name" :kind string) |
567 | 249 | :thunk skc-init) |
250 | (:name new |
|
251 | :description "make a new skel project" |
|
252 | :opts ((:name "name" :description "project name" :kind string)) |
|
253 | :thunk skc-new) |
|
254 | (:name describe |
|
255 | :description "describe a skelfile" |
|
256 | :thunk skc-describe) |
|
257 | (:name show |
|
258 | :description "show project slots" |
|
652 | 259 | :opts ((:name "file" :description "path to skelfile" :kind file)) |
567 | 260 | :thunk skc-show) |
261 | (:name vc |
|
262 | :description "version control" |
|
263 | :thunk skc-vc |
|
264 | :opts ((:name "root" :description "repository path" :kind directory))) |
|
265 | (:name id |
|
266 | :description "print the project id" |
|
267 | :thunk skc-id) |
|
268 | (:name inspect |
|
269 | :description "inspect the project skelfile" |
|
270 | :opts ((:name "file" :description "path to skelfile" :kind file)) |
|
271 | :thunk skc-inspect) |
|
272 | #+tools |
|
273 | (:name view |
|
274 | :description "view an object in a new GUI window" |
|
275 | :thunk skc-view) |
|
276 | (:name make |
|
277 | :description "build project targets" |
|
654 | 278 | :opts ((:name "target" :description "target to build" :kind string)) |
567 | 279 | :thunk skc-make) |
280 | (:name run |
|
281 | :description "run a script or command" |
|
282 | :thunk skc-run) |
|
283 | (:name compile |
|
284 | :description "compile source code" |
|
285 | :thunk skc-compile) |
|
286 | (:name build |
|
287 | :description "build programs and libraries" |
|
288 | :thunk skc-build) |
|
652 | 289 | (:name save |
290 | :description "save a file" |
|
291 | :thunk skc-save) |
|
567 | 292 | (:name dist |
293 | :description "distribute build artifacts" |
|
294 | :thunk skc-dist) |
|
295 | (:name install |
|
296 | :description "install stuff" |
|
297 | :thunk skc-install) |
|
298 | (:name pack |
|
299 | :description "pack stuff" |
|
300 | :thunk skc-pack) |
|
301 | (:name unpack |
|
302 | :description "unpack stuff" |
|
303 | :thunk skc-unpack) |
|
304 | (:name bundle |
|
305 | :description "bundle source code" |
|
306 | :thunk skc-bundle) |
|
307 | (:name unbundle |
|
308 | :description "unbundle source code" |
|
309 | :thunk skc-unbundle) |
|
310 | (:name clean |
|
311 | :description "clean up the project" |
|
312 | :thunk skc-clean) |
|
313 | (:name test |
|
314 | :description "run tests" |
|
315 | :thunk skc-test) |
|
316 | (:name bench |
|
317 | :description "run benchmark" |
|
318 | :thunk skc-bench) |
|
319 | (:name status |
|
320 | :description "print the vc status" |
|
321 | :thunk skc-status) |
|
322 | (:name push |
|
323 | :description "push the current project upstream" |
|
324 | :thunk skc-push) |
|
325 | (:name pull |
|
326 | :description "pull the current project from remote" |
|
327 | :thunk skc-pull) |
|
328 | (:name clone |
|
329 | :description "clone a remote project" |
|
330 | :thunk skc-clone) |
|
331 | (:name commit |
|
332 | :description "commit changes to the project vc" |
|
654 | 333 | :thunk skc-commit |
334 | :opts ((:name "message" :description "commit message" :kind string))) |
|
567 | 335 | (:name edit |
336 | :description "edit a project file in emacs." |
|
337 | :thunk skc-edit) |
|
338 | (:name shell |
|
339 | :description "open the sk-shell interpreter" |
|
340 | :thunk skc-shell))) |
|
96 | 341 | |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
647
diff
changeset
|
342 | (defmain start-skel () |
327
9e1854ff6f6c
skel extensions, need to fix regression from swank update
Richard Westhaver <ellis@rwest.io>
parents:
325
diff
changeset
|
343 | (in-package :sk-user) |
325
9b573fc6bc40
vc updates, fixed missing in-package lines, skel errors
Richard Westhaver <ellis@rwest.io>
parents:
323
diff
changeset
|
344 | (let ((*log-level* :info)) |
186
2f4dba134218
nu work and update skel readtable to :shell
Richard Westhaver <ellis@rwest.io>
parents:
176
diff
changeset
|
345 | (in-readtable :shell) |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
647
diff
changeset
|
346 | (with-cli (*skel-cli* opts cmds) (cli:args) |
499 | 347 | (init-skel-vars) |
340
5ac5e6516f6f
special vars for skel bin
Richard Westhaver <ellis@rwest.io>
parents:
339
diff
changeset
|
348 | (when-let ((project (find-skelfile #P"."))) |
645 | 349 | (let ((*default-pathname-defaults* (pathname (directory-namestring project)))) |
350 | (setq *skel-project* (load-skelfile project)) |
|
647 | 351 | (setq *skel-path* (sk-src *skel-project*)) |
651
af486e0a40c9
multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents:
647
diff
changeset
|
352 | (setq cli/shell:*shell-directory* (sk-src *skel-project*)))) |
655
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
353 | (do-cmd *cli*) |
65102f74d1ae
some optimizations, may have muddied the waters with cli-opt a bit though.. tbd
Richard Westhaver <ellis@rwest.io>
parents:
654
diff
changeset
|
354 | (debug-opts *cli*)))) |