REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.09 KB
Close
//opt/cloudlinux/venv/lib/python3.11/site-packages/clconfigure/__init__.py
Text
Base64
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # https://cloudlinux.com/docs/LICENCE.TXT # import logging import inspect import os import sys from dataclasses import dataclass from clcommon.utils import is_ubuntu, run_command, ExternalProgramFailed def _get_default_args(func): """ Get dict with key-value pairs of default argument values """ signature = inspect.signature(func) return { k: v.default for k, v in signature.parameters.items() if v.default is not inspect.Parameter.empty } def _get_args_dict(func, args, kwargs): """ Get all func arguments including defaults, args and kwargs """ func_args = {} func_args.update(_get_default_args(func)) func_args.update(dict(zip(func.__code__.co_varnames, args))) func_args.update(kwargs) return func_args def task(name): """ Simple wrapper that logs execution begin and end """ def decorator(func): def wrapped_func(*args, **kwargs): func_args = _get_args_dict(func, args, kwargs) logging.info(name.format(**func_args)) try: func(*args, **kwargs) except Exception: logging.exception('FAILED to %s', name.format(**func_args)) raise return wrapped_func return decorator def setup_logger(logger_name, log_file): """ Logger setup for all modules """ app_logger = logging.getLogger(logger_name) app_logger.setLevel(logging.DEBUG) try: fh = logging.FileHandler(log_file) except IOError: pass else: fh.formatter = logging.Formatter( '[%(levelname)s | %(asctime)s]: %(message)s') fh.level = logging.DEBUG app_logger.addHandler(fh) for handler in app_logger.handlers: if isinstance(handler, logging.StreamHandler) and handler.stream == sys.stderr: handler.formatter = logging.Formatter('[cloudlinux-customizer]: %(message)s') handler.level = logging.INFO return app_logger @dataclass class RunResult: """ Describes process call result """ exitcode: int stdout: str stderr: str def run(cmd, fail_ok=False): """ Just a wrapper above run_command that provides some cool logging of what happens in subprocess """ logging.debug('Running %s', ' '.join(cmd)) env_data = os.environ.copy() # Force C locale to ensure consistent output across all systems env_data['LC_ALL'] = 'C' if is_ubuntu(): # Prevent debconf from asking questions env_data['DEBIAN_FRONTEND'] = 'noninteractive' try: exitcode, stdout, stderr = run_command( cmd, env_data=env_data, return_full_output=True, ) logging.debug('Stdout: %s', stdout) logging.debug('Stderr: %s', stderr) return RunResult(exitcode, stdout, stderr) except ExternalProgramFailed as e: if not fail_ok: logging.error(str(e)) return RunResult(-1, None, None)
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 3 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cli
DIR
-
drwxr-xr-x
2026-03-05 22:36:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
spec
DIR
-
drwxr-xr-x
2026-03-05 22:36:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__pycache__
DIR
-
drwxr-xr-x
2026-03-05 22:40:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
awp.py
1.75 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cagefs.py
1.81 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
clpro.py
868 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
files.py
933 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
limits.py
2.86 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
linksafe.py
1.75 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
lve.py
965 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
packages.py
3.18 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Readme.md
1.61 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
services.py
2.29 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
watcher.py
4.94 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
3.09 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).