#!/usr/bin/env python
import argparse
import os

import criu_coredump

def coredump(opts):
	generator = criu_coredump.coredump_generator()
	cores = generator(os.path.realpath(opts['in']))
	for pid in cores:
		if opts['pid'] and pid != opts['pid']:
			continue
		with open(os.path.realpath(opts['out'])+"/core."+str(pid), 'w+') as f:
			cores[pid].write(f)


def main():
	desc = 'CRIU core dump'
	parser = argparse.ArgumentParser(description=desc,
			formatter_class=argparse.RawTextHelpFormatter)

	parser.add_argument('-i',
			    '--in',
			    default = '.',
			    help = 'directory where to get images from')
	parser.add_argument('-p',
			    '--pid',
			    type = int,
			    help = 'generate coredump for specific pid(all pids py default)')
	parser.add_argument('-o',
			    '--out',
			    default = '.',
			    help = 'directory to write coredumps to')

	opts = vars(parser.parse_args())

	coredump(opts)

if __name__ == '__main__':
	main()
