#!/usr/bin/env python

import argparse
from pylamp.color import Color
from pylamp.controller import Controller


def __get_parser():
    description = '''
            Python script to power the Dreamcheeky
            USB webmail notifier gadget which is shipped
            with windows only software.

            by Pierre Rambaud <https://github.com/PierreRambaud/pylamp>
        '''
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument(
        '-c',
        '--color',
        help="Color as hexadecimal or string (#0000FF or 'blue')",
        type=str
    )
    parser.add_argument(
        '-r',
        '--red',
        help='Red',
        type=int
    )
    parser.add_argument(
        '-g',
        '--green',
        help='Green',
        type=int
    )
    parser.add_argument(
        '-b',
        '--blue',
        help='Blue',
        type=int
    )
    parser.add_argument(
        '-fi',
        '--fadein',
        help='Fade in effect, delay in second',
        type=int
    )
    parser.add_argument(
        '-bl',
        '--blink',
        help='Blink effect, delay in second',
        type=int
    )

    return parser


def main():
    parser = __get_parser()
    args = parser.parse_args()

    lamp = Controller()
    if lamp.open() and lamp.is_connected() is True:
        lamp.switch_off()

        if args.color is not None:
            color = Color(args.color)
        else:
            color = Color(args.red, args.green, args.blue)

        if args.fadein is not None:
            lamp.fade_in(args.fadein, color)
        elif args.blink is not None:
            lamp.blink(args.blink, color)
        else:
            lamp.set_color(color)


if __name__ == '__main__':
    main()
