#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ai ts=4 sts=4 et sw=4 nu

from __future__ import (unicode_literals, absolute_import,
                        division, print_function)
import sys
import os

from termcolor import colored

from rapidpro_controller import (get_logger, THIS_SERVER, LDANGER, get_color,
                                 UNKNOWN, ROLES, STATUSES, FAILURE)
from rapidpro_controller.states import local_role, local_status

logger = get_logger(os.path.basename(__file__))


def main(args):
    try:
        role, role_level = local_role()
    except:
        role, role_level = UNKNOWN, LDANGER

    try:
        status, status_level = local_status()
    except:
        status, status_level = UNKNOWN, LDANGER

    raw = '--raw' in args

    text_role = role if raw else colored(role, get_color(role_level))
    text_status = status if raw else colored(status, get_color(status_level))

    output = "{server}:: {role}: {status}".format(
        server=THIS_SERVER,
        role=text_role,
        status=text_status)

    print(output)

    if role not in ROLES or status not in STATUSES:
        return 1

    if status == FAILURE:
        return 1

    return 0


if __name__ == '__main__':
    sys.exit(main(sys.argv[1:]))
