changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > docs / annotate core/bin/skel.org

changeset 28: a0017112db77
parent: 411eeaebc6d2
child: 0b69e63c9374
author: Richard Westhaver <ellis@rwest.io>
date: Thu, 06 Jun 2024 23:15:50 -0400
permissions: -rw-r--r--
description: style update
23
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 #+title: skel
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 #+author: Richard Westhaver
28
a0017112db77 style update
Richard Westhaver <ellis@rwest.io>
parents: 23
diff changeset
3
 #+setupfile: ../../../clean.theme
23
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 The =skel= CLI is the primary build tool for contributors and serves a
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 similar role to language-agnostic build tools like [[https://www.gnu.org/software/make/][GNU Make]], but with
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 the features and ease-of-use of language-specific build tools like
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 Rust's [[https://github.com/rust-lang/cargo][Cargo]].
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 * features
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 ** configuration
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 The ~skel~ tool can be configured at runtime using the CLI flags, or
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 via local configuration files. The configuration files are in the
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 ~skelfile~ format and are assigned the following locations by default:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 - ~*default-user-skelrc*~ :: =$HOME/.skelrc=
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 - ~*default-system-skelrc*~ :: =/etc/skel/skelrc=
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 Both files are optional and the user skelrc takes precedence over
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 system.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 Example =~/.skelrc=:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 #+begin_src shell :results output
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 cat ~/.skelrc
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 #+end_src
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 #+RESULTS:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
 #+begin_example
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 ;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*-
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 :name "Richard Westhaver <ellis@rwest.io>"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 :user "ellis"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 :version "0.1.0"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 :tags ("auto")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 :fmt :pretty
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 :vc :hg
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 :auto-insert t
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 :license :mpl2
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 :log-level :info
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 :stash ".stash"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 ;; :scratch ".stash/scratch"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 :cache ".cache"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 :registry ".data/skel/registry"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 :scripts ("/usr/local/share/stash/scripts" "~/stash/scripts")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 :alias-list
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 (("p" "vc push")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
  ("P" "vc pull")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
  ("ci" "vc commit"))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 #+end_example
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 ** projects
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 Projects are the highest-level objects int the ~skel~ system. A project
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 consists of a list of slots which are populated automatically or by
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 the user. Once a project is initialized the slots can be accessed and
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 a set of high-level operations can be performed.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 The easiest way to initialize a project is with a ~skelfile~. These
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 files are parsed as a simplified Lisp dialect and generate
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 ~sk-project~ objects based on their contents.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
 The simplest project looks like this:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
 #+begin_src skel :results pp replace :exports both
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 :name hello-world
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 #+end_src
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
 Don't worry, this is still lisp - the parentheses are implied. All we
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
 actually need is a name to generate an object, and we can fill in the
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 blanks later as the project develops.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
 Here is a more verbose example, still with only metadata:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
 #+begin_src skel :results pp replace :exports both
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
 ;;; skelfile --- core skelfile -*- mode: skel; -*-
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 :name "core"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 :author "Richard Westhaver <ellis@rwest.io>"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 :version "0.1.0"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
 :license "MPL"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
 :description "The Compiler Company Core"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
 :vc :hg
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
 :tags ("core")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
 :docs ((:org "readme") (:org "install") (:org "tests") (:org "todo"))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
 :import ("lisp/lisp.sk" "rust/rust.sk")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
 #+end_src
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 Another example with rules and components:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
 #+begin_src skel
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
 ;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*-
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
 :name skel
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 :author "ellis"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 :version "0.1.0"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
 :description "a hacker's project compiler"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
 :license "MPL"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
92
 :vc :hg
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
93
 :tags ("lisp")
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
 :rules ((build () (print (asdf:make :skel/cli)))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
         (clean () #$rm -rf */*.fasl$#))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
 :docs ((:org "readme"))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 :components
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 ((:elisp "sk"))
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 :stash "~/dev/comp/stash"
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
 #+end_src
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
 ** version control
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
 =skel= integrates closely with our Version Control System (VCS) which
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
 is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
 repositories.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
 The =skel= tool helps us abstract away the differences between git/hg
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
 and make maximum use of their utility. When you run a =skel vc=
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
 command the currently active ~sk-project~ and configuration are used
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
109
 to determine the appropriate VC backend to call. New backends can of
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
110
 course be added as extensions.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
111
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
 ** TODO compilers
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
 - State "TODO"       from              [2023-12-09 Sat 19:28]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
 One of the most unusual features of =skel= is the compiler set. With
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
 the =skel= CLI you can compile the following types of files for your
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
 project directly from a ~skelfile~:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
 - Makefile (.mk)
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
118
 - Lisp system defs (.asd)
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
119
 - Cargo.toml
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
120
 - Containerfile
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
121
 - .hgignore/.gitignore
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
122
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
123
 We treat skelfiles as the mother of all build formats and consolidate
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
124
 different formats into our own project DSL. This helps reduce
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
125
 complexity while increasing capability and portability.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
126
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
127
 Project compilation occurs on demand with the =sk compile= command.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
128
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
129
 ** TODO virtualization
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
130
 - State "TODO"       from              [2023-12-09 Sat 18:55]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
131
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
132
   =skel= offers a mechanism for generating and running Virtual
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
133
   Machines (VMs) and Containers. Under the hood we depend on [[https://podman.io/][podman]]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
134
   for our container runtime as well as [[https://www.qemu.org/][QEMU]] for some
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
135
   functionality.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
136
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
137
 ** TODO emacs integration
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
138
 - State "TODO"       from              [2023-12-09 Sat 19:30]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
139
 =sk.el= is the Emacs support package for skel. It contains a
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
140
 =skel-mode= for working with skelfiles and will soon contain
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
141
 additional built-in integrations for =project.el=, =vc.el=, and more.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
142
 ** TODO deployment
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
143
 - State "TODO"       from              [2023-12-09 Sat 19:37]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
144
 ** TODO visualization
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
145
 - State "TODO"       from              [2023-12-09 Sat 19:37]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
146
 * help
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
147
 #+begin_src shell :results pp replace :exports both
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
148
 skel -h
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
149
 #+end_src
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
150
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
151
 #+RESULTS:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
152
 #+begin_example
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
153
 skel v0.1.1 --- A hacker's project compiler.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
154
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
155
   usage: skel [global] <command> [<arg>]
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
156
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
157
 options:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
158
   -h/--help* :  print this message
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
159
   -v/--version* :  print version
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
160
   -l/--level* :  set log level (warn,info,debug,trace)
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
161
   -c/--config* :  set a custom skel user config
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
162
   -i/--input* :  input source
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
163
   -o/--output* :  output target
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
164
 
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
165
 commands:
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
166
   init : initialize a skelfile in the current directory
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
167
     -n/--name :  project name
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
168
   new : make a new skel project
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
169
     -n/--name :  project name
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
170
   describe : describe a skelfile
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
171
   show : show project slots
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
172
     -f/--file :  path to skelfile
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
173
     -u/--user :  print user configuration
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
174
     -s/--system :  print system configuration
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
175
   vc : version control
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
176
     -r/--root :  repository path
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
177
   id : print the project id
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
178
   rev : print the current vc revision id
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
179
   inspect : inspect the project skelfile
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
180
     -f/--file :  path to skelfile
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
181
   make : build project targets
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
182
     -t/--target :  target to build
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
183
   run : run a script or command
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
184
   status : print the vc status
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
185
   push : push the current project upstream
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
186
   pull : pull the current project from remote
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
187
   clone : clone a remote project
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
188
   commit : commit changes to the project vc
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
189
   edit : edit a project file in emacs.
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
190
   shell : open the sk-shell interpreter
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
191
 #+end_example
411eeaebc6d2 doc updates
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
192