diff --git a/perun/proxy/utils/nagios/check_php_syntax.py b/perun/proxy/utils/nagios/check_php_syntax.py index 56d0efe0c1202cde1c027995c44be490b22992ce..c0651be9a062d86d95992baf6a40ccbe475aac57 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")