mirror of
https://github.com/openSUSE/osc.git
synced 2025-11-27 06:59:49 +01:00
101 lines
2.8 KiB
Python
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))
|