#!/usr/bin/python3
import sys
from viavi.upgrade.flashutils import install_release, install_pmulti

GRAY = (0xBB, 0xBB, 0xBB)
BLACK = (0x0, 0x0, 0x0)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("%s [-f] http://server/release.xml"%sys.argv[0])
        print("\t-f: Force full format device (!!! Will loose Calibration !!!")
        print("\t-p: Flash pmulti)")
        exit()
    if sys.argv[1] == "-f":
        if install_release(sys.argv[2]):
            print("Filesystem successfully installed")
        else:
            print("An error occurred during upgrade, operation failed")
    elif sys.argv[1] == "-p":
        install_pmulti(sys.argv[2], firstinstall=False)
    elif sys.argv[1] == "-g":
        # install With gui
        try:
            from viavi.stdhw.framebuffer import FrameBuffer
            fb = FrameBuffer("/dev/fb0")
            fb.rectangle(0, 300, 800, 180, BLACK)
            fb.rectangle(50, 250, 700, 50, GRAY)
            if install_release(sys.argv[2], firstinstall=False, gui=fb):
                print("SUCCESS: Filesystem successfully installed")
                exit(0)
            exit(-1)
        except Exception as e:
            print("ERROR: No Framebuffer available on this device\n")
            exit(-1)
    else:
        if install_release(sys.argv[1], firstinstall=False):
            print("SUCCESS: Filesystem successfully installed")
            exit(0)
        else:
            print("ERROR: An error occurred during upgrade, operation failed")
            exit(-1)
