| #!/usr/bin/env python3 | |
| # SPDX-License-Identifier: GPL-2.0+ | |
| """ | |
| Determines how many parallel tasks "make" is expecting, as it is | |
| not exposed via any special variables, reserves them all, runs a subprocess | |
| with PARALLELISM environment variable set, and releases the jobs back again. | |
| See: | |
| https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html#POSIX-Jobserver | |
| """ | |
| import os | |
| import sys | |
| LIB_DIR = "../tools/lib/python" | |
| SRC_DIR = os.path.dirname(os.path.realpath(__file__)) | |
| sys.path.insert(0, os.path.join(SRC_DIR, LIB_DIR)) | |
| from jobserver import JobserverExec # pylint: disable=C0415 | |
| def main(): | |
| """Main program""" | |
| if len(sys.argv) < 2: | |
| name = os.path.basename(__file__) | |
| sys.exit("usage: " + name +" command [args ...]\n" + __doc__) | |
| with JobserverExec() as jobserver: | |
| return jobserver.run(sys.argv[1:]) | |
| if __name__ == "__main__": | |
| sys.exit(main()) |