pins: Improve pin description checks

Make sure whitespace isn't in the pin description.  Also make sure an
alias doesn't map to an invalid pin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2022-05-09 16:33:46 -04:00
parent c263f76f9f
commit a94146b554
1 changed files with 3 additions and 1 deletions

View File

@ -30,6 +30,8 @@ class PinResolver:
if alias in self.aliases and self.aliases[alias] != pin: if alias in self.aliases and self.aliases[alias] != pin:
raise error("Alias %s mapped to %s - can't alias to %s" % ( raise error("Alias %s mapped to %s - can't alias to %s" % (
alias, self.aliases[alias], pin)) alias, self.aliases[alias], pin))
if [c for c in '^~!:' if c in pin] or ''.join(pin.split()) != pin:
raise error("Invalid pin alias '%s'\n" % (pin,))
if pin in self.aliases: if pin in self.aliases:
pin = self.aliases[pin] pin = self.aliases[pin]
self.aliases[alias] = pin self.aliases[alias] = pin
@ -79,7 +81,7 @@ class PrinterPins:
chip_name, pin = [s.strip() for s in desc.split(':', 1)] chip_name, pin = [s.strip() for s in desc.split(':', 1)]
if chip_name not in self.chips: if chip_name not in self.chips:
raise error("Unknown pin chip name '%s'" % (chip_name,)) raise error("Unknown pin chip name '%s'" % (chip_name,))
if [c for c in '^~!: ' if c in pin]: if [c for c in '^~!:' if c in pin] or ''.join(pin.split()) != pin:
format = "" format = ""
if can_pullup: if can_pullup:
format += "[^~] " format += "[^~] "