changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/skel/pkg.lisp

changeset 312: 1d46d8e02802
parent: c4682fedd73d
child: c5956756f9e5
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 08 May 2024 19:44:14 -0400
permissions: -rw-r--r--
description: skel scripts
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
1
 ;;; skel/pkg.lisp --- skeletons
18
61482ce290f9 migration complete
ellis <ellis@rwest.io>
parents:
diff changeset
2
 
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
3
 ;; Project composition library.
18
61482ce290f9 migration complete
ellis <ellis@rwest.io>
parents:
diff changeset
4
 
61482ce290f9 migration complete
ellis <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Commentary:
61482ce290f9 migration complete
ellis <ellis@rwest.io>
parents:
diff changeset
6
 
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
7
 ;; The SKEL system consists of a core package and a compiler package -
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
8
 ;; SKEL/CORE and SKEL/COMP respectively. The core contains all of the
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
9
 ;; low-level bits and a CLOS API for interacting with SKEL
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
10
 ;; objects. The compiler package depends on the core and provides
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
11
 ;; primitive compilers for translating SKEL objects into foreign
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
12
 ;; formats. For example, SK-RULE objects may be translated into a
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
13
 ;; corresponding GNU Make Rule. The compiler packages implement the
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
14
 ;; CLOS API defined in the core and may serve as a useful guide for
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
15
 ;; further extending the system yourself.
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
16
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
17
 ;; There are some built-in extensions available in addition to the
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
18
 ;; core and compiler - SKEL/VIZ provides an API for generating
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
19
 ;; visualizations of SKEL objects, and SKEL/DEPLOY introduces CI,
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
20
 ;; Release and packaging features.
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
21
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
22
 ;;; TODO: 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
23
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
24
 ;;  IMPL 2024-02-12: viz
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
25
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
26
 ;;  IMPL 2024-02-12: deploy
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
27
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
28
 ;;  IMPL 2024-02-12: ext api
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
29
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
30
 ;; 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
31
 
