changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > notes / annotate skel-readme.org

changeset 15: 45ac54093c09
parent: 4839b0675118
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 04 Sep 2024 16:58:53 -0400
permissions: -rw-r--r--
description: init log
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
1
 * Mock Skel Readme
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
2
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
3
 :ID:       a072a011-0808-490b-b4ee-c665f68e4033
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
4
 :END:
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
5
 ** Overview 
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
6
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
7
 :ID:       2ab70bb9-4f1e-4ba2-ad72-b2a32dacbd5b
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
8
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 + status :: WIP
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 + forge :: [[https://lab.rwest.io/ellis/skel][Heptapod]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 + mirror :: [[https://github.com/richardwesthaver/skel][Github]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 This system provides functions and macros for building and deploying
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 project skeletons. /This is not a general purpose templating
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 system/. It is specifically for my software stack.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
17
 *** Goals
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
18
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
19
 :ID:       7881a92f-7406-4862-bf89-39970731f37d
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
20
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 - vaporize boilerplate code and docs
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 - integrate reasonably well with my tools (Emacs/etc)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 - object-oriented project management
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
24
 *** Resources
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
25
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
26
 :ID:       d0dd3e94-8c9e-4eac-847e-33a039beadbe
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
27
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 - [[https://www.gnu.org/software/emacs/manual/html_node/autotype/Skeleton-Language.html][skeleton-lanaguage (emacs)]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 - [[https://github.com/emacs-mirror/emacs/tree/master/lisp/cedet/ede][cedet/ede (emacs)]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 - [[https://www.gnu.org/software/make/manual/make.html][GNU make]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 - [[https://docs.factorcode.org/content/article-vocabularies.html][Factor (forth) definitions]]
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
32
 ** Quickstart
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
33
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
34
 :ID:       183bbf4c-bb3c-44f6-a4c1-49c548e0eab2
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
35
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 Make sure you have sbcl installed:
2
04e86b94ef1a style update
Richard Westhaver <ellis@rwest.io>
parents: 1
diff changeset
37
 #+begin_src shell :results pp :eval never
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 sbcl --version
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 : SBCL 2.3.12+main
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 Then compile the program. This command produces a binary called =skel=
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 in the project root:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 #+begin_src shell :results raw silent
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 sbcl --noinform  --non-interactive --eval '(ql:quickload :app/cli/skel)' --eval '(asdf:make :app/cli/skel)'
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 Run the binary without any args, which will print a skeleton of the
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 current project directory (=*skel-project*=).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 
2
04e86b94ef1a style update
Richard Westhaver <ellis@rwest.io>
parents: 1
diff changeset
53
 #+begin_src shell :results output replace :eval never
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
   skel -h
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
 #+begin_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
 skel v0.1.1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
   usage: skel [global] <command> [<arg>]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
   A hacker's project compiler and build tool.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
   options:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
      -h/--help* :  print this message
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
      -v/--version* :  print version
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
      -d/--debug* :  set log level (debug,info,trace,warn)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
      -c/--config* :  set a custom skel user config
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
      -i/--input  :  input source
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
      -o/--output  :  output target
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
   commands:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
     init  :  initialize a skelfile in the current directory
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
      -n/--name  :  project name
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
     show  :  describe the project skelfile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
      -f/--file  :  path to skelfile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
     inspect  :  inspect the project skelfile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
      -f/--file  :  path to skelfile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
     make  :  build project targets
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
      -t/--target  :  target to build
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
     run  :  run a script or command
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
     push  :  push the current project upstream
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
     pull  :  pull the current project from remote
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
     clone  :  clone a remote project
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
     commit  :  commit changes to the project vc
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
92
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
93
     edit  :  edit a project file
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
     shell  :  open the sk-shell interpreter
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
     
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 #+end_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 Here's skel's skelfile:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
 #+begin_src shell :results output replace :wrap src skel :exports results
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
 cat skel.sk
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
 #+begin_src skel
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
 ;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*-
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
 :name skel
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
109
 :author "ellis"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
110
 :version "0.1.0"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
111
 :description "a hacker's project compiler"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
 :license "MPL"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
 :vc :hg
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
 :tags ("lisp")
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
 :rules ((build () (print (asdf:make :skel/cli)))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
         (clean () #$rm -rf */*.fasl$#))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
 :documents ((:org "readme"))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
118
 :components 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
119
 ((:elisp "sk")
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
120
  (:lisp-system 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
121
   "skel"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
122
   :version "0.1.0"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
123
   :maintainer "ellis <ellis@rwest.io>"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
124
   :bug-tracker "https://lab.rwest.io/ellis/skel/issues"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
125
   :class :package-inferred-system
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
126
   :defsystem-depends-on (:asdf-package-system)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
127
   :depends-on (:uiop :asdf :sb-posix :sb-bsd-sockets :sb-concurrency :cl-ppcre :std :organ :skel/pkg)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
128
   :in-order-to ((test-op (test-op skel/tests)))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
129
   :perform (test-op (op c) (uiop:symbol-call '#:rt '#:do-tests))))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
130
 :stash "~/dev/comp/stash"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
131
 :shed "~/dev/comp/shed"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
132
 :abbrevs nil
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
133
 :snippets 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
134
 ((autogen #$sbcl --eval '(ql:quickload :app/cli/skel)' --eval '(asdf:make :app/cli/skel)'$#))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
135
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
136
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
137
 This is just a form without the top-level parentheses - you're free to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
138
 omit them in a skelfile.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
139
 
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
140
 *** describe
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
141
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
142
 :ID:       9ae1fe7b-c373-4101-88d3-439793eb38f3
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
143
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
144
 The =describe= command can be used to check the currently active
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
145
 skelfile, printing any errors and the parsed object.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
146
 
2
04e86b94ef1a style update
Richard Westhaver <ellis@rwest.io>
parents: 1
diff changeset
147
 #+begin_src shell :results output replace :eval never
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
148
   skel show
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
149
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
150
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
151
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
152
 #+begin_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
153
 #<SKEL:SK-PROJECT :ID 1e61-38b1-c5fe-7eac>
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
154
   [standard-object]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
155
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
156
 Slots with :INSTANCE allocation:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
157
   NAME                           = SKEL
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
158
   PATH                           = #P"/home/ellis/dev/skel/skelfile"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
159
   AUTHOR                         = "ellis"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
160
   VERSION                        = "0.1.0"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
161
   TAGS                           = ("lisp")
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
162
   DESCRIPTION                    = "a hacker's project compiler"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
163
   LICENSE                        = "MPL"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
164
   AST                            = NIL
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
165
   ID                             = 2189093230060928684
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
166
   VC                             = :HG
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
167
   RULES                          = ((BUILD NIL (PRINT (ASDF/OPERATE:MAKE :SKEL/CLI)))..
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
168
   DOCUMENTS                      = ((:ORG "readme"))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
169
   COMPONENTS                     = ((:ELISP "sk")..
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
170
   SCRIPTS                        = NIL
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
171
   SNIPPETS                       = ((AUTOGEN "sbcl --eval '(asdf:make :skel/cli)'"))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
172
   STASH                          = #P"~/stash"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
173
   SHED                           = #P"~/shed"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
174
   ABBREVS                        = NIL
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
175
   IMPORTS                        = NIL
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
176
 #+end_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
177
 
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
178
 *** TODO compile
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
179
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
180
 :ID:       e43b7a81-c2f9-4dc9-8a09-66259602f91b
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
181
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
182
 Skelfiles can be compiled to produce a new project skeleton or update
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
183
 an existing one.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
184
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
185
 Try compiling skel's skelfile:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
186
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
187
 #+begin_src shell :results output replace :exports code
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
188
   skel compile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
189
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
190
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
191
 You may also compile individual components of the project structure,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
192
 for example, to compile the rules into a makefile:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
193
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
194
 #+begin_src shell :results output replace :exports code
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
195
   skel compile --rules
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
196
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
197
 
2
04e86b94ef1a style update
Richard Westhaver <ellis@rwest.io>
parents: 1
diff changeset
198
 #+begin_src shell :results output :wrap src makefile :eval never
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
199
 cat makefile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
200
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
201
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
202
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
203
 #+begin_src makefile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
204
 ### SKEL @ 2023-09-14.01:47:59 --- A hacker's project compiler -*- mode:makefile ; -*-
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
205
 LISP=sbcl --noinform --non-interactive --eval "(asdf:load-asd \"skel.asd\")" --eval "(ql:quickload :skel)"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
206
 .PHONY: compile clean
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
207
 compile:;$(LISP) --eval "(asdf:compile-system :skel)"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
208
 test:compile;$(LISP) --eval "(ql:quickload :skel/tests)" --eval "(in-package :skel.tests)" --eval "(compile-file \"tests.lisp\")" --eval "(load-file \"tests.lisp\")" --eval "(do-tests :skel)"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
209
 clean:;rm -rf *.fasl
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
210
 debug:compile;$(LISP) --eval "(start-repl)"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
211
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
212
 
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
213
 ** Examples
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
214
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
215
 :ID:       61959899-98ec-4ee2-a862-7544674ffc7a
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
216
 :END:
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
217
 *** Default
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
218
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
219
 :ID:       b9e5324c-059d-4416-a19a-3e5ffbac554e
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
220
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
221
 When you run =skel init= this is the basic skelfile that will be
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
222
 generated in the current directory, depending on the following
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
223
 contexts:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
224
 - default user config
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
225
 - directory contents
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
226
 - cli args
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
227
 With no cli args or user config and an empty directory the output
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
228
 looks like this:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
229
 #+begin_src skel
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
230
 ;;; examples @ 2023-10-09.23:38:23 -*- mode: skel; -*-
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
231
 :name "examples"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
232
 #+end_src
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
233
 *** Imports
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
234
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
235
 :ID:       c7e2d0d9-8b0e-428d-aeb5-1b1447e2a1ed
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
236
 :END:
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
237
 *** Multi
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
238
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
239
 :ID:       d6b6bbff-7713-4f2c-9dc8-b8331497b5b4
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
240
 :END:
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
241
 ** Tests
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
242
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
243
 :ID:       37821915-2584-4303-a929-3cf25727fa1b
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
244
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
245
 The unit tests may also be a useful reference:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
246
 
2
04e86b94ef1a style update
Richard Westhaver <ellis@rwest.io>
parents: 1
diff changeset
247
 #+begin_src lisp :results output replace :wrap src lisp :eval never :package :skel.tests
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
248
   (ql:quickload :skel/tests)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
249
   (in-package :skel.tests)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
250
   (setq *log-level* nil)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
251
   ;; (setq *catch-test-errors* nil)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
252
   (setq *compile-tests* t)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
253
   (list (multiple-value-list (do-tests :skel)) (test-results *test-suite*))
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
254
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
255
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
256
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
257
 #+begin_src lisp
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
258
 To load "skel/tests":
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
259
   Load 1 ASDF system:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
260
     skel/tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
261
 ; Loading "skel/tests"
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
262
 ..................................................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
263
 [package skel.vc].................................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
264
 [package skel.virt]...............................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
265
 [package skel.comp.asd]...........................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
266
 [package skel.make]...............................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
267
 [package skel.ext.asdf]...........................
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
268
 [package skel.tests].
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
269
 in suite SKEL with 6/6 tests:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
270
 #<PASS VM-TEST788> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
271
 #<PASS MAKEFILE-TEST787> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
272
 #<PASS SKELRC-TEST786> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
273
 #<PASS SKELFILE-TEST785> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
274
 #<PASS HEADER-COMMENTS-TEST784> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
275
 #<PASS SANITY-TEST783> 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
276
 No tests failed.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
277
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
278
 
4
Richard Westhaver <ellis@rwest.io>
parents: 2
diff changeset
279
 ** API
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
280
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
281
 :ID:       ae46b723-6d1e-4855-9ec1-ad0eb7093960
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
282
 :END:
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
283
 - TODO :: CLOS-based core classes
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
284
 - TODO :: EIEIO-based wrapper classes
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
285
 
15
45ac54093c09 init log
Richard Westhaver <ellis@rwest.io>
parents: 9
diff changeset
286
 #+begin_src dot :file /tmp/api.svg :exports results
1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
287
   digraph { splines=true; label="CLOS API"; labelloc="t"; node [shape=record];
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
288
     sk [label="(skel :ID :AST)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
289
     methods [label="(sk-compile sk-expand sk-build\nsk-run sk-init sk-new sk-save\nsk-tangle sk-weave sk-call sk-print)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
290
     skmet [label="(sk-meta :NAME :PATH :VERSION :DESCRIPTION)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
291
     skvcs [label="(sk-vc-meta :VC)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
292
     skcmd [label="(sk-command)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
293
     sktar [label="(sk-target)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
294
     sksrc [label="(sk-source)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
295
     skrec [label="(sk-recipe :COMMANDS)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
296
     skrul [label="(sk-rule :TARGET :SOURCE :RECIPE)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
297
     skdoc [label="(sk-document)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
298
     skscr [label="(sk-script)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
299
     skcfg [label="(sk-config)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
300
     sksni [label="(sk-snippet)"]    
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
301
     skabb [label="(sk-abbrev)"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
302
     skpro [label="(sk-project\l:RULES\l:DOCUMENTS\l:SCRIPTS\l:SNIPPETS\l:ABBREVS)\l"]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
303
     sk -> skmet
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
304
     skmet -> skvcs
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
305
     sk -> skcfg
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
306
     sk -> sksni
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
307
     sk -> skabb
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
308
     sk -> sktar
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
309
     sk -> skrul
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
310
     sk -> sksrc
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
311
     sk -> skcmd
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
312
     skvcs -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
313
     skmet -> skdoc    
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
314
     skmet -> skscr    
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
315
     skrul -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
316
     skscr -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
317
     skdoc -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
318
     sksni -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
319
     skabb -> skpro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
320
     sktar -> skrul
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
321
     sksrc -> skrul
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
322
     skrec -> skrul
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
323
     skcmd -> skrec
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
324
   }
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
325
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
326
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
327
 #+RESULTS:
15
45ac54093c09 init log
Richard Westhaver <ellis@rwest.io>
parents: 9
diff changeset
328
 [[file:/tmp/api.svg]]