#!/usr/bin/env python3
# Fixes Hetzner CSV reports by cleaning the CSV and merging project name from PDF

import argparse
import os
import sys

import pandas as pd

from hetzner_fix_report import hetzner_fix_report

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
            description='Fixes Hetzner CSV reports by cleaning the CSV and merging project name from PDF')
    parser.add_argument('-o', '--output', help='Output file path. Render to stdout if unused', default=False)
    parser.add_argument('base_csv', help='Path to csv base file')
    parser.add_argument('base_pdf', help='Path to pdf base file')
    
    if len(sys.argv) < 3:
        parser.print_help(sys.stderr)
        sys.exit(1)
    args = parser.parse_args()

    # Check if files exists
    for f in [args.base_csv, args.base_pdf]:
        if not os.path.isfile(f):
            print(f"File not found: {f}")
            sys.exit(1)

    df = hetzner_fix_report(args.base_csv, args.base_pdf)

    if not args.output:
        print(df.to_csv(index=False))
    else:
        df.to_csv(args.output, index=False)
