]> git.ipfire.org Git - pakfire.git/commitdiff
cli: Add execute command
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 May 2021 12:14:28 +0000 (12:14 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 May 2021 12:14:28 +0000 (12:14 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/cli.py

index f33c0bfd84aeee080e5d037890667b5814fb8b79..cb2ad6ec9506410a0b8397257cc05d54f3f01560 100644 (file)
@@ -91,6 +91,14 @@ class Cli(object):
                        help=_("Disallow changing the architecture of packages"))
                downgrade.set_defaults(func=self.handle_downgrade)
 
+               # execute
+               execute = subparsers.add_parser("execute",
+                       help=_("Executes a command in the pakfire environment (useful for development)"))
+               execute.add_argument("--bind", nargs="*", default=[], dest="binds",
+                       help=_("Bind-mounts the given directory"))
+               execute.add_argument("command", nargs=argparse.REMAINDER)
+               execute.set_defaults(func=self.handle_execute)
+
                # extract
                extract = subparsers.add_parser("extract",
                        help=_("Extract a package to a directory"))
@@ -207,6 +215,15 @@ class Cli(object):
 
                return p
 
+       def handle_execute(self, ns):
+               pakfire = self.pakfire(ns)
+
+               # Bind-mount everything
+               for bind in ns.binds:
+                       pakfire.bind(bind)
+
+               return pakfire.execute(ns.command)
+
        def run(self):
                args = self.parse_cli()
                assert args.func, "Argument function not defined"