Preview: post_modify_package.py
Size: 1.65 KB
/proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/public_hooks/bin/post_modify_package.py
#!/opt/cloudlinux/venv/bin/python3 -bb
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2022 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
#
"""
Package POST modification hook.
This script must be called AFTER different package-related
changes in control panel. See --help and docs for detailed
description of actions and parameters.
"""
import argparse
import re
import sys
from clcommon.public_hooks.lib import ModifyPackageHook
from clcommon.public_hooks import setup_logger_and_sentry
_VALID_PACKAGE_NAME_RE = re.compile(r'^[a-zA-Z0-9._-]{1,255}$')
def _validate_package_name(value, option_name):
if value is not None and not _VALID_PACKAGE_NAME_RE.fullmatch(value):
print(f"Error: invalid value for {option_name}: {value!r}",
file=sys.stderr)
sys.exit(1)
if __name__ == '__main__':
setup_logger_and_sentry()
parser = argparse.ArgumentParser(description=__doc__)
subparsers = parser.add_subparsers(dest='command')
rename = subparsers.add_parser('rename')
rename.add_argument('--name', required=True,
help='Name of the package')
rename.add_argument('--new-name', required=False,
help='Package after rename')
args = parser.parse_args()
listener = ModifyPackageHook()
if args.command == 'rename':
_validate_package_name(args.name, '--name')
_validate_package_name(args.new_name, '--new-name')
listener.post_modify_package(
args.name,
new_name=args.new_name,
)
else:
raise NotImplementedError
Directory Contents
Dirs: 1 × Files: 5