"""A quick and dirty octoprint status screen"""

from configparser import ConfigParser
import os

from octorest.client import OctoRest


if __name__ == "__main__":
    config = ConfigParser()
    config.read(os.path.expanduser("~/.config/octoprint-cli.ini"))

    client = OctoRest(url="http://" + config["server"]["ServerAddress"],
                      apikey=config["server"]["ApiKey"])

    for line in open(sys.argv[1], "r"):
        l = line.split(";")[0]
        l = l.strip()
        if not l:
            continue

        while True:
            print(f"\n> {l}")
            cmd = input("[seq?] >>> ")
            if cmd == "s":
                client.gcode(l)
                break
            elif cmd == "e":
                client.gcode("M112")
            elif cmd == "q":
                exit(0)
            elif cmd == "n":
                break
            elif cmd == "?":
                print("""\
s[tep]  - run the next g-code line in the file
n[ext]  - skip this line
e[stop] - issue an emergency stop
q[uit]  - exit the debugger""")

            else:
                client.gcode(line)