Skip to content
Newer
Older
100644 119 lines (83 sloc) 4.43 KB
8b91e87 @wayneeseguin More wording alterations and code simplification.
wayneeseguin authored
1 # S{cripting,ystem,tack} Management (SM) Framework (Core)
c021aa3 @wayneeseguin services -> extensions.gs
wayneeseguin authored
2
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored
3 SM is a system scripting & management framework together with a domain
4 specific language API (DSL) for managing software, systems and stacks!
c021aa3 @wayneeseguin services -> extensions.gs
wayneeseguin authored
5
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored
6 # Goal
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
7
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored
8 SM delivers an extensible scripting framework providing a very robust DSL API.
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored
9 A primary tenet of SM is that it must handle as much pain as possible, so you don't have to!
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored
10 With SM's DSL APIs, you can quickly create your own high-quality extensions,
11 and expose their commands through SM's command line interface (CLI).
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
12
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored
13 # Architecture
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
14
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored
15 SM itself is a scripting framework that enables very rich DSL commands known as
16 'apis'. SM lets you use the DSL APIs to painlessly write powerful 'extensions',
17 which are essentially named sets of scripts (directories!). With SM, you'll find
18 you can install and manage a multitude of extensions - and even entire sets of
19 extensions - providing unprecedented levels of control and automation
20 productivity that are unleashed by the creative abilities of SM's energetic
21 community of extension authors :)
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
22
600d88b @mpapis add installation oneliner to README
mpapis authored
23 # Installation
24
25 The easiest way to install is to use following oneliner:
26
94bdd7b @drnic Update installation instructions
drnic authored
27 curl -L https://get.smf.sh | sh
600d88b @mpapis add installation oneliner to README
mpapis authored
28
789c7ff @wayneeseguin Added manual url to readme.
wayneeseguin authored
29 # Manual
30
31 The manual may be downloaded as a PDF. Keep in mind that it is a work in
32 progress. Suggestions on improving the manual are most welcome.
33
34 The latest version of the manual is kept at the following url:
35
2279ee2 @mpapis smf.sh
mpapis authored
36 https://smf.sh/sm-manual.pdf
789c7ff @wayneeseguin Added manual url to readme.
wayneeseguin authored
37
38 Anytime updates are made to the manual a new version is pushed to that url.
39
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored
40 # Creating Extensions
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
41
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored
42 There are only a few requirements when creating your own SM extensions.
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored
43 The extension must live in a dedicated directory. Within this directory are
44 (at least) the subdirectory bin/, containing at least one executable file called 'help'.
b46a547 @adrianrf punctuation pass; whole tree except dependencies
adrianrf authored
45
46 Additionally, in the root of the extension directory you must include a text file called VERSION,
47 with a version number that follows semantic versioning convention (http://semver.org/);
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored
48 that is, in the format of X.Y.Z, where X,Y and Z are positive integers.
b46a547 @adrianrf punctuation pass; whole tree except dependencies
adrianrf authored
49
50 An extension must also have a README file, in which you should explain your
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored
51 extension's primary purpose, and any special considerations to be kept in mind
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored
52 when using it.
53
b46a547 @adrianrf punctuation pass; whole tree except dependencies
adrianrf authored
54 The contents of the bin directory can be *any* executable file. This means, for
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored
55 example, that C-compiled binaries, Ruby Scripts, python, lua, etc... may all be
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored
56 used according to your requirements and preferences.
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored
57
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored
58 Of course, the extensions *I* write are generally in bash; but you can bring your
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored
59 own implements of choice to the SM party ;)
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored
60
d66cbeb @adrianrf more typos/gramm/style tweaks
adrianrf authored
61 Additionally, if you write your extensions in bash, a nice DSL is automatically loaded for you.
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored
62 You can read more about the DSL in the online documentation.
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored
63
64 ~Wayne
65
66 Wayne E. Seguin
3ee2e0f @wayneeseguin List!
wayneeseguin authored
67 * wayneeseguin@gmail.com
68 * http://github.com/wayneeseguin
69 * http://github.com/sm
70 * http://twitter.com/wayneeseguin
2279ee2 @mpapis smf.sh
mpapis authored
71 * https://smf.sh/
600d88b @mpapis add installation oneliner to README
mpapis authored
72 * https://rvm.io/
c021aa3 @wayneeseguin services -> extensions.gs
wayneeseguin authored
73
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored
74 # Contributing
75
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored
76 Development repositories are found on the SM GitHub organization page:
77 https://github.com/sm/
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored
78 In the spirit of free software, everyone is encouraged to help improve this project.
79
3ee2e0f @wayneeseguin List!
wayneeseguin authored
80 Ways that you may contribute to the project are by:
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored
81
3ee2e0f @wayneeseguin List!
wayneeseguin authored
82 * using the latest development and release versions
13543e0 @wayneeseguin beginrescueend -> smf
wayneeseguin authored
83 * reporting bugs in #smf.sh on irc.freenode.net
84 * suggesting new features in #smf.sh on irc.freenode.net
3ee2e0f @wayneeseguin List!
wayneeseguin authored
85 * writing or editing documentation, which is greatly appreciated
86 * translating documentation to a new language, I speek tech and poor engrish
87 * writing extensions
88 * writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
89 * performing code reviews and assisting with refactoring
90 * resolving issues
91 * reviewing patches
92 * donating, xoxo!
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored
93
45af26c @wayneeseguin License adjustment and propigation.
wayneeseguin authored
94 # License
95
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored
96 All SM Core scripts and extensions themselves are are licensed under
9ffa886 @wayneeseguin Feature: bdsm x,y,z {actions} - run {actions} against extensions x,y,z.
wayneeseguin authored
97 the Apache License v2.0
98
45af26c @wayneeseguin License adjustment and propigation.
wayneeseguin authored
99 Copyright (c) 2009-2011 Wayne E. Seguin
100
101 Licensed under the Apache License, Version 2.0 (the "License");
102 you may not use this file except in compliance with the License.
103 You may obtain a copy of the License at
104
105 http://www.apache.org/licenses/LICENSE-2.0
106
107 Unless required by applicable law or agreed to in writing, software
108 distributed under the License is distributed on an "AS IS" BASIS,
109 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
110 See the License for the specific language governing permissions and
111 limitations under the License.
112
3ee2e0f @wayneeseguin List!
wayneeseguin authored
113 # License Exceptions:
cec0084 @wayneeseguin Updated README
wayneeseguin authored
114
8e0f2fb @wayneeseguin Added sm-sem.
wayneeseguin authored
115 bin/sm-ll, bin/sm-sql, bin/sm-sem are all part of the GNU Parallel project
116 and are licensed under the GNU GPL v3 which can be read at either LICENSE.gpl3
117 or on the web at http://www.gnu.org/licenses/gpl.html
45af26c @wayneeseguin License adjustment and propigation.
wayneeseguin authored
118
Something went wrong with that request. Please try again.