mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C#: Add python script for generating YAML files containing data extensions.
This commit is contained in:
41
misc/scripts/models-as-data/helpers.py
Normal file
41
misc/scripts/models-as-data/helpers.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
# Shared strings.
|
||||
summaryModelPredicate = "extSummaryModel"
|
||||
sinkModelPredicate = "extSinkModel"
|
||||
sourceModelPredicate = "extSourceModel"
|
||||
addsToTemplate = """
|
||||
- addsTo:
|
||||
pack: {0}
|
||||
extensible: {1}
|
||||
data:
|
||||
{2}
|
||||
"""
|
||||
|
||||
def remove_dir(dirName):
|
||||
if os.path.isdir(dirName):
|
||||
shutil.rmtree(dirName)
|
||||
print("Removed directory:", dirName)
|
||||
|
||||
def run_cmd(cmd, msg="Failed to run command"):
|
||||
print('Running ' + ' '.join(cmd))
|
||||
if subprocess.check_call(cmd):
|
||||
print(msg)
|
||||
exit(1)
|
||||
|
||||
def readData(workDir, bqrsFile):
|
||||
generatedJson = os.path.join(workDir, "out.json")
|
||||
print('Decoding BQRS to JSON.')
|
||||
run_cmd(['codeql', 'bqrs', 'decode', bqrsFile, '--output', generatedJson, '--format=json'], "Failed to decode BQRS.")
|
||||
|
||||
with open(generatedJson) as f:
|
||||
results = json.load(f)
|
||||
|
||||
try:
|
||||
return results['#select']['tuples']
|
||||
except KeyError:
|
||||
print('Unexpected JSON output - no tuples found')
|
||||
exit(1)
|
||||
Reference in New Issue
Block a user