#!/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:
