1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-11-26 06:29:50 +01:00
Files
github.com_openSUSE_osc/osc/commands_git/meta_set.py

46 lines
1.2 KiB
Python

import osc.commandline_git
class MetaSetCommand(osc.commandline_git.GitObsCommand):
"""
Set metadata in store
"""
name = "set"
parent = "MetaCommand"
def init_arguments(self):
self.add_argument(
"--apiurl",
help="Set 'apiurl'",
)
self.add_argument(
"--project",
help="Set 'project'",
)
self.add_argument(
"--package",
help="Set 'package'",
)
self.add_argument(
"--branch",
help="Manage values for the specified branch (default: current branch)",
)
def run(self, args):
from osc.git_scm import LocalGitStore
store = LocalGitStore(".", check=False)
branch = args.branch or store._git.current_branch
# just retrieve keys from an authoritative source
keys = list(store._read_meta(branch=branch).dict().keys())
keys.remove("header")
for key in keys:
value = getattr(args, key, None)
if value is None:
continue
# translate an empty string to None to unset the value
setattr(store, key, value or None)