#!/usr/bin/env python
from __future__ import print_function
from builtins import input

import argparse, sys
import logging

__version__ = '0.1.0'
__program__ = 'choukette'

logger = logging.getLogger(__program__)
logger.setLevel(logging.INFO)
stream_handler = logging.StreamHandler()
formatter = logging.Formatter('%(message)s')
stream_handler.setFormatter(formatter)
stream_handler.setLevel(logging.INFO)
logger.addHandler(stream_handler)


badge_model = \
'''<svg xmlns="http://www.w3.org/2000/svg" width="116" height="20">
  <linearGradient id="b" x2="0" y2="100%">
    <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
    <stop offset="1" stop-opacity=".1"/>
  </linearGradient>

  <mask id="a">
    <rect width="116" height="20" rx="3" fill="#fff"/>
  </mask>

  <g mask="url(#a)">
    <path fill="#555"
          d="M0 0 h62 v20 H0 z"/>
    <path fill="#{2}"
          d="M62 0 h54 v20 H62 z"/>
    <path fill="url(#b)"
          d="M0 0 h116 v20 H0 z"/>
  </g>

  <g fill="#fff" text-anchor="middle">
    <g font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
      <text x="31" y="15" fill="#010101" fill-opacity=".3">
        {0}
      </text>
      <text x="31" y="14">
        {0}
      </text>
      <text x="89" y="15" fill="#010101" fill-opacity=".3">
        {1}
      </text>
      <text x="89" y="14">
        {1}
      </text>
    </g>
  </g>
</svg>'''

def main(args):
    show_version(args)
    badge = badge_model.format(args.text, args.value, args.color)
    print(badge)


def show_version(args):
    if args.version:
        print('{0} {1}\nPython {2}'.format(__program__, __version__, sys.version))
        raise SystemExit(0)


if __name__ == '__main__':

    try:
        parser = argparse.ArgumentParser(prog=__program__, add_help=False)
        parser.add_argument('-v', '--version', help='Show program\'s version number and exit.', action='store_true')
        parser.add_argument('text')
        parser.add_argument('value')
        parser.add_argument('color')
        args = parser.parse_args()
        main(args)

    except (KeyboardInterrupt, SystemExit):
        pass
