#!/usr/bin/env python3

import argparse
import sys
from subpop.hub import Hub
from boxer.config.base import DockerConfig, SingularityConfig
from boxer.common import parse_args

hub = Hub()

import dyne.org.funtoo.boxer.containers as containers

CLI_CONFIG = {
	"target": {"default": None, "action": "store", "positional": True, "help": "Set the target container image type.", "choices": ["docker", "sif"]},
	"stage": {"default": None, "action": "store", "help": "stage3 tarball to use as source"},
	"debug": {"default": False, "action": "store_true"},
	"sub_args": {"nargs": argparse.REMAINDER}
}


async def main_thread():
	args, extra_args = parse_args(CLI_CONFIG, parse_known=True)
	print(extra_args)
	if args.target == "docker":
		await containers.launch(DockerConfig, debug=args.debug, stage=args.stage, extra_args=extra_args)
	elif args.target == "sif":
		await containers.launch(SingularityConfig, debug=args.debug, stage=args.stage, extra_args=extra_args)
	containers.model.log.debug("Starting.")
	result = await containers.generate.start()
	return result


if __name__ == "__main__":
	success = hub.LOOP.run_until_complete(main_thread())
	hub.LOOP.close()
	if not success:
		sys.exit(1)

# vim: ts=4 sw=4 noet
