#!/usr/bin/env python

import argparse
import sys
import subprocess

import stickytape

def main():
    args = _parse_args()
    output_file = _open_output(args)
    python_paths = args.add_python_path + _read_sys_path_from_python_bin(args.python_binary)
    output = stickytape.script(args.script,python_paths )
    output_file.write(output)

def _read_sys_path_from_python_bin(binary_path):
    if binary_path is None:
        return []
    else:
        output = subprocess.check_output(
            [binary_path, "-c", "import sys;\nfor path in sys.path: print path"],
            env={}
        )
        return [line.strip() for line in output.split("\n") if line.strip()]

def _open_output(args):
    if args.output_file is None:
        return sys.stdout
    else:
        return open(args.output_file, "w")

def _parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("script")
    parser.add_argument("--add-python-path", action="append", default=[])
    parser.add_argument("--python-binary")
    parser.add_argument("--output-file")
    return parser.parse_args()

if __name__ == "__main__":
    main()

