HEX
Server: Apache
System: Linux server.onegroup3.co.nz 5.14.0-570.62.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 10:10:59 EST 2025 x86_64
User: importersclearan (1088)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/Acronis/PyTools/commands/run_tool.py
import sys
import subprocess
import acrobind
import acrort


def run_tool(argument):
    command = argument['Command']
    wait_timeout = argument.get('Timeout')
    command_line = '{0} -m {1}'.format(sys.executable, command)
    argv = command_line
    if sys.platform != 'win32':
        import shlex
        argv = shlex.split(command_line)

    tool = subprocess.Popen(argv, universal_newlines=True, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (result, stderr) = tool.communicate(timeout=wait_timeout)
    if tool.returncode != 0:
        acrort.common.make_logic_error(stderr).throw()

    return {'stdout': result}


def execute(*args, **kw):
    ctx = acrort.remoting.CommandContext(*args, **kw)
    arg = acrobind.unit2py(ctx.argument)
    return run_tool(arg)