#!/usr/bin/env python3

import argparse
import os
from subprocess import call


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description="Generates dataset")
    parser.add_argument('dataset', help='Dataset directory path', type=str)
    parser.add_argument('-d', help='Decals count', type=int, default=8, dest="decals")
    parser.add_argument('-n', help='Noise level', type=float, default=.4, dest="noise")
    args = parser.parse_args()
    
    dataset_path = args.dataset
    ok_path = "ok_" + dataset_path
    damaged_path = "damaged_" + dataset_path
    
    if not os.path.exists(dataset_path):
        raise RuntimeError("fuk")
    
    if not os.path.exists(damaged_path):
        os.makedirs(damaged_path)

    if not os.path.exists(ok_path):
        os.makedirs(ok_path)
    
    dataset_images_paths = [os.path.join(dataset_path, f) for f in os.listdir(dataset_path)]
    ok_images_paths = [os.path.join(ok_path, f) for f in os.listdir(dataset_path)]
    damaged_images_paths = [os.path.join(damaged_path, f) for f in os.listdir(dataset_path)]

    for dataset_image_path, ok_image_path, damaged_image_path in zip(dataset_images_paths, ok_images_paths, damaged_images_paths):
        call(['python', './uss-mariusz.py', dataset_image_path, ok_image_path, damaged_image_path, '-d', str(args.decals), '-n', str(args.noise)])
