#!/usr/bin/env python
# -*- coding: utf-8 -*-
from rt.zps.app.finder import ZProcessFinder
from rt.zps.streams import zfatalerror
from rt.zps.templates.errors import PID_ERROR
import getopt
import sys
from rt.zps.templates.usage import USAGE


def checkopt():
    """
    Checking command line options
    """
    flags = {'pid': 0, 'port': '', 'grep': '', 'help': False}
    opt_short = 'h?'
    opt_long = ['grep=', 'pid=', 'port=', 'help']

    try:
        opts, args = getopt.gnu_getopt(sys.argv[1:], opt_short, opt_long)
    except getopt.GetoptError as e:
        zfatalerror("ERROR: %s\n\n%s" % (e, USAGE))

    for opt, optarg in opts:
        if opt in ('-?', '-h', '--help'):
            flags['help'] = True
        elif opt == '--pid':
            if not optarg.isdigit():
                zfatalerror(PID_ERROR)
            flags['pid'] = int(optarg)
        elif opt == '--port':
            flags['port'] = optarg
        elif opt == '--grep':
            flags['grep'] = optarg

    return opts, args, flags

opts, args, flags = checkopt()

if __name__ == "__main__":
    zpf = ZProcessFinder(flags)
    zpf()
