summaryrefslogtreecommitdiff
path: root/app-portage/mirrorselect/files/mirrorselect-2.3.0-main-Fix-all-option-parsing.patch
blob: 0d0462c6475240bf50a49129609b008f0d839280 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From e0fbc2fb33762211aa5e64175d525e66f4c257d4 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 6 Jul 2023 09:04:42 +0100
Subject: [PATCH] main: Fix --all option parsing

Avoid --all erroring out with "ERROR: Choose at most one of -s or -a".

Bug: https://bugs.gentoo.org/872218
Fixes: 7caac017833b01e13028658effc502430c56d770
Thanks-to: <xpenev@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
--- a/mirrorselect/main.py
+++ b/mirrorselect/main.py
@@ -145,6 +145,11 @@ class MirrorSelect(object):
 			self.output.white("	 interactive:"),
 			"		 # mirrorselect -i -r",
 			))
+
+		def set_servers(option, opt_str, value, parser):
+			set_servers.user_configured = True
+			setattr(parser.values, option.dest, value)
+
 		parser = OptionParser(
 			formatter=ColoredFormatter(self.output), description=desc,
 			version='Mirrorselect version: %s' % version)
@@ -236,8 +241,8 @@ class MirrorSelect(object):
 			"-q", "--quiet", action="store_const", const=0, dest="verbosity",
 			help="Quiet mode")
 		group.add_option(
-			"-s", "--servers", action="store", type="int", default=1,
-			help="Specify Number of servers for Automatic Mode "
+			"-s", "--servers", action="callback", callback=set_servers,
+			type="int", default=1, help="Specify Number of servers for Automatic Mode "
 			"to select. this is only valid for download mirrors. "
 			"If this is not specified, a default of 1 is used.")
 		group.add_option(
@@ -271,7 +276,7 @@ class MirrorSelect(object):
 		if options.rsync and not (options.interactive or options.all_mirrors):
 			self.output.print_err('rsync servers can only be selected with -i or -a')
 
-		if options.servers and options.all_mirrors:
+		if options.all_mirrors and hasattr(set_servers, 'user_configured'):
 			self.output.print_err('Choose at most one of -s or -a')
 
 		if options.interactive and (
-- 
2.41.0