#!/usr/bin/python3

import os
import argparse
import shutil
from gmapsbounds import obj
from gmapsbounds import utils

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("input_filename", help="file name containing geographic locations")
    parser.add_argument('-d', "--output_dir", help="directory for program output", default=os.getcwd())
    parser.add_argument('-f', "--output_filename", help="directory for program output")
    args = parser.parse_args()
    if not os.path.exists(args.output_dir):
        os.makedirs(args.output_dir)
    with open(args.input_filename) as f:
        location_list = f.readlines()
    if location_list:
        driver = utils.launch_driver()
        try:
            for location_name in location_list:
                location_name = location_name.rstrip('\n')
                location = obj.Location(driver, location_name)
                try:
                    location.download_center_map()
                    location.calculate_coordinates()
                    location.write_to_kml(os.path.join(args.output_dir, '{}.kml'.format(location_name)))
                finally:
                    if os.path.exists(location.save_dir):
                        shutil.rmtree(location.save_dir)
        finally:
            driver.close()

if __name__ == '__main__':
    main()