%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/imunify360/venv/share/imunify360/scripts/
Upload File :
Create Path :
Current File : //proc/self/root/opt/imunify360/venv/share/imunify360/scripts/report-command-error

#!/opt/imunify360/venv/bin/python3
"""
This program is free software: you can redistribute it and/or modify it under 
the terms of the GNU General Public License as published by 
the Free Software Foundation, either version 3 of the License, 
or (at your option) any later version.


This program is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
See the GNU General Public License for more details.


You should have received a copy of the GNU General Public License
 along with this program.  If not, see <https://www.gnu.org/licenses/>.

Copyright © 2019 Cloud Linux Software Inc.

This software is also available under ImunifyAV commercial license,
see <https://www.imunify360.com/legal/eula>


Script runs command and sends message to Sentry if any exceptions occurs.
"""
import logging
import subprocess
import sys

from defence360agent import sentry

logger = logging.getLogger(__name__)


def main(command):
    if not command:
        sys.exit("Expected execution command!")

    sentry.configure_sentry()
    try:
        result = subprocess.run(command,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                check=True)
    except subprocess.CalledProcessError as exc:
        result = exc
        logger.error(
            "Command %r returned non-zero code %s,"
            "\n\t\tStdout: %s,"
            "\n\t\tStderr: %s\n",
            command,
            result.returncode,
            result.stdout.decode("utf-8", "backslashreplace"),
            result.stderr.decode("utf-8", "backslashreplace"),
        )
    sys.stdout.buffer.write(result.stdout)
    sys.stderr.buffer.write(result.stderr)
    sys.exit(result.returncode)


if __name__ == '__main__':
    main(sys.argv[1:])

Zerion Mini Shell 1.0