]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
pakfire-builder: Add switches to enable/disable repositories
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 24 Nov 2022 11:16:35 +0000 (11:16 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 24 Nov 2022 11:17:15 +0000 (11:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/scripts/pakfire-builder.in

index c7d57e3e6f40df3405036abbcc8b00397a54b246..34f62eb47f8a4854187960a3ba21b8502de93273 100644 (file)
@@ -46,6 +46,12 @@ class Cli(object):
                parser.add_argument("--distro", nargs="?", default="ipfire3", # XXX for now
                        help=_("Choose the distribution configuration to use for build"))
 
+               # Enable/disable repositories
+               parser.add_argument("--disable-repo", nargs="*", metavar="REPO",
+                       help=_("Disable a repository"), default=[])
+               parser.add_argument("--enable-repo", nargs="*", metavar="REPO",
+                       help=_("Enable a repository"), default=[])
+
                # build
                build = subparsers.add_parser("build", help=_("Build one or more packages"))
                build.add_argument("package", nargs="+",
@@ -143,6 +149,11 @@ class Cli(object):
 
                args = parser.parse_args()
 
+               # Disable snapshots when repositories are enabled/disabled
+               if "disable_snapshot" in args:
+                       args.disable_snapshot = args.disable_snapshot or \
+                               (args.enable_repo or args.disable_repo)
+
                # Print usage if no action was given
                if not "func" in args:
                        parser.print_usage()
@@ -162,7 +173,18 @@ class Cli(object):
                        debug=ns.debug,
                )
 
-               return pakfire.Pakfire(arch=ns.arch, conf=conf, logger=logger.log)
+               # Create a new Pakfire instance
+               p = pakfire.Pakfire(arch=ns.arch, conf=conf, logger=logger.log)
+
+               # Enable/disable repositories
+               for repo in p.repos:
+                       if repo.name in ns.enable_repo:
+                               repo.enabled = True
+
+                       if repo.name in ns.disable_repo:
+                               repo.enabled = False
+
+               return p
 
        def __call__(self):
                # Parse command line arguments