/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
cllicense
/
Upload Filee
HOME
# -*- 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 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 = f"""Utility to get Cloudlinux license status or register Cloudlinux license Usage: {prog_name} [get] [--json] {prog_name} [set] [--json] [--key <str>] {prog_name} [set] [--json] --ip {prog_name} get_trial --config <str> [--json] {prog_name} (-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 """ 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