#!/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 any %PARALLELISM% in its
arguments replaced by the count, 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())
