Mit diesem Artikel führe ich meine Serie zu kleinen Beträgen zu freier Software fort.
Diesmal nahm ich mich dem Problem an, dass die Bash-Completion des Kommandozeilenprogrammes für den Open Build Service – osc
– in Verzeichnissen mit Leerzeichen im Pfad nicht richtig funktioniert.
Ich gehöre zu dieser, anscheinend raren, Spezies Mensch die ihren Ordnern gerne sprechenden Namen gibt.
Deshalb Nutze ich in diesen auch häufiger mal Leerzeichen.
Dabei stoße ich regelmäßig auf das Problem, dass Anwendungen mit solchen Ordnern nicht korrekt umgehen können.
So auch die Bash-Completion von osc
, welche statt der gewünschten Vorschläge Fehlermeldungen produzierte:
> osc add /usr/lib/osc/complete: Zeile 90: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 91: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 92: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 96: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 90: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 91: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 92: test: Zu viele Argumente.
/usr/lib/osc/complete: Zeile 96: test: Zu viele Argumente.
Der Fix ist trivial und war schnell implementiert und ändert nur sieben Zeilen Code.
Einfach in den betroffenen Zeilen doppelte Anführungszeichen um die Variable ${PWD}
eingefügt und schon wurde der Verzeichnisname korrekt im ganzen, statt als mehrere Argument, an test
übergeben.
Wenige Stunden später wurde der Pull-Request auf Github dann auch schon in den Hauptzweig gemerged.
In Zukunft stolpert man also über ein WTF weniger. 😃
Insgesamt hat der Pull-Request in diesem Fall weniger Zeit gekostet als diesen Artikel zu schreiben. Vermutlich hat mich der Ärger den ich früher mit diesem Bug hatte mehr Zeit gekostet als der Fix. Es lohnt sich also immer gleich mal auf den Code zu schauen. Viele Probleme lassen sich viel leichter abstellen als man denkt.