Dateien bereinigen mit fd und sd
Table of Contents
Das Problem⌗
In einem Software Projekt mit mehreren Beteiligten kommen früher oder später unterschiedliche Coding-Stile zum Einsatz. Ob der uneinheitliche Zeilenumbruch, (versehentliche) Leerzeichen am Ende einer Zeile oder der fehlende Zeilenumbruch am Ende einer Datei: Hier muss man sich auf auf eine gemeinsamen Standard einigen.
Die Werkzeuge⌗
Dabei kann das Projekt Editorconfig helfen. Man legt eine einfache Editorconfig-Datei in seinem Projekt ab und viele Editoren kümmern sich um den Rest.
Was passiert aber mit den bereits vorhandenen Dateien? Hier helfen ein paar einfache Kommandozeilenbefehle. Ich verwende dabei sd und fd, die für viele System verfügbar sind.
Beispiele⌗
Allen Javascript Dateien die fehlende lezte Newline hinzufügen
fd --extension js -x sd '([^\n]\z)' '$1\n'
(Erklärung der Regular Expression: “Finde ein Nicht-Zeilenende vor dem Dateiende. Ersetze dies durch den gleichen Inhalt wie zuvor, aber füge ein Newline am Ende ein”)
Alle Javascript Dateien “trailing whitespaces” löschen:
fd --extension js -x sd ' +\n' '\n'
(Erklärung der Regular Expression: “Finde ein (oder mehrere) Leerzeichen vor einem Newline. Ersetze das gefundene durch eine Newline”)
Alle Javascript Dateien in “unix-style” Zeilenumbrüche setzen:
fd --extension js -x dos2unix
Weitere Schritte⌗
Für die Zukunft könnten wir einen editor-config checker in unsere CI-Pipeline einbauen, der Änderungen auf unseren Standard gegenprüft.
Für jede Sprache sollte jetzt noch ein Linter zur Einhaltung des gleichen Formatierungsstandards eingesetzt werden.
Fazit⌗
Mit den kleinen Reparaturen können wir unser Projekt auf einen einheitlichen Standard heben. Das Editorconfig-Projekt hilft uns diese in der Zukunft einzuhalten.