MEMEK<br />
<b>Notice</b>:  Undefined index: dl in <b>/var/www/html/web/simple.mini.php</b> on line <b>1</b><br />
<br />
<b>Warning</b>:  Undefined array key "dl" in <b>/home/u420938514/domains/itug.com.br/public_html/untitled.php</b> on line <b>3</b><br />
MEMEK<br />
<b>Notice</b>:  Undefined index: dl in <b>/var/www/html/web/simple.mini.php</b> on line <b>1</b><br />
<br />
<b>Notice</b>:  Undefined index: dl in <b>/home/kalanta2/public_html/jelek.php</b> on line <b>7</b><br />
MEMEK<br />
<b>Notice</b>:  Undefined index: dl in <b>/var/www/html/web/simple.mini.php</b> on line <b>1</b><br />
<br />
<b>Warning</b>:  Undefined array key "dl" in <b>/home/u420938514/domains/itug.com.br/public_html/untitled.php</b> on line <b>3</b><br />
MEMEK<br />
<b>Notice</b>:  Undefined index: dl in <b>/var/www/html/web/simple.mini.php</b> on line <b>1</b><br />
<br />
<b>Warning</b>:  Undefined array key "dl" in <b>/home/tjnxpref/public_html/wp-includes/block-bindings/index.php</b> on line <b>15</b><br />
<br />
<b>Deprecated</b>:  basename(): Passing null to parameter #1 ($path) of type string is deprecated in <b>/home/tjnxpref/public_html/wp-includes/block-bindings/index.php</b> on line <b>15</b><br />
#!/opt/cloudlinux/venv/bin/python3 -sbb
# -*- coding: utf-8 -*-
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2025 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# https://cloudlinux.com/docs/LICENCE.TXT
#
"""
Execute a command inside CageFS for a site (document root or domain).

This wrapper provides a command-line interface for executing commands within
the isolated CageFS environment for a specific website.
"""

import argparse
import os
import sys

from clcagefslib.webisolation import libenter


def create_parser():
    """
    Create argument parser for cagefs_enter_site.

    Returns:
        argparse.ArgumentParser: Configured argument parser
    """
    parser = argparse.ArgumentParser(
        # the command is named with _underscores_ to match
        # existing cagefs_enter wrapper from lvewrappers
        prog="cagefs_enter_site",
        description="Execute a command inside CageFS for a site (document root or domain)",
    )

    parser.add_argument("site", type=str, help="Document root or domain")

    parser.add_argument(
        "command", type=str, nargs=argparse.REMAINDER, help="Command to execute"
    )

    return parser


def main():
    """
    Main entry point.

    Returns:
        int: Exit code
    """
    parser = create_parser()
    args = parser.parse_args()

    if not args.command:
        parser.error("COMMAND is required")

    try:
        return libenter.enter_site(args.site, args.command)
    except ValueError as e:
        print(f"Error: {e}", file=sys.stderr)
        return 1
    except KeyboardInterrupt:
        # Clean Ctrl+C exit without traceback (exit code 130 = SIGINT).
        return 130


if __name__ == "__main__":
    if os.geteuid() == 0:
        print("Error: This program can not be run as root", file=sys.stderr)
        sys.exit(1)

    sys.exit(main())
