prebuilt-rules-scripts/update_current_text.py (24 lines of code) (raw):
import json
from pathlib import Path
releaseVersion = "7.11.0" # Security app release version - update as required
ROOT = Path(__file__).resolve().parent.parent
def sort_by_name(rule):
'''
Helper to sort rule by name'''
return rule['name']
# Path to latest prebuilt rules JSON file
rule_dump = ROOT.joinpath("prebuilt-rules-scripts", "orig-rules-json-files", releaseVersion + "-prebuilt-rule.json")
with open(rule_dump, "r") as source:
currentText = json.load(source)
# Path to JSON file generated from existing documentation
diff_file = ROOT.joinpath("prebuilt-rules-scripts/diff-files/gen-files/json-from-docs-" + releaseVersion + ".json")
with open(diff_file, "r") as source:
updatedText = json.load(source)
for rule in currentText:
for newText in updatedText:
if rule['name'] == newText['name']:
rule['description'] = newText['description']
if 'false_positives' in newText and 'false_positives' in rule:
rule['false_positives'][0] = newText['false_positives'][0]
if 'note' in newText:
rule['note'] = newText['note']
# Output file with updated text from the documentation for previously existing
# prebuilt rules. New rules are unchanged.
with open(diff_file, "w") as fp:
json.dump(currentText, fp, indent=2)