#!/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:
        jobserver.run(sys.argv[1:])


if __name__ == "__main__":
    main()
