Mini Shell
# -*- coding: utf-8 -*-
# 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
import subprocess
def exec_utility(util_path, params, stderr=False):
"""
Executes supplied utility with supplied parameters
:param util_path: string with path to callable utility
:param params: utility parameters
:param stderr: trigger to return stderr or not
:return: Cortege (ret_code, cagefsctl_stdout) if stderr is False
Cortege (ret_code, cagefsctl_stdout, cagefsctl_stderr) otherwise
"""
args = []
args.append(util_path)
args.extend(params)
with subprocess.Popen(
args,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
) as proc:
out, err = proc.communicate()
retcode = proc.returncode
if stderr:
return retcode, out.strip(), err.strip()
return retcode, out.strip()
Zerion Mini Shell 1.0