%PDF- %PDF-
Direktori : /proc/self/root/opt/imunify360/venv/share/imunify360/scripts/ |
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:])