aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--steuermann/specfile.exy8
1 files changed, 6 insertions, 2 deletions
diff --git a/steuermann/specfile.exy b/steuermann/specfile.exy
index f848072..de37aac 100644
--- a/steuermann/specfile.exy
+++ b/steuermann/specfile.exy
@@ -12,6 +12,7 @@ parser specfile:
token END: "$"
token HOSTGROUP: "HOSTGROUP"
token IF: "IF"
+ token IFNOT: "IFNOT"
token TABLE: "TABLE"
token HOST : "HOST"
token CMD: "CMD"
@@ -57,7 +58,9 @@ parser specfile:
rule hostgroup_front<<hg>> :
IF name
- {{ return nodes.check_condition(name, self._scanner.filename ) }}
+ {{ return nodes.check_condition(name, self._scanner.filename ) }}
+ | IFNOT name
+ {{ return not nodes.check_condition(name, self._scanner.filename ) }}
| {{ return True }}
rule hostgroup_back<<hg,accept_nodes>> :
@@ -67,7 +70,8 @@ parser specfile:
)*
rule command_cond<<table_name,hostlist>> :
- IF name COLON command {{ if nodes.check_condition(name, self._scanner.filename ) : self.data.add_command_list( table_name, hostlist, [ command ] ) }}
+ IF name COLON command {{ if nodes.check_condition(name, self._scanner.filename ) : self.data.add_command_list( table_name, hostlist, [ command ] ) }}
+ IFNOT name COLON command {{ if not nodes.check_condition(name, self._scanner.filename ) : self.data.add_command_list( table_name, hostlist, [ command ] ) }}
| command {{ self.data.add_command_list( table_name, hostlist, [ command ] ) }}
rule command: