Would you consider adding host argument support without providing a
[ppa] implementation? Users could then opt-in by adding a [ppa]
section to their /etc/dput.cf (or ~/.dput.cf). Here's just that piece
of the Ubuntu delta:
diff -urpN dput-1.1.2.orig/doc/man/dput.1 dput-1.1.2/doc/man/dput.1
--- dput-1.1.2.orig/doc/man/dput.1 2022-07-01 16:15:28.000000000 -0600
+++ dput-1.1.2/doc/man/dput.1 2022-09-20 15:28:47.064454572 -0600
@@ -15,7 +15,7 @@
.OP \-DPUVdflosu
.OP \-c CONFIGFILE
.OP \-e DAYS
-.RI [ HOSTNAME ]
+.RI [ HOSTNAME [:ARGUMENT] ]
.I CHANGESFILE
\f[R].\|.\|.\f[]
.YS
@@ -65,6 +65,10 @@ can perform on each package.
configuration. If not specified, \f[I]HOSTNAME\f[] defaults to the
value of the \f[B]default_host_main\f[] configuration parameter.
.
+You also can
+pass an argument to the host by appending the hostname with a colon followed
+by the argument.
+.
.P
The file transfer method is determined by the \f[B]method\f[]
configuration parameter for the specified host. See
diff -urpN dput-1.1.2.orig/doc/man/dput.cf.5 dput-1.1.2/doc/man/dput.cf.5
--- dput-1.1.2.orig/doc/man/dput.cf.5 2022-07-01 16:15:28.000000000 -0600
+++ dput-1.1.2/doc/man/dput.cf.5 2022-09-20 15:27:07.403817539 -0600
@@ -340,6 +340,14 @@ for packages that are allowed to be uplo
This variable is used when guessing the host to upload to.
.
.\" ==========
+.SH HOST ARGUMENT
+.P
+If a user passes an argument to a host by appending the hostname with a colon,
+.B %(HOSTNAME)s
+will be replaced with the specified argument. Otherwise, it will be replaced
+with an empty string.
+.
+.\" ==========
.SH FILES
.
.TP
diff -urpN dput-1.1.2.orig/dput/dput.py dput-1.1.2/dput/dput.py
--- dput-1.1.2.orig/dput/dput.py 2022-07-01 16:15:28.000000000 -0600
+++ dput-1.1.2/dput/dput.py 2022-09-20 15:31:00.221305900 -0600
@@ -979,6 +979,19 @@ def main():
if len(args) == 1 and not options.check_only:
changes_file_paths = args[0:]
else:
+ if ':' in args[0]:
+ sys.stdout.write("D: Splitting host argument out of %s.\n" % args[0])
+ args[0], host_argument = args[0].split(":", 1)
+ else:
+ host_argument = ""
+
+ if config.has_section(args[0]):
+ sys.stdout.write("D: Setting host argument.\n")
+ config.set(args[0], args[0], host_argument)
+ else:
+ # Let the code below handle this as it is sometimes okay (ie. -o)
+ pass
+
if not options.check_only:
if options.debug:
sys.stdout.write(