distutils is deprecated and shutil.which is the suggested
replacement for this function.
https://peps.python.org/pep-0632/#migration-advice
https://docs.python.org/3/library/shutil.html#shutil.which
which was added in 3.3 (https://docs.python.org/3/library/shutil.html#shutil.which)
and LLVM requires at least 3.6 (https://llvm.org/docs/GettingStarted.html#software).
There is one small differnce here that shutil.which ignores the PATH
when given a path argument. However in this case I think that's actually
the behaviour we want.
Reviewed By: zequanwu
Differential Revision: https://reviews.llvm.org/D148529
from argparse import ArgumentParser, RawTextHelpFormatter
import os
import re
+import shutil
import stat
import sys
import subprocess
import shlex
import tempfile
import shutil
-from distutils.spawn import find_executable
import multiprocessing
verbose = False
if cmd_path:
# Make the path absolute so the creduce test can be run from any directory.
cmd_path = os.path.abspath(cmd_path)
- cmd = find_executable(cmd_path)
+ cmd = shutil.which(cmd_path)
if cmd:
return cmd
sys.exit("ERROR: executable `%s` not found" % (cmd_path))
- cmd = find_executable(cmd_name, path=cmd_dir)
+ cmd = shutil.which(cmd_name, path=cmd_dir)
if cmd:
return cmd