18
61482ce290f9 migration complete
ellis <ellis@rwest.io>
parents:
diff changeset
32
 ;;; Code:
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
33
 (defpackage :skel/core
158
ellis <ellis@rwest.io>
parents: 145
diff changeset
34
   (:use :cl :cl-ppcre :std :sb-mop :obj/id :sb-bsd-sockets :sb-unix :sxp :log :cli :obj)
109
a5adbe8640b0 tests, bug fixes, parser init
ellis <ellis@rwest.io>
parents: 104
diff changeset
35
   (:import-from :cli :find-exe)
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
36
   (:import-from :uiop :read-file-forms :ensure-absolute-pathname)
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
37
   (:import-from :uiop/pathname :pathname-parent-directory-pathname)
145
baff44778a9c skel/core/vc impl
ellis <ellis@rwest.io>
parents: 126
diff changeset
38
   (:import-from :uiop :with-current-directory)
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
39
   (:import-from :sb-ext :run-program)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
40
   (:import-from :std :when-let)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
41
   (:import-from :sxp :form)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
42
   (:export
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
43
    ;; err
158
ellis <ellis@rwest.io>
parents: 145
diff changeset
44
    :skel-error
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
45
    :skel-syntax-error
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
46
    :skel-fmt-error
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
47
    :skel-compile-error
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
48
    ;; proto
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
49
    :sk-run :sk-new :sk-save
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
50
    :sk-tangle :sk-weave
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
51
    :sk-call :sk-print :sk-load
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
52
    :sk-compile :sk-transform
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
53
    :sk-write :sk-writeln
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
54
    :sk-write-string :sk-write-file
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
55
    :sk-read-file :sk-install-user-config
284
597f34d43df7 x.lisp upgrades, skel upgrades, worked on shell reader macros
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
56
    :sk-find-rule
312
1d46d8e02802 skel scripts
Richard Westhaver <ellis@rwest.io>
parents: 289
diff changeset
57
    :sk-find-script
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
58
    ;; header
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
59
    :make-file-header 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
60
    :make-shebang-file-header 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
61
    :make-source-file-header 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
62
    :file-header-kind
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
63
    :make-source-header-comment 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
64
    :make-shebang-comment
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
65
    ;; virt
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
66
    :containerfile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
67
    :*default-containerfile*
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
68
    ;; obj
158
ellis <ellis@rwest.io>
parents: 145
diff changeset
69
    :*user-skelrc* :*system-skelrc*
ellis <ellis@rwest.io>
parents: 145
diff changeset
70
    :*skel-project* :*skel-user-config* :*default-skelrc* :*skel-registry* :*skel-cache*
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
71
    :*default-skelfile* :*default-skel-user* :*default-skel-cache* :*default-user-skel-config* 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
72
    :*default-user-skelrc* :*default-system-skel-config* :*skelfile-extension* :*skelfile-boundary*
183
0751b8aaa176 fixed refs to sk-shed
Richard Westhaver <ellis@rwest.io>
parents: 162
diff changeset
73
    :*default-skel-stash*
158
ellis <ellis@rwest.io>
parents: 145
diff changeset
74
    :*default-system-skelrc*
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 287
diff changeset
75
    :load-ast
183
0751b8aaa176 fixed refs to sk-shed
Richard Westhaver <ellis@rwest.io>
parents: 162
diff changeset
76
    :sk-author :sk-path :sk-stash :sk-cache :sk-registry :sk-user
103
60417ede92a3 split git/hg
ellis <ellis@rwest.io>
parents: 96
diff changeset
77
    :sk-push :sk-pull
60417ede92a3 split git/hg
ellis <ellis@rwest.io>
parents: 96
diff changeset
78
    :edit-skelrc
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
79
    :skel :sk-meta :def-sk-class :sk-project :sk-target :sk-source :sk-vc
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
80
    :sk-rule :sk-rule-target :sk-rule-source :sk-rule-recipe :make-sk-rule 
104
6e5caf0c68a1 obj tree, id, hash, seq, graph.. added cli/progress and init cli/repl
ellis <ellis@rwest.io>
parents: 103
diff changeset
81
    :sk-description :sk-kind :sk-rules :sk-version :sk-name :sk-docs :sk-document 
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
82
    :sk-command :sk-scripts :sk-script :sk-config :sk-snippets :sk-snippet :sk-abbrevs :sk-abbrev
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
83
    :sk-user-config
158
ellis <ellis@rwest.io>
parents: 145
diff changeset
84
    :sk-system-config
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
85
    ;; util
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
86
    :init-skelrc :load-skelrc
287
609931bd65ba organ updates, readme.org
Richard Westhaver <ellis@rwest.io>
parents: 284
diff changeset
87
    :init-skel-vars
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
88
    :init-user-skelrc :load-user-skelrc
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
89
    :init-system-skelrc :load-system-skelrc
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
90
    :init-skelfile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
91
    :load-skelfile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
92
    :find-skelfile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
93
    :find-project-root
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
94
    :describe-skeleton
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
95
    :describe-project
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
96
    ;; vm
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
97
    :make-stack-slot :make-sk-vm :sks-ref :sks-pop :sks-push))
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
98
 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
99
 (defpackage :skel/comp
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
100
   (:use :cl :std :skel/core :sxp)
91
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
101
   (:export
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
102
    ;; asd
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
103
    :sk-asd
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
104
    ;; ignore
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
105
    ;; containerfile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
106
    ;; makefile
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
107
    :*default-makefile* :*makefile-extension* 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
108
    :*mk-magic-vars* :*mk-command-prefixes*
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
109
    :mk-val-designator 
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
110
    :mk-val :mk-var
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
111
    :makefile :push-rule :push-directive :push-var))
a0d966c3a576 skel no longer package inferred
ellis <ellis@rwest.io>
parents: 79
diff changeset
112
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
113
 (uiop:define-package :skel
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents: 93
diff changeset
114
     (:use :cl :std :skel/core :skel/comp)
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
115
     (:use-reexport :skel/core :skel/comp))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
116
 
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
117
 ;;; Tools
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
118
 (defpackage :skel/viz
162
cc74c0054bc1 prelude
ellis <ellis@rwest.io>
parents: 161
diff changeset
119
   (:use :cl :std :skel)
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
120
   (:export))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
121
 
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
122
 (defpackage :skel/deploy
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
123
   (:use :cl :std :skel)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents: 91
diff changeset
124
   (:export))
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
125
 
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
126
 ;;; Extensions
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
127
 (defpackage :skel/asdf
231
Richard Westhaver <ellis@rwest.io>
parents: 230
diff changeset
128
   (:use :cl :std :skel)
206
a0f64fed8f2a refactor nu ci, skel and homer updates
Richard Westhaver <ellis@rwest.io>
parents: 183
diff changeset
129
   (:export))