#!/usr/bin/python
import argparse
import os
import subprocess
import sys

__library_path__ = "/build/cacdec-git/src/cacdec/build/temp.linux-armv7l-3.9/freerdp/FreeRDP/lib"


def main(input, output):
    """
    Main function
    :param input: input file path
    :param output: output folder
    :return:
    """
    from cacdec.cacdec import build_from_stream
    with open(input, "rb") as input_file:
        build_from_stream(input_file.read(), output)


if __name__ == "__main__":
    if "LD_LIBRARY_PATH" not in os.environ:
        my_env = os.environ.copy()
        my_env["LD_LIBRARY_PATH"] = __library_path__
        try:
            subprocess.check_call(sys.argv, env=my_env)
            exit(0)
        except subprocess.CalledProcessError as e:
            exit(e.returncode)

    parser = argparse.ArgumentParser(description="""
    Extract information from Cacdec recorder present in mstscax.dll (used by mstsc.exe). 
    This is made with love by Airbus CERT Team.
    """)

    parser.add_argument("--input", "-i",
                        help="Input Recorded file",
                        type=str, default="", required=True)

    parser.add_argument("--output", "-o",
                        help="Output folder for all frame",
                        type=str, default="", required=True)

    args = parser.parse_args()
    main(**vars(args))
