/
index.haml
101 lines (86 loc) · 4.23 KB
/
index.haml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
.text-center
%h1
Only a submissive system is a good system...
%img{ :src => "/images/submissive.png", :alt => "rawr!!!" }
%br
%br
%h1.text-center
BDSM :: Badass Delectable Scripting Modules
%hr
%h2
Introduction
%p
Badass Delectable Scripting Modules (BDSM) Framework
%h2 What It Is
%p
BDSM is a powerful new framework for developing, maintaining and sharing system scripts,
while exposing them for easy automation via a clean, consistent DSL-centric command-line interface.
%h2 Why You'd Care
%p
With BDSM, thousands of tools, utilities and applications running on your machine become
incredibly easy to automate and control. You'll find it quite invaluable for website development, too.
%p
BDSM cuts away all the tedious, funky syntax that festoons your everyday command-line experience,
in favor of a lean, mean Ruby-like Domain-Specific Language,
just tailor-made for cracking your whip on those unruly system management tasks. Short, crisp words of command can convey such a tremendously
%em spine-tingling
authority, after all.
%p
So, whether you're just looking for easier ways to run your own personal *nix-based machine
more efficiently, or whether you're already administering dozens, hundreds or
%em thousands
of machines at a time with a tool like Puppet or Chef, chances are excellent that BDSM will save you major headaches.
%p
(In the latter case, the abstraction that BDSM painlessly interjects helps to seriously de-clutter your Puppet or Chef
work - making it easier to get things running right in the first place; significantly more portable across execution environments;
and far easier to maintain. What's not to love, in your own intensely personal way?)
%h2 Architecture
%p
BDSM itself delivers a robust core framework, with minimal prerequisites. You just need GNU coreutils, plus Bash or ZShell.
(Your distro probably includes these already.)
%p
One layer up from its core, BDSM includes a broad set of modules, which perform a comparable role to the standard
run-time loadable libraries found in classic programming languages.
%p
Then, BDSM extensions step up another level, calling the lower-level functions provided by the modules to
implement the specific behaviors (aka actions) you'll command, as your scripts interface with the applications
and services running on your target machine environment.
%p
Dozens of extensions are in active development by a burgeoning crew of Open Source contributors right now,
with a diverse selection immediately available to get things off to a quite thrilling start.
%p
And should you find that some critical action you need doesn't exist yet (our out-of-the-box goal for 1.0.0
is to have everything at least 90% of people want already in there), it's extremely easy to write
your own extension. Pick any language you like: C, Ruby, Perl, Lua, you name it;
if it can spit out an executable file that will run in your intended environment, you can use it.
%h2 Creating Extensions
%p
There are only a few requirements for a BDSM extension:
%ul
%li
All extensions get their own individual directory.
%li
Within each extension's main directory (minimally) you'll find a bin/ subdirectory
%ul
%li
with at least one executable file inside, called 'help'.
%li
Additionally, in the root of its main directory, every extension needs a VERSION text file,
complying with semantic versioning convention
%a{ :href => "http://semver.org/" }
(http://semver.org/);
i.e. in the format X.Y.Z, where X,Y & Z are all positive integers.
%p
The bin/ directory can contain *any* executable file type. So, C-compiled binaries, Ruby,
python, lua, etc. (not forgetting Shell scripts!) may all be used; whatever you prefer.
%h2 Support
%p
BDSM is continuously and rapidly evolving, thanks to constant community feedback.
BDSM's core developers (Wayne E. Seguin and Michal Papis) are highly responsive, address issues
quickly and are fully committed to helping the BDSM community grow.
%br
(And the community's computers? Waiting breathlessly, attentively, and
%em above all, obediently;
ready and eager to leap to fulfill the
%strong slightest whim
of their mistresses and masters, of course. :)