Raise exception if template has invalid variables

If the template string contains variables which aren't valid for whipper, raise ValueError exception listing all the included unrecognized variables.
I've also corrected the example template configuration lines in the README.

Fixes #279.
This commit is contained in:
JoeLametta
2018-11-02 08:00:00 +00:00
parent a011ca8d73
commit 69bac864ab
2 changed files with 5 additions and 1 deletions

View File

@@ -250,7 +250,7 @@ read_offset = 6 ; drive read offset in positive/negative frames (no leading +)
unknown = True
output_directory = ~/My Music
track_template = new/%%A/%%y - %%d/%%t - %%n ; note: the format char '%' must be represented '%%'
disc_template = %(track_template)s
disc_template = new/%%A/%%y - %%d/%%A - %%d
# ...
```

View File

@@ -196,6 +196,10 @@ class Program:
"""
assert isinstance(outdir, unicode), "%r is not unicode" % outdir
assert isinstance(template, unicode), "%r is not unicode" % template
matches = re.findall(r"%[^A,S,d,y,r,R,x,X]", template)
if '%' in template and matches:
raise ValueError('disc template string contains invalid '
'variable(s): {}.'.format(', '.join(matches)))
v = {}
v['A'] = 'Unknown Artist'
v['d'] = mbdiscid # fallback for title