MCPcopy Create free account
hub / github.com/nccgroup/ScoutSuite / JavaScriptEncoder

Class JavaScriptEncoder

ScoutSuite/output/result_encoder.py:92–140  ·  view source on GitHub ↗

Reader/Writer for JS and JSON files

Source from the content-addressed store, hash-verified

90
91
92class JavaScriptEncoder(ScoutResultEncoder):
93 """
94 Reader/Writer for JS and JSON files
95 """
96
97 def load_from_file(self, file_type, file_path=None, first_line=None):
98 if not file_path:
99 file_path, first_line = get_filename(file_type, self.report_name, self.report_dir)
100 with open(file_path) as f:
101 json_payload = f.readlines()
102 if first_line:
103 json_payload.pop(0)
104 json_payload = ''.join(json_payload)
105 return json.loads(json_payload)
106
107 def save_to_file(self, content, file_type, force_write, debug):
108 config_path, first_line = get_filename(file_type, self.report_name, self.report_dir)
109 print_info('Saving data to %s' % config_path)
110 try:
111 with self.__open_file(config_path, force_write) as f:
112 if first_line:
113 print('%s' % first_line, file=f)
114 print('%s' % json.dumps(content, indent=4 if debug else None, separators=(',', ': '), sort_keys=True,
115 cls=ScoutJsonEncoder), file=f)
116 except AttributeError as e:
117 # __open_file returned None
118 pass
119 except Exception as e:
120 print_exception(e)
121
122 @staticmethod
123 def __open_file(config_filename, force_write):
124 """
125
126 :param config_filename:
127 :param force_write:
128 :param quiet:
129 :return:
130 """
131 if prompt_for_overwrite(config_filename, force_write):
132 try:
133 config_dirname = os.path.dirname(config_filename)
134 if not os.path.isdir(config_dirname):
135 os.makedirs(config_dirname)
136 return open(config_filename, 'wt')
137 except Exception as e:
138 print_exception(e)
139 else:
140 return None

Callers 2

__init__Method · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected