#!/usr/bin/env python3
# coding=utf-8

from argparse import ArgumentParser
import os
import subprocess
import sys

CONTAINER_IMAGE = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/nlp:v0.1.0'
CONTAINER_INPUT_DIR = '/input'
CONTAINER_OUTPUT_DIR = '/output'
CONTAINER_LOG_DIR = '/logs'
UID = str(os.getuid())
GID = str(os.getgid())

parser = ArgumentParser(add_help=False)
parser.add_argument('-i', '--input-dir')
parser.add_argument('-o', '--output-dir')
parser.add_argument('--log-dir')
args, remaining_args = parser.parse_known_args()

cmd = ['docker', 'run', '--rm', '-it', '-u', f'{UID}:{GID}']
if args.input_dir is not None:
    mapping = f'{os.path.abspath(args.input_dir)}:{CONTAINER_INPUT_DIR}'
    cmd += ['-v', mapping]
    remaining_args += ['-i', CONTAINER_INPUT_DIR]
if args.output_dir is not None:
    mapping = f'{os.path.abspath(args.output_dir)}:{CONTAINER_OUTPUT_DIR}'
    cmd += ['-v', mapping]
    remaining_args += ['-o', CONTAINER_OUTPUT_DIR]
if args.log_dir is not None:
    mapping = '{os.path.abspath(args.log_dir)}:{CONTAINER_LOG_DIR}'
    cmd += ['-v', mapping]
    remaining_args += ['--log-dir', CONTAINER_LOG_DIR]
cmd.append(CONTAINER_IMAGE)
cmd += remaining_args

sys.exit(subprocess.run(cmd).returncode)
