49 lines
1.1 KiB
Python
Executable File
49 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
""" Collect information about CodeQL databases from the file system and write out
|
|
a table in CSV format.
|
|
"""
|
|
from argparse import ArgumentParser
|
|
from typing import List
|
|
|
|
from pandas import DataFrame
|
|
|
|
import qldbtools.utils as utils
|
|
import argparse
|
|
import logging
|
|
import sys
|
|
import pandas as pd
|
|
|
|
from qldbtools.utils import DBInfo
|
|
|
|
#
|
|
#* Configure logger
|
|
#
|
|
logging.basicConfig(format='%(asctime)s %(message)s')
|
|
|
|
#
|
|
#* Process command line
|
|
#
|
|
parser: ArgumentParser = argparse.ArgumentParser(
|
|
description="""Find all CodeQL DBs in and below starting_dir and export a CSV
|
|
file with relevant data.""")
|
|
parser.add_argument('starting_dir', type=str,
|
|
help='The starting directory to search for codeql.')
|
|
args = parser.parse_args()
|
|
|
|
#
|
|
#* Collect info
|
|
#
|
|
# Get the db information in list of DBInfo form
|
|
db_base: str = args.starting_dir
|
|
dbs: list[DBInfo] = list(utils.collect_dbs(db_base))
|
|
dbdf: DataFrame = pd.DataFrame([d.__dict__ for d in dbs])
|
|
#
|
|
#
|
|
#* Write info out
|
|
#
|
|
dbdf.to_csv(sys.stdout, index=False)
|
|
|
|
# Local Variables:
|
|
# python-shell-virtualenv-root: "~/work-gh/mrva/mrvacommander/client/qldbtools/venv/"
|
|
# End:
|