From ece32d280a0062b22a78e47e59bafd367fc501f7 Mon Sep 17 00:00:00 2001 From: Petr Menšík Date: Apr 29 2026 04:00:01 +0000 Subject: Add verrel --json support It preloads some interesting data and prints various parameters fetched parameters and computed ones for current repository. It does not work with -d or -v parameters well, because they sadly output conents into stdout. With flake8 issue fixed. Signed-off-by: Petr Menšík --- diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py index a1280bd..7dbfd7e 100644 --- a/pyrpkg/cli.py +++ b/pyrpkg/cli.py @@ -1716,6 +1716,10 @@ class cliClient(object): verrel_parser = self.subparsers.add_parser( 'verrel', help='Print the name-version-release.') + verrel_parser.add_argument( + '--json', + help='Output the result in json format with additional fields', + action='store_true', default=False) verrel_parser.set_defaults(command=self.verrel) def register_container_build_common(self): @@ -3076,9 +3080,27 @@ class cliClient(object): extra_args=self.extra_args, buildrootdir=self.args.buildrootdir) + def _make_json_dict(self): + self.cmd.load_rpmdefines() + d = dict() + for k, v in self.cmd.__dict__.items(): + if not callable(v) and isinstance(v, str) and len(v) < 128: + d[k] = v + d['verrel'] = self._get_verrel_str() + return d + + def _get_verrel_str(self): + return '%s-%s-%s' % (self.cmd.repo_name, self.cmd.ver, + self.cmd.rel) + + def _get_verrel_json(self): + return json.dumps(self._make_json_dict()) + def verrel(self): - print('%s-%s-%s' % (self.cmd.repo_name, self.cmd.ver, - self.cmd.rel)) + if self.args.json: + print(self._get_verrel_json()) + else: + print(self._get_verrel_str()) # Stole these three functions from /usr/bin/koji def setupLogging(self, log):