The main function of the utility

def main():
    """The main function of the utility"""
    parser = argparse.ArgumentParser(
        description='Manage the build environment of Boost.Metaparse'
    )
    parser.add_argument(
        '--dep_json',
        required=True,
        help='The json file describing the dependencies'
    )
    parser.add_argument(
        '--git',
        required=False,
        default='git',
        help='The git command to use'
    )
    parser.add_argument(
        '--out',
        required=False,
        default='boost',
        help='The directory to clone into'
    )
    parser.add_argument(
        '--action',
        required=True,
        choices=['update', 'checkout'],
        help='The action to do with the dependencies'
    )
    parser.add_argument(
        '--boost_repository',
        required=False,
        default='https://github.com/boostorg/boost.git',
        help='The Boost repository to clone'
    )
    parser.add_argument(
        '--ref',
        required=False,
        default='origin/master',
        help='The reference to set to in update'
    )
    args = parser.parse_args()

    build_environment(
        args.dep_json,
        args.out,
        ChildProcess([args.git]),
        args.boost_repository,
        args.action,
        args.ref
    )