def main(): """MAIN PROGRAM""" logging.info("Script starting...") params = Params() logging.info("Parsing parameters...") try: params.get_args() except (errors.InputError, errors.ParamError) as e: sys.stderr.write(str(e) + '\n') exit(1) logging.info("Parsing system calls log file...") # Position of system call names in the log if params.time_included: column_pos = 1 else: column_pos = 0 parser = LogParser(params.input_log, column_pos) #print("Calls analysed: {}".format(parser.system_calls_num)) # TODO if params.ngram is not None: logging.info("Getting Ngram...") feature_vector = parser.ngram(params.ngram, params.normalise, params.syscalls_list) #print("Unique sequences: {}".format(len(feature_vector))) elif params.co_occurrence_matrix is not None: logging.info("Getting Co-occurrence matrix...") feature_vector = parser.co_occurrence_matrix(params.co_occurrence_matrix, params.normalise, params.syscalls_list) else: if not params.histogram: sys.stderr.write("No option selected, using histogram.\n") logging.info("Getting Histogram...") feature_vector = parser.histogram(params.normalise, params.syscalls_list) if params.csv_values: #print(feature_vector.get_csv_values(), file=params.output) writer = csv.writer(params.output, lineterminator="\n") writer.writerow(feature_vector.get_values()) else: print(feature_vector, file=params.output, end='') params.cleanup()