changelog shortlog graph tags branches changeset files file revisions raw help

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

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