lang: Initial implementation of the mgmt language
This is an initial implementation of the mgmt language. It is a declarative (immutable) functional, reactive, domain specific programming language. It is intended to be a language that is: * safe * powerful * easy to reason about With these properties, we hope this language, and the mgmt engine will allow you to model the real-time systems that you'd like to automate. This also includes a number of other associated changes. Sorry for the large size of this patch.
This commit is contained in:
35
examples/lang/states0.mcl
Normal file
35
examples/lang/states0.mcl
Normal file
@@ -0,0 +1,35 @@
|
||||
$ns = "estate"
|
||||
$exchanged = kvlookup($ns)
|
||||
|
||||
$state = maplookup($exchanged, $hostname, "default")
|
||||
|
||||
if $state == "one" || $state == "default" {
|
||||
|
||||
file "/tmp/mgmt/state" {
|
||||
content => "state: one\n",
|
||||
}
|
||||
kv "${ns}" {
|
||||
key => $ns,
|
||||
value => "two",
|
||||
}
|
||||
}
|
||||
if $state == "two" {
|
||||
|
||||
file "/tmp/mgmt/state" {
|
||||
content => "state: two\n",
|
||||
}
|
||||
kv "${ns}" {
|
||||
key => $ns,
|
||||
value => "three",
|
||||
}
|
||||
}
|
||||
if $state == "three" {
|
||||
|
||||
file "/tmp/mgmt/state" {
|
||||
content => "state: three\n",
|
||||
}
|
||||
kv "${ns}" {
|
||||
key => $ns,
|
||||
value => "one",
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user