changelog shortlog graph tags branches changeset files file revisions raw help

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

changeset 664: 4d8451fe5423
parent: cc89b337384b
child: 5f88b237ce29
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 22 Sep 2024 01:02:49 -0400
permissions: -rw-r--r--
description: moved web to lib/web, added dat/css
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
6
 (defpkg :bin/skel
647
74e563ed4537 cli and rt/fuzz
Richard Westhaver <ellis@rwest.io>
parents: 645
diff changeset
7
   (:use :cl :std :cli
74e563ed4537 cli and rt/fuzz
Richard Westhaver <ellis@rwest.io>
parents: 645
diff changeset
8
    :vc :sb-ext :skel :log :cli/clap/util
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
9
    :dat/sxp #+tools :skel/tools/viz)
645
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
12
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
15
 
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
16
 (defopt skc-help (print-help *cli*))
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
17
 (defopt skc-version (print-version *cli*))
384
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
18
 (defopt skc-level *log-level*
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
19
         (setq *log-level* (if *arg* (if (stringp *arg*)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
20
                                         (sb-int:keywordicate (string-upcase *arg*))
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
21
                                         *arg*)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
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
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
24
 (defopt skc-config (load-user-skelrc (or *arg* *user-skelrc*)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
25
 
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
26
 (defcmd skc-edit
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
27
   (let ((file (or (when *args* (pop *args*)) (sk-path *skel-project*))))
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
28
     (cli/ed:run-emacsclient (namestring file))))
321
807018bcba4d fixing defmain
Richard Westhaver <ellis@rwest.io>
parents: 320
diff changeset
29
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
30
 (defcmd skc-init
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
31
   (let ((file (when *args* (pop *args*)))
563
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
32
 	(name (when (> *argc* 1) (pop *args*))))
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents: 561
diff changeset
33
     ;; TODO: test, may need to be
384
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
34
     ;; sequential for side-effect
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
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
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
45
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
46
 (defcmd skc-describe
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
47
   (describe
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
48
    (if (> *argc* 0)
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
49
        (find-skelfile (pathname (car *args*)) :load t)
500
b19b1baf8699 skel rev version
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
50
        (or *skel-project* *skel-user-config* *skel-system-config*))))
b19b1baf8699 skel rev version
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
51
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
52
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
56
   (inspect
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
57
    (find-skelfile
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
58
     (if *args* (pathname (car *args*))
285
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
59
 	#P".")
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
60
     :load t)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
61
 
663
cc89b337384b skel upgrades, added skel/net
Richard Westhaver <ellis@rwest.io>
parents: 662
diff changeset
62
 #+gui
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
63
 (defcmd skc-view
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
64
   (if *args* 
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
65
       (let ((stuff (loop for a in *args*
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
66
                          collect (sk-slot-case a))))
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
67
         (sk-view (if (= 1 (length stuff)) (car stuff) stuff)))
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
68
       (sk-view (if (boundp '*skel-project*) *skel-project*
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
69
                    (if (boundp '*skel-user-config*) *skel-user-config*
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
70
                        (if (boundp '*skel-system-config*) *skel-system-config*
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
71
                            (skel-simple-error "skel config files not installed")))))))
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
72
 
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
73
 (defcmd skc-id
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
74
   (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
75
 
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
76
 (defun call-with-args (action args)
645
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
77
   (let* ((*default-pathname-defaults* *skel-path*))
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
78
     (if (null args)
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
79
         (sk-call *skel-project* action)
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
80
         (mapc (lambda (x)
652
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
81
                 (sk-call *skel-project* (keywordicate (symbol-name action) '- (string-upcase x))))
645
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
82
               args))))
516
f68a5996a2b1 skel updates, sketch of sk-path parser
Richard Westhaver <ellis@rwest.io>
parents: 508
diff changeset
83
 
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
84
 (defcmd skc-compile
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
85
   (call-with-args :compile *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
86
 (defcmd skc-build
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
87
   (call-with-args :build *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
88
 (defcmd skc-dist
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
89
   (call-with-args :dist *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
90
 (defcmd skc-install
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
91
   (call-with-args :install *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
92
 (defcmd skc-pack
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
93
   (call-with-args :pack *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
94
 (defcmd skc-unpack
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
95
   (call-with-args :unpack *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
96
 (defcmd skc-bundle
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
97
   (call-with-args :bundle *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
98
 (defcmd skc-unbundle
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
99
   (call-with-args :unbundle *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
100
 (defcmd skc-clean
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
101
   (call-with-args :clean *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
102
 (defcmd skc-test
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
103
   (call-with-args :test *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
104
 (defcmd skc-bench
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
105
   (call-with-args :bench *args*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
106
 (defcmd skc-save
570
d1c75054df03 added phases
Richard Westhaver <ellis@rwest.io>
parents: 567
diff changeset
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
254cca648492 homer fixups
Richard Westhaver <ellis@rwest.io>
parents: 341
diff changeset
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
c5956756f9e5 skel show
Richard Westhaver <ellis@rwest.io>
parents: 317
diff changeset
131
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
132
 (defcmd skc-show
652
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
133
   (if *args*
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
134
       (mapc (lambda (x) (when-let ((ret (sk-slot-case x))) (println ret))) *args*)
663
cc89b337384b skel upgrades, added skel/net
Richard Westhaver <ellis@rwest.io>
parents: 662
diff changeset
135
       (sk-print (if (boundp '*skel-project*) *skel-project*
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 490
diff changeset
136
                     (if (boundp '*skel-user-config*) *skel-user-config*
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 490
diff changeset
137
                         (if (boundp '*skel-system-config*) *skel-system-config*
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
138
                             (skel-simple-error "skel config files not installed")))))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
139
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
142
     (:git (run-git-command "push" *args* t))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
143
     (:hg (run-hg-command "push" *args* t))
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
144
     (t (skel-simple-error "unknown VC type"))))
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
145
 
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
148
     (:git (run-git-command "pull" *args* t))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
149
     (:hg (run-hg-command "pull" (append '("-u") *args*) t))
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
150
     (t (skel-simple-error "unknown VC type"))))
311
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
153
   (with-open-stream (proc (process-output (run-hg-command "status" nil :stream)))
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
154
     (loop for x = (read-line proc nil)
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
155
           while x
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
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
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
159
   (with-open-stream (proc (run-git-command "status" nil :stream))
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
160
     (loop for x = (read-line proc nil)
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
161
           while x
b2b66a85f95b copy-stream borked
Richard Westhaver <ellis@rwest.io>
parents: 465
diff changeset
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
ef76122522ca skel edit, vc commands
Richard Westhaver <ellis@rwest.io>
parents: 309
diff changeset
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
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
172
     (:git (run-git-command "clone" *args* t))
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
173
     (:hg (run-hg-command "clone" *args* t))
508
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
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
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
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
e2d577f31866 viz updates
Richard Westhaver <ellis@rwest.io>
parents: 500
diff changeset
180
     (t (skel-simple-error "unknown VC type"))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
181
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
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
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
185
     (log:debug! "cli args" *args*)
465
c0fc6b87557f messing around
Richard Westhaver <ellis@rwest.io>
parents: 461
diff changeset
186
     ;; (setq *no-exit* t)
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
187
     (if *args*
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
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
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
190
                   (if-let ((rule (sk-find-rule a sk)))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
191
                     (sk-make sk rule)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
192
                     ;;  TODO 2024-08-23: restart condition here
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
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
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
196
 (defcmd skc-run
561
42bc1432f217 bin updates
Richard Westhaver <ellis@rwest.io>
parents: 533
diff changeset
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
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
199
               ;; first check if a script with the same name exists, else check for a rule definition
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
200
               (if-let ((script (sk-find-script 
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
201
                                 (pathname-name script)
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
202
                                 (find-skelfile #P"." :load t))))
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
203
                 (sk-run script)
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
204
                 (call-with-args :run (list script))))
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
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
664
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
209
   (let* ((sk (find-skelfile #P"." :load t))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
210
          (vc (sk-vc-meta-kind (sk-vc sk))))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
211
     (sb-ext:enable-debugger)
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
212
     (with-open-stream (proc (process-output 
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
213
                              (if-let ((cmd (pop *args*)))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
214
                                (ecase vc
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
215
                                  (:hg (run-hg-command cmd *args* :stream))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
216
                                  (:git (run-git-command cmd *args* :stream)))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
217
                                (sb-ext:run-program (case vc (:hg *hg-program*) (:git *git-program*))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
218
                                                    nil 
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
219
                                                    :output :stream))))
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
220
     (loop for x = (read-line proc nil)
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
221
           while x
4d8451fe5423 moved web to lib/web, added dat/css
Richard Westhaver <ellis@rwest.io>
parents: 663
diff changeset
222
           do (println x)))))
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 311
diff changeset
223
 
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 286
diff changeset
224
 (defcmd skc-shell
321
807018bcba4d fixing defmain
Richard Westhaver <ellis@rwest.io>
parents: 320
diff changeset
225
   (sb-ext:enable-debugger)
339
Richard Westhaver <ellis@rwest.io>
parents: 338
diff changeset
226
   (trace! "starting skel shell")
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 327
diff changeset
227
   (setq *no-exit* t)
321
807018bcba4d fixing defmain
Richard Westhaver <ellis@rwest.io>
parents: 320
diff changeset
228
   (cli/clap::with-cli-handlers
384
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
229
     (progn
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
230
       (in-package :sk-user)
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
231
       (use-package :cl-user)
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
232
       (use-package :sb-ext)
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
233
       (use-package :std-user)
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
234
       (init-skel-vars)
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
235
       (println "Welcome to SKEL")
8fe057887c17 skel refactor1
Richard Westhaver <ellis@rwest.io>
parents: 382
diff changeset
236
       (sb-impl::toplevel-repl nil))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
237
 
388
dec30b6fd500 prelude/user packages init
Richard Westhaver <ellis@rwest.io>
parents: 384
diff changeset
238
 (defcmd skc-new
654
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
239
   (println *args*) 
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
240
   (println *opts*))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
241
 
651
af486e0a40c9 multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents: 647
diff changeset
242
 (define-cli *skel-cli*
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
243
   :name "skel"
500
b19b1baf8699 skel rev version
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
244
   :version #.(format nil "0.1.1:~A" (read-line (sb-ext:process-output (vc:run-hg-command "id" '("-i") :stream))))
363
a5a2d756ee2f fix define-cli
Richard Westhaver <ellis@rwest.io>
parents: 356
diff changeset
245
   :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
246
   :thunk 'skc-show
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
247
   :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
248
 	   :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
249
 	  (: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
250
 	   :thunk skc-version)
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
251
 	 (:name "level" :global t :description "set log level (warn,info,debug,trace)"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
252
 	  :thunk skc-level)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
253
 	 (:name "config" :global t :description "set a custom skel user config" :kind file)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
254
 	 (:name "input" :global t :description "input source" :kind string)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
255
 	 (:name "output" :global t :description "output target" :kind string))
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
256
   :cmds ((:name init
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
257
 	  :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
258
           :opts (:name "name" :description "project name" :kind string)
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
259
           :thunk skc-init)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
260
          (:name new
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
261
           :description "make a new skel project"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
262
           :opts ((:name "name" :description "project name" :kind string))
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
263
           :thunk skc-new)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
264
          (:name describe
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
265
           :description "describe a skelfile"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
266
           :thunk skc-describe)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
267
 	 (:name show
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
268
 	  :description "show project slots"
652
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
269
 	  :opts ((:name "file" :description "path to skelfile" :kind file))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
270
 	  :thunk skc-show)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
271
          (:name vc
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
272
           :description "version control"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
273
           :thunk skc-vc
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
274
           :opts ((:name "root" :description "repository path" :kind directory)))
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
275
          (:name id
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
276
           :description "print the project id"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
277
           :thunk skc-id)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
278
 	 (:name inspect
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
279
 	  :description "inspect the project skelfile"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
280
 	  :opts ((:name "file" :description "path to skelfile" :kind file))
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
281
 	  :thunk skc-inspect)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
282
          #+tools
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
283
          (:name view
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
284
           :description "view an object in a new GUI window"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
285
           :thunk skc-view)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
286
 	 (:name make
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
287
 	  :description "build project targets"
654
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
288
           :opts ((:name "target" :description "target to build" :kind string))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
289
 	  :thunk skc-make)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
290
 	 (:name run
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
291
 	  :description "run a script or command"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
292
           :thunk skc-run)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
293
          (:name compile
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
294
           :description "compile source code"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
295
           :thunk skc-compile)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
296
          (:name build
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
297
           :description "build programs and libraries"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
298
           :thunk skc-build)
652
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
299
          (:name save
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
300
           :description "save a file"
328e1ff73938 graph and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 651
diff changeset
301
           :thunk skc-save)
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
302
          (:name dist
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
303
           :description "distribute build artifacts"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
304
           :thunk skc-dist)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
305
          (:name install
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
306
           :description "install stuff"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
307
           :thunk skc-install)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
308
          (:name pack
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
309
           :description "pack stuff"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
310
           :thunk skc-pack)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
311
          (:name unpack
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
312
           :description "unpack stuff"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
313
           :thunk skc-unpack)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
314
          (:name bundle
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
315
           :description "bundle source code"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
316
           :thunk skc-bundle)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
317
          (:name unbundle
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
318
           :description "unbundle source code"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
319
           :thunk skc-unbundle)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
320
          (:name clean
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
321
           :description "clean up the project"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
322
           :thunk skc-clean)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
323
          (:name test
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
324
           :description "run tests"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
325
           :thunk skc-test)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
326
          (:name bench
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
327
           :description "run benchmark"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
328
           :thunk skc-bench)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
329
          (:name status
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
330
           :description "print the vc status"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
331
           :thunk skc-status)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
332
 	 (:name push
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
333
 	  :description "push the current project upstream"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
334
 	  :thunk skc-push)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
335
 	 (:name pull
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
336
 	  :description "pull the current project from remote"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
337
           :thunk skc-pull)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
338
 	 (:name clone
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
339
 	  :description "clone a remote project"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
340
           :thunk skc-clone)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
341
 	 (:name commit
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
342
 	  :description "commit changes to the project vc"
654
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
343
           :thunk skc-commit
Richard Westhaver <ellis@rwest.io>
parents: 652
diff changeset
344
           :opts ((:name "message" :description "commit message" :kind string)))
567
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
345
 	 (:name edit
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
346
 	  :description "edit a project file in emacs."
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
347
           :thunk skc-edit)
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
348
 	 (:name shell
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
349
 	  :description "open the sk-shell interpreter"
32995daa9a07 skel and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
350
           :thunk skc-shell)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
351
 
651
af486e0a40c9 multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents: 647
diff changeset
352
 (defmain start-skel ()
327
9e1854ff6f6c skel extensions, need to fix regression from swank update
Richard Westhaver <ellis@rwest.io>
parents: 325
diff changeset
353
   (in-package :sk-user)
325
9b573fc6bc40 vc updates, fixed missing in-package lines, skel errors
Richard Westhaver <ellis@rwest.io>
parents: 323
diff changeset
354
   (let ((*log-level* :info))
186
2f4dba134218 nu work and update skel readtable to :shell
Richard Westhaver <ellis@rwest.io>
parents: 176
diff changeset
355
     (in-readtable :shell)
651
af486e0a40c9 multi-binaries, working on removing x.lisp
Richard Westhaver <ellis@rwest.io>
parents: 647
diff changeset
356
     (with-cli (*skel-cli* opts cmds) (cli:args)
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 490
diff changeset
357
       (init-skel-vars)
340
5ac5e6516f6f special vars for skel bin
Richard Westhaver <ellis@rwest.io>
parents: 339
diff changeset
358
       (when-let ((project (find-skelfile #P".")))
645
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
359
         (let ((*default-pathname-defaults* (pathname (directory-namestring project))))
3e6a17fb5712 clap upgrades
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
360
           (setq *skel-project* (load-skelfile project))
647
74e563ed4537 cli and rt/fuzz
Richard Westhaver <ellis@rwest.io>
parents: 645
diff changeset
361
           (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
362
           (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
363
       (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
364
       (debug-opts *cli*))))