From 5cfec908071110ae676cef899014ee1e8ec24481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Prokop?= <jprokop.ofc@gmail.com> Date: Wed, 23 Aug 2023 10:55:53 +0200 Subject: [PATCH] fix: check_php_syntax to work with containers --- perun/proxy/utils/nagios/check_php_syntax.py | 48 ++++++++++---------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/perun/proxy/utils/nagios/check_php_syntax.py b/perun/proxy/utils/nagios/check_php_syntax.py index 56d0efe..c0651be 100755 --- a/perun/proxy/utils/nagios/check_php_syntax.py +++ b/perun/proxy/utils/nagios/check_php_syntax.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -import os import subprocess import sys import argparse @@ -20,39 +19,42 @@ def get_args(): " automatically generated files" ) ) + parser.add_argument( + "-c", + "--container", + required=True, + help="Docker container name to run PHP syntax check inside", + ) parser.add_argument( "-d", "--directory", required=True, - help="path which will be scanned for PHP files, including subdirectories", + help=( + "path inside container which will be scanned for PHP files, including" + " subdirectories" + ), ) return parser.parse_args() def main(): - dir = get_args().directory - os.chdir(dir) - paths = [] - for ( - dirpath, - dirname, - filenames, - ) in os.walk("."): - for f in filenames: - if f.endswith(".php"): - paths.append( - os.path.join( - dirpath, - f, - ) - ) + args = get_args() + dir = args.directory + container = args.container + + container_paths = ( + subprocess.getoutput( + f"docker exec {container} find {dir} -type f -name '*.php'" + ) + .strip() + .split("\n") + ) global_result = "" - for path in paths: - if os.path.isfile(path): - result = subprocess.getoutput(f"php -l {path}") - if not result.startswith("No syntax errors"): - global_result += f"{result} | " + for path in container_paths: + result = subprocess.getoutput(f"docker exec {container} php -l {path}") + if "No syntax errors" not in result: + global_result += f"{result} | " if not global_result: print(f"{OK} check_php_syntax - OK") -- GitLab