#!/usr/bin/env python

import os
import sys
import time
from papirus import PapirusTextPos
import argparse

# Running as root only needed for older Raspbians without /dev/gpiomem
if not (os.path.exists('/dev/gpiomem') and os.access('/dev/gpiomem', os.R_OK | os.W_OK)):
    user = os.getuid()
    if user != 0:
        print("Please run script as root")
        sys.exit()

# Check EPD_SIZE is defined
EPD_SIZE=0.0
if os.path.exists('/etc/default/epd-fuse'):
    exec(open('/etc/default/epd-fuse').read())
if EPD_SIZE == 0.0:
    print("Please select your screen size by running 'papirus-config'.")
    sys.exit()

# Command line usage
# papirus-write "Some text to write"  -x  -y -fsize

def main():
    p = argparse.ArgumentParser()
    p.add_argument('content', type=str, help="Text to display")
    p.add_argument('--posX', '-x', type=int, default=0, help="X position of the start of the text")
    p.add_argument('--posY', '-y', type=int, default=0, help="Y position of the start of the text")
    p.add_argument('--fsize', '-s',type=int , default=20, help="Font size to use for the text")
    p.add_argument('--rotation', '-r',type=int , default=0, help="Rotation one of 0, 90, 180, 270")
    p.add_argument('--invert', '-i', type=bool, default=False, help="Invert the display of the text")

    args = p.parse_args()

    if args.content:
        text = PapirusTextPos(rotation=args.rotation)
        print("Writing to Papirus.......")
        text.AddText(args.content, args.posX, args.posY, args.fsize, invert=args.invert)
        print("Finished!")

if __name__ == '__main__':
    main()
