Skip to content
Newer
Older
100644 119 lines (83 sloc) 4.44 KB
8b91e87 @wayneeseguin More wording alterations and code simplification.
wayneeseguin authored Aug 19, 2011
1 # S{cripting,ystem,tack} Management (SM) Framework (Core)
c021aa3 @wayneeseguin services -> extensions.gs
wayneeseguin authored Jan 6, 2010
2
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored Jun 5, 2012
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 Jan 6, 2010
5
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored Mar 26, 2011
6 # Goal
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored Dec 9, 2010
7
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored Jun 5, 2012
8 SM delivers an extensible scripting framework providing a very robust DSL API.
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored Aug 19, 2011
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 Jun 5, 2012
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 Dec 9, 2010
12
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored Mar 27, 2011
13 # Architecture
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored Dec 9, 2010
14
d5184cd @wayneeseguin Updated README with slight clarifications.
wayneeseguin authored Jun 5, 2012
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 Dec 9, 2010
22
600d88b @mpapis add installation oneliner to README
mpapis authored Apr 26, 2012
23 # Installation
24
25 The easiest way to install is to use following oneliner:
26
94bdd7b @drnic Update installation instructions
drnic authored Jul 21, 2012
27 curl -L https://get.smf.sh | sh
600d88b @mpapis add installation oneliner to README
mpapis authored Apr 25, 2012
28
789c7ff @wayneeseguin Added manual url to readme.
wayneeseguin authored Jan 2, 2012
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
8e1a22e @davidpelaez Updated manual url in Readme
davidpelaez authored May 18, 2014
36 https://smf.sh/docs/sm-manual.pdf
789c7ff @wayneeseguin Added manual url to readme.
wayneeseguin authored Jan 2, 2012
37
38 Anytime updates are made to the manual a new version is pushed to that url.
39
c0804bf @wayneeseguin More cleanup.
wayneeseguin authored Mar 27, 2011
40 # Creating Extensions
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored Dec 9, 2010
41
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored Aug 19, 2011
42 There are only a few requirements when creating your own SM extensions.
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored Aug 14, 2011
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 Aug 8, 2011
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 Aug 14, 2011
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 Aug 8, 2011
49
50 An extension must also have a README file, in which you should explain your
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored Aug 14, 2011
51 extension's primary purpose, and any special considerations to be kept in mind
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored Aug 8, 2011
52 when using it.
53
b46a547 @adrianrf punctuation pass; whole tree except dependencies
adrianrf authored Aug 8, 2011
54 The contents of the bin directory can be *any* executable file. This means, for
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored Aug 8, 2011
55 example, that C-compiled binaries, Ruby Scripts, python, lua, etc... may all be
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored Aug 14, 2011
56 used according to your requirements and preferences.
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored Aug 8, 2011
57
e23ec68 @wayneeseguin Removed install guard.
wayneeseguin authored Aug 14, 2011
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 Aug 19, 2011
59 own implements of choice to the SM party ;)
7a443ac @adrianrf minor typo/gramm/wording tweaks
adrianrf authored Aug 8, 2011
60
d66cbeb @adrianrf more typos/gramm/style tweaks
adrianrf authored Aug 8, 2011
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 Aug 8, 2011
62 You can read more about the DSL in the online documentation.
c20b9a1 @wayneeseguin Wrote a README.
wayneeseguin authored Dec 9, 2010
63
64 ~Wayne
65
66 Wayne E. Seguin
3ee2e0f @wayneeseguin List!
wayneeseguin authored Aug 19, 2011
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 Apr 12, 2012
71 * https://smf.sh/
600d88b @mpapis add installation oneliner to README
mpapis authored Apr 25, 2012
72 * https://rvm.io/
c021aa3 @wayneeseguin services -> extensions.gs
wayneeseguin authored Jan 6, 2010
73
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored Apr 22, 2011
74 # Contributing
75
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored Aug 19, 2011
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 Apr 22, 2011
78 In the spirit of free software, everyone is encouraged to help improve this project.
79
3ee2e0f @wayneeseguin List!
wayneeseguin authored Aug 19, 2011
80 Ways that you may contribute to the project are by:
a9a6990 @wayneeseguin Added Contributing section to readme from prompting by @sferik
wayneeseguin authored Apr 22, 2011
81
3ee2e0f @wayneeseguin List!
wayneeseguin authored Aug 19, 2011
82 * using the latest development and release versions
13543e0 @wayneeseguin beginrescueend -> smf
wayneeseguin authored Apr 25, 2012
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 Aug 19, 2011
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 Apr 22, 2011
93
45af26c @wayneeseguin License adjustment and propigation.
wayneeseguin authored Apr 27, 2011
94 # License
95
2fac716 @wayneeseguin Updated pointers to SM organization on GitHub.
wayneeseguin authored Aug 19, 2011
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 Jul 20, 2011
97 the Apache License v2.0
98
45af26c @wayneeseguin License adjustment and propigation.
wayneeseguin authored Apr 27, 2011
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 Aug 19, 2011
113 # License Exceptions:
cec0084 @wayneeseguin Updated README
wayneeseguin authored Aug 7, 2011
114
8e0f2fb @wayneeseguin Added sm-sem.
wayneeseguin authored Oct 12, 2011
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 Apr 27, 2011
118
Something went wrong with that request. Please try again.