Source code for datumaro.cli.commands.require_project.versioning.status

# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT

import argparse

from datumaro.cli.util import MultilineFormatter
from datumaro.util.scope import scope_add, scoped

from ....util.project import load_project


[docs] def build_parser(parser_ctor=argparse.ArgumentParser): parser = parser_ctor( help="Prints project status.", description=""" This command prints the summary of the project changes between the working tree of a project and its HEAD revision. """, formatter_class=MultilineFormatter, ) parser.add_argument( "-p", "--project", dest="project_dir", help="Directory of the project to operate on (default: current dir)", ) parser.set_defaults(command=status_command) return parser
[docs] def get_sensitive_args(): return { status_command: [ "project_dir", ], }
[docs] @scoped def status_command(args): project = scope_add(load_project(args.project_dir)) statuses = project.status() if project.branch: print("On branch '%s', commit %s" % (project.branch, project.head_rev)) else: print("HEAD is detached at commit %s" % project.head_rev) if statuses: for target, status in statuses.items(): print("%s\t%s" % (status.name, target)) else: print("Working directory clean") return 0