© saicle/Shutterstock.com
PHP Magazin
Unterstützung für die Kommandozeile

Node.js-Module: Commander

Mit Node.js lassen sich neben ganz gewöhnlichen Webapplikationen auch sehr gut Werkzeuge für die Kommandozeile erstellen. Es kann jedoch sehr mühsam werden, wenn Sie Kommandozeilenoptionen per Hand parsen müssen. Diese und noch weitere Aufgaben erledigt darum ein Modul namens Commander für Sie.

Sebastian Springer


Das Commander-Modul können Sie über den npm in Ihrem Projekt installieren, indem Sie auf der Kommandozeile Ihres Systems im Verzeichnis Ihrer Applikation den Befehl npm install --save commander ausführen. Nach der Installation können Sie Commander direkt in Ihrem Projekt verwenden. Wie das funktioniert, sehen Sie in Listing 1.

Listing 1: Optionen mit Commandervar program = require('commander'); program .option('-e, --euro [coll]', 'Amount of dollars to convert', parseInt, 4) .parse(process.argv); console.log('Dollar: ${program.euro} Euro: ${program.euro * 0.918484501}');

Mit der option-Methode von Commander können Sie die Kommandozeilenoptionen, die der Applikation übergeben wurden, parsen. Die parse-Methode akzeptiert eine Referenz auf die Kommandozeile, mit der das aktuelle Skript in Form des process.argv-Objekts aufgerufen wurde. Im Beispiel können Sie dann über die Variable program.euro auf den übergebenen Wert zugreifen. Speichern Sie den Quellcode aus Listing 1 in einer Datei mit dem Namen index.js, können Sie ihn mit dem Befehl node index.js -e 1 ausführen.

Parsen von Optionen

Optionen für Kommandozeilenwerkzeuge können entweder über die Kurzschreibweise mit einem vorangestellten Bindestrich gefolgt von einem Buchstaben oder in der langen Version mit zwei Bindestrichen und einem ganzen Wort geschrieben werden. Ohne weitere Hilfsmittel müssen Sie das process.argv-Objekt selbst parsen, was vor allem bei mehreren möglichen Optionen schnell unübersichtlich werden kann. Wie Sie schon im vorangegangenen Beispiel sehen konnten, können Sie über die option-Methode definieren, welche Optionen Ihre Applikation unterstützen soll. Die option-Methode kann jedoch noch viel mehr leisten. Im ersten Argument definieren Sie die Form und den Namen der Optionen; das zweite Argument ist ein Hinweistext, wie die Option zu verwenden ist. Als drittes Argument können Sie der option-Methode eine Callback-Funktion übergeben, die mit dem Optionswert ausgeführt wird. Statt einer Funktion können Sie hier auch einen regulären Ausdruck angeben, der als Filter angewendet wird. Das letzte Argument ist schließlich ein Standardwert, der benutzt wird, wenn kein Wert übergeben wird.

Hilfetext

Wenn Sie ein Kommandozeilenwerkzeug erstellen, gehört es zum guten Stil, auch eine Hilfefunktion anzubieten, die über die Option -h oder --help erreichbar ist. Diese Aufgabe nimmt Ihnen Commander ebenfalls ab und generiert aus den Hinweistexten, die Sie für die einzelnen Optionen hinterlegt haben...

PHP Magazin
Unterstützung für die Kommandozeile

Node.js-Module: Commander

Mit Node.js lassen sich neben ganz gewöhnlichen Webapplikationen auch sehr gut Werkzeuge für die Kommandozeile erstellen. Es kann jedoch sehr mühsam werden, wenn Sie Kommandozeilenoptionen per Hand parsen müssen. Diese und noch weitere Aufgaben erledigt darum ein Modul namens Commander für Sie.

Sebastian Springer


Das Commander-Modul können Sie über den npm in Ihrem Projekt installieren, indem Sie auf der Kommandozeile Ihres Systems im Verzeichnis Ihrer Applikation den Befehl npm install --save commander ausführen. Nach der Installation können Sie Commander direkt in Ihrem Projekt verwenden. Wie das funktioniert, sehen Sie in Listing 1.

Listing 1: Optionen mit Commandervar program = require('commander'); program .option('-e, --euro [coll]', 'Amount of dollars to convert', parseInt, 4) .parse(process.argv); console.log('Dollar: ${program.euro} Euro: ${program.euro * 0.918484501}');

Mit der option-Methode von Commander können Sie die Kommandozeilenoptionen, die der Applikation übergeben wurden, parsen. Die parse-Methode akzeptiert eine Referenz auf die Kommandozeile, mit der das aktuelle Skript in Form des process.argv-Objekts aufgerufen wurde. Im Beispiel können Sie dann über die Variable program.euro auf den übergebenen Wert zugreifen. Speichern Sie den Quellcode aus Listing 1 in einer Datei mit dem Namen index.js, können Sie ihn mit dem Befehl node index.js -e 1 ausführen.

Parsen von Optionen

Optionen für Kommandozeilenwerkzeuge können entweder über die Kurzschreibweise mit einem vorangestellten Bindestrich gefolgt von einem Buchstaben oder in der langen Version mit zwei Bindestrichen und einem ganzen Wort geschrieben werden. Ohne weitere Hilfsmittel müssen Sie das process.argv-Objekt selbst parsen, was vor allem bei mehreren möglichen Optionen schnell unübersichtlich werden kann. Wie Sie schon im vorangegangenen Beispiel sehen konnten, können Sie über die option-Methode definieren, welche Optionen Ihre Applikation unterstützen soll. Die option-Methode kann jedoch noch viel mehr leisten. Im ersten Argument definieren Sie die Form und den Namen der Optionen; das zweite Argument ist ein Hinweistext, wie die Option zu verwenden ist. Als drittes Argument können Sie der option-Methode eine Callback-Funktion übergeben, die mit dem Optionswert ausgeführt wird. Statt einer Funktion können Sie hier auch einen regulären Ausdruck angeben, der als Filter angewendet wird. Das letzte Argument ist schließlich ein Standardwert, der benutzt wird, wenn kein Wert übergeben wird.

Hilfetext

Wenn Sie ein Kommandozeilenwerkzeug erstellen, gehört es zum guten Stil, auch eine Hilfefunktion anzubieten, die über die Option -h oder --help erreichbar ist. Diese Aufgabe nimmt Ihnen Commander ebenfalls ab und generiert aus den Hinweistexten, die Sie für die einzelnen Optionen hinterlegt haben...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang