[Libguestfs] [PATCH nbdkit 3/6] file: Make the file= parameter into a magic config key.
Richard W.M. Jones
rjones at redhat.com
Fri Sep 7 14:58:44 UTC 2018
On Fri, Sep 07, 2018 at 08:34:34AM -0500, Eric Blake wrote:
> On 09/07/2018 06:51 AM, Richard W.M. Jones wrote:
>
> >+++ b/plugins/file/nbdkit-file-plugin.pod
> >@@ -4,7 +4,7 @@ nbdkit-file-plugin - nbdkit file plugin
> > =head1 SYNOPSIS
> >- nbdkit file file=FILENAME
> >+ nbdkit file FILENAME
> > =head1 DESCRIPTION
> >@@ -26,6 +26,9 @@ be used here.
> > This parameter is required.
> >+In nbdkit E<ge> 1.7, C<file=> may be omitted if the filename does not
> >+start with a C<-> or contain an C<=> character.
>
> This is accurate, but annoying for 'nbdkit file "$name"' when $name
> is not under your control.
>
> With just a bit more code in patch 2/6, you could:
> s|contain an C<=> character|& with no earlier C</> character|
>
> That is, if we assume/enforce that all valid key values that any
> plugin should ever want to support are also valid shell variable
> names, then we can tell that 'a=b' is a key/value, while './a=b' is
> an attempt to use the magic-key functionality (equivalent to
> 'file=./a=b'). Then, it becomes easy to write:
>
> case $name in
> /*) nbdkit file "$name" ;;
> *) nbdkit file "./$name" ;;
> esac
>
> without worrying about leading - or contained = in $name.
>
> Of course, you can still always write:
> nbdkit file file="$name"
>
> when untrusted names are a concern, so I don't know if the extra
> magic is worth it.
>
> Otherwise, I'm liking this series.
They could of course continue to use file=foo=bar which will work to
describe a file called "foo=bar". But I agree we ought to limit the
choice of characters in the key. There are some filters (eg. error
filter) already using '-' in keys, and I guess it's also valid to use
'_' as well as the usual alphanumeric.
I'll send a follow up patch to limit this and make the
documentation clearer.
Thanks,
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
More information about the Libguestfs
mailing list