#!/usr/bin/python

import os
import sys
import imp
import argparse

import pymark.packer

parser = argparse.ArgumentParser(description='Create PyMark binaries')
parser.add_argument('module', nargs=1, help='Input Python file')
parser.add_argument('-o', '--out', metavar="output", help='Optional output binary filename. If not provided binary data is written to stdout.')

args = parser.parse_args()

module = imp.load_source('__pymark__', args.module[0])
module_object = os.path.splitext(os.path.basename(args.module[0]))[0]

output_dict = module.__dict__
del output_dict["__builtins__"]

if args.out:
    pymark.packer.pack_file(args.out, output_dict)
else:
    
    if sys.platform == "win32":
        import os, msvcrt
        msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
    
    pymark.packer.pack_stream(sys.stdout, output_dict)


