<reponame>pageinsec/security_content
#!/usr/bin/python

import glob
import yaml
import os
from os import path
import sys


def load_objects(file_path, REPO_PATH):
    files = []
    manifest_files = path.join(path.expanduser(REPO_PATH), file_path)
    for file in sorted(glob.glob(manifest_files)):
        files.append(load_file(file))
    return files


def load_file(file_path):
    with open(file_path, 'r', encoding="utf-8") as stream:
        try:
            file = list(yaml.safe_load_all(stream))[0]
        except yaml.YAMLError as exc:
            print(exc)
            sys.exit("ERROR: reading {0}".format(file_path))
    return file


def main(args):
    print("copy baselines into it's own folder")

    # process all detections
    REPO_PATH = os.path.join(os.path.dirname(__file__), '../')
    detections = []
    detections = load_objects("detections/application/*.yml", REPO_PATH)
    detections.extend(load_objects("detections/cloud/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/endpoint/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/network/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/web/*.yml", REPO_PATH))

    baselines = []
    os.mkdir('baselines')

    for detection in detections:
        if detection['type'] == 'Baseline':
            baseline_file_name =  detection['name'].replace(' ', '_').replace('-','_').replace('.','_').replace('/','_').lower()
            file = open("baselines/" + baseline_file_name + ".yml", "w")
            yaml.dump(detection, file)
            file.close()


if __name__ == "__main__":
    main(sys.argv[1:])
#!/usr/bin/python

import glob
import yaml
import os
from os import path
import sys


def load_objects(file_path, REPO_PATH):
    files = []
    manifest_files = path.join(path.expanduser(REPO_PATH), file_path)
    for file in sorted(glob.glob(manifest_files)):
        files.append(load_file(file))
    return files


def load_file(file_path):
    with open(file_path, 'r', encoding="utf-8") as stream:
        try:
            file = list(yaml.safe_load_all(stream))[0]
        except yaml.YAMLError as exc:
            print(exc)
            sys.exit("ERROR: reading {0}".format(file_path))
    return file


def main(args):
    print("copy baselines into it's own folder")

    # process all detections
    REPO_PATH = os.path.join(os.path.dirname(__file__), '../')
    detections = []
    detections = load_objects("detections/application/*.yml", REPO_PATH)
    detections.extend(load_objects("detections/cloud/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/endpoint/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/network/*.yml", REPO_PATH))
    detections.extend(load_objects("detections/web/*.yml", REPO_PATH))

    baselines = []
    os.mkdir('baselines')

    for detection in detections:
        if detection['type'] == 'Baseline':
            baseline_file_name =  detection['name'].replace(' ', '_').replace('-','_').replace('.','_').replace('/','_').lower()
            file = open("baselines/" + baseline_file_name + ".yml", "w")
            yaml.dump(detection, file)
            file.close()


if __name__ == "__main__":
    main(sys.argv[1:])
#!/usr/bin/python # process all detections