From f2ef4cedecf554c0c9f0694f93df1d53a57bf70c Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Tue, 1 Sep 2020 23:02:36 +0200 Subject: Fix reason filetype detection, closes #532 --- scripts/build | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'scripts/build') diff --git a/scripts/build b/scripts/build index 384c8423..1fe148e7 100755 --- a/scripts/build +++ b/scripts/build @@ -202,9 +202,17 @@ def indent(str, amount) end def pattern_to_condition(rule) + if rule.has_key?("or") + return rule["or"].map { |p| pattern_to_condition(p) }.join(" || ") + end + + if rule.has_key?("or") + return rule["and"].map { |p| pattern_to_condition(p) }.join(" && ") + end + operator = (rule["negative"] ? "!" : "=") + "~" + (rule["ignore_case"] ? "?" : "#") - "line #{operator} '#{rule["pattern"]}'" + return "line #{operator} '#{rule["pattern"]}'" end def rules_to_code(rules) @@ -250,10 +258,10 @@ def rule_to_code(rule) return rule["rules"].map { |r| indent(rule_to_code(r), 0) }.join("\n") end - if rule.has_key?("pattern") + if rule.has_key?("pattern") || rule.has_key?("or") || rule.has_key?("and") return <<~EOS if #{pattern_to_condition(rule)} - #{indent(rule_to_code(except(rule, "pattern", "ignore_case", "negative")), 2)} + #{indent(rule_to_code(except(rule, "pattern", "or", "and", "ignore_case", "negative")), 2)} endif EOS end -- cgit v1.2.3