diff options
-rw-r--r-- | steuermann/specfile.exy | 8 |
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: |