convert: Split command in str form

...with yet another round-trip conversion. :/
This commit is contained in:
Adrian Sampson 2021-08-19 17:24:01 -04:00
parent 2f5f9ea174
commit e6a1f5a3dc
No known key found for this signature in database
GPG key ID: BDB93AB409CC8705

View file

@ -206,8 +206,15 @@ class ConvertPlugin(BeetsPlugin):
source = decode_commandline_path(source)
dest = decode_commandline_path(dest)
# Split the command using shell syntax. We need to pass the
# string through a `str` because, at least on some Python
# versions, shlex.split does not support bytes.
args = [
a.encode('utf8', 'surrogateescape')
for a in shlex.split(command.decode('utf8', 'surrogateescape'))
]
# Substitute $source and $dest in the argument list.
args = shlex.split(command)
encode_cmd = []
for i, arg in enumerate(args):
args[i] = Template(arg).safe_substitute({