2015-07-10 2 views
5

Wenn ich ein Skript schreiben git-foo genannt, und legen Sie es irgendwo in meinem PATH, dann kann ich git foo führen das Skript auszuführen und git foo --option argument ausführen können Befehlszeilenoptionen und Argumente an mein Skript zu übergeben.Was ist der richtige Weg, Hilfedokumentation für benutzerdefinierte Git-Befehle bereitzustellen?

Dieser syntaktische Zucker bricht jedoch beim Versuch, Hilfe-Dokumentation zu drucken, zusammen. Ich habe gemacht git-foo --help Arbeit, aber wenn ich git foo --help ausführen, leitet Git nicht --help zu meinem Skript und versucht stattdessen, eine man Seite für git-foo zu öffnen. Ich will das nicht. Gibt es eine Möglichkeit, dieses Verhalten für benutzerdefinierte Befehle zu unterdrücken? (Idealerweise als Drehbuchautor, aber ich bin bereit, mich mit einer Möglichkeit zu begnügen, dies als Benutzer zu unterdrücken.)

Ich vermute, dass ich stattdessen eine man Seite generieren soll, aber das scheint ziemlich beschwerlich: dann Das Skript müsste mit einer zusätzlichen Datei gepackt werden, und diese zusätzliche Datei müsste an einer anderen Stelle installiert werden, und dann müsste bei der Deinstallation mehr Arbeit geleistet werden.

Antwort

0

Ich denke, du bist fest. Git implementiert absichtlich --help über man Seiten, um sicherzustellen, dass es eine einzige Informationsquelle gibt (im Gegensatz dazu, dass die Manpages nicht mehr mit der eingebetteten Hilfeausgabe synchronisiert sind).

Wenn Sie eine man Seite schreiben, sollten Sie in der Lage sein, sie auf dem gleichen Niveau wie das bin Verzeichnis in einem man Verzeichnis zu installieren, in dem Sie Ihr Skript installiert haben.

Installieren und Entfernen einer einzelnen zusätzlichen Datei scheint nicht so schlecht. Oder Sie können nur mit

git-foo --help 

Stick und sagen Sie den Leuten, das zu verwenden.

+0

Ein vernünftiger Ansatz für mich wäre zu überprüfen, ob eine man-Seite existiert und diese verwenden, ansonsten übergeben "- helfen" durch. Oder übergeben Sie einfach "--help" an nicht integrierte, nicht mit Alias ​​versehene Befehle und lassen Sie den '--help' -Handler des benutzerdefinierten Befehls eine Manpage öffnen, wenn er dies möchte. – jamesdlin

Verwandte Themen