#!python
import argparse

from asciimatics.effects import Background
from asciimatics.scene import Scene
from asciimatics.screen import Screen

from slimjim.file_frame import FileFrame
from slimjim.util import common_args, validate_app

# ===========================================================================

#import logging
#logging.basicConfig(filename="debug.log", level=logging.DEBUG)
#logger = logging.getLogger()

# ===========================================================================

def make_it_so(screen, target_app, filename, raw_mode):
    frame = FileFrame(screen, target_app, filename, raw_mode)

    screen.play([Scene([
        Background(screen),
        frame
    ], -1)], stop_on_resize=True, start_scene=None, allow_int=True)

# ---------------------------------------------------------------------------

DESCRIPTION = """
Injects a file, line by line into the target application as typewritten key
presses using the sendkeys application.

"""

parser = argparse.ArgumentParser(description=DESCRIPTION)
common_args(parser)

parser.add_argument('filename', help='File containing content to inject ')

if __name__ == '__main__':
    args = parser.parse_args()
    validate_app(args.app)

    # Fire up the TUI
    Screen.wrapper(make_it_so, catch_interrupt=False, 
        arguments=[args.app, args.filename, args.raw])
