]> git.ipfire.org Git - people/stevee/pakfire.git/commitdiff
pakfire: Add some scaffolding to verify archives
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jul 2021 17:06:30 +0000 (17:06 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jul 2021 17:06:30 +0000 (17:06 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/scripts/pakfire.in

index d3edef4908b38cdb3b5b3d38b00c45f33e6b134b..74bf21ccb3867db98c977ace25ddc8a643b7bc11 100644 (file)
@@ -142,6 +142,13 @@ class Cli(object):
                        help=_("List all imported keys"))
                key_list.set_defaults(func=self._key_list)
 
+               # key verify
+               key_verify = key_subparsers.add_parser("verify",
+                       help=_("Verify archives"))
+               key_verify.add_argument("packages", nargs="+",
+                       help=_("Packages"))
+               key_verify.set_defaults(func=self._key_verify)
+
                # provides
                provides = subparsers.add_parser("provides",
                        help=_("Get a list of packages that provide a given file or feature"))
@@ -312,6 +319,17 @@ class Cli(object):
                for key in p.keys:
                        print(key)
 
+       def _key_verify(self, p, args):
+               for path in args.packages:
+                       # Open archive
+                       archive = p.open(path)
+
+                       print(_("Verifying %s...") % archive)
+
+                       # Run verification
+                       status = archive.verify()
+                       print(status)
+
        def _provides(self, p, args):
                for pkg in p.whatprovides(args.pattern):
                        s = pkg.dump(long=True)