1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-11-27 06:59:49 +01:00
Files
github.com_openSUSE_osc/osc/commands_git/meta_info.py

101 lines
2.8 KiB
Python

import osc.commandline_git
class MetaInfoCommand(osc.commandline_git.GitObsCommand):
"""
Resolve and print metadata about the current checkout
"""
name = "info"
parent = "MetaCommand"
def init_arguments(self):
group = self.parser.add_mutually_exclusive_group()
group.add_argument(
"--type",
action="store_true",
help="Print type",
)
group.add_argument(
"--apiurl",
action="store_true",
help="Print apiurl",
)
group.add_argument(
"--project",
action="store_true",
help="Print project",
)
group.add_argument(
"--package",
action="store_true",
help="Print package",
)
group.add_argument(
"--branch",
action="store_true",
help="Print branch",
)
group.add_argument(
"--commit",
action="store_true",
help="Print commit",
)
group.add_argument(
"--remote",
action="store_true",
help="Print remote",
)
group.add_argument(
"--remote-url",
action="store_true",
help="Print remote_url",
)
group.add_argument(
"--export",
action="store_true",
help="Show json objects instead of human readable text",
)
def run(self, args):
from osc.git_scm.store import GitStore
store = GitStore(".")
result = {
"type": store.type,
"apiurl": store.apiurl,
"project": store.project,
"package": store.package,
"branch": store._git.current_branch,
"commit": store._git.get_branch_head(),
"remote": store._git.get_current_remote(),
"remote_url": store._git.get_remote_url(),
}
if args.export:
import json
print(json.dumps(result, indent=4))
elif args.type:
print(result["type"] or "")
elif args.apiurl:
print(result["apiurl"] or "")
elif args.project:
print(result["project"] or "")
elif args.package:
print(result["package"] or "")
elif args.branch:
print(result["branch"] or "")
elif args.commit:
print(result["commit"] or "")
elif args.remote:
print(result["remote"] or "")
elif args.remote_url:
print(result["remote_url"] or "")
else:
from osc.output import KeyValueTable
table = KeyValueTable(min_key_length=10)
for key, value in result.items():
table.add(key, value)
print(str(table))