Viewing file: cl_license_arg_parse.py (2.22 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- coding: utf-8 -*-
# Command line arguments parser for cloudlinux-license utility
# cloudlinux-license Utility to check/set Cloudlinux license # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT
from __future__ import absolute_import
from docopt import docopt from docopt import DocoptExit from schema import Schema, And, Or, SchemaError
def parse_cloudlinux_packages_opts(argv, _is_json_need=False): """ Parse arguments for cloudlinux-packages command :param argv: sys.argv :param _is_json_need: sys.argv contains --json key :return cortege: (error_flag, s_message) """ # program name prog_name = "cloudlinux-license" docstring = """Utility to get Cloudlinux license status or register Cloudlinux license
Usage: {0} [get] [--json] {0} [set] [--json] [--key <str>] {0} [set] [--json] --ip {0} get_trial --config <str> [--json] {0} (-h | --help)
Options: --config <str> Register Cloudlinux trial license --json Return data in JSON format --key <str> Register Cloudlinux license by key --ip Register IP based Cloudlinux license -h, --help Show this help message and exit """.format(prog_name) try: args = docopt(docstring, argv) except DocoptExit: s_error_string = 'ERROR: Invalid parameter passed' if not _is_json_need: s_error_string += "\n\n" + docstring return False, s_error_string
# get mode by default if not args["get"] and not args["set"] and not args["get_trial"]: args["get"] = True
s = Schema({ "get": bool, "set": bool, "get_trial": bool, "--config": Or(None, str), "--json": And(bool, lambda x: x, error="use --json option, other modes currently unsupported"), "--key": Or(None, str), "--ip": bool, "--help": bool, })
try: args = s.validate(args) status = True except SchemaError as e: args = str(e) status = False return status, args
|