2016-10-30 5 views
0

Ich schreibe ein Programm, das die git push Operation beschleunigt. Hier ist, was es tun muss:Überprüfen, ob das Programm weitergeleitet wird

printf("[github-username]\n[github-password]"); 

ich dann wie so verwenden würde:

git-autologin | git push 

Aber ich glaube nicht es eine Chance von jemandem sein wollen einfach eingeben git-autologin oder git-autologin > file.txt und sein Kann meinen Benutzernamen und mein Passwort sehen. Ich weiß, dass es albern klingt, weil jemand die Git-Befehle immer noch automatisieren kann, aber es ist unwahrscheinlich, dass irgendein nicht vertrauenswürdiger Benutzer jemals auf mein System gelangen wird.

Meine Frage: Wie kann ich feststellen, ob die Standardausgabe in eine Datei/ein Terminal schreibt oder ob es piped ist?
Edit: Die git push Rohr war einfach eine Idee, nicht der einzige Grund, den ich frage.
Edit: Gibt es eine Möglichkeit, die PID oder mehr Informationen über den Prozess zu ermitteln, an den es weitergeleitet wird?

+0

BTW, wenn das "Git" -Tag entfernt werden muss, bitte entfernen Sie es oder kommentieren Sie es. –

+3

Für diese spezielle Lösung können Sie sich über [git credentials helpers] (https://git-scm.com/docs/gitcredentials) informieren. Eigentlich wäre es besser, wenn Sie nur einen SSH-Schlüssel für die Authentifizierung verwenden, anstatt einen Benutzernamen/ein Passwort. – larsks

+0

@larks Danke, ich werde das untersuchen, aber das ist nicht der einzige Grund, warum ich frage, nur der erklärbarste –

Antwort

2

können Sie erkennen, wenn stdout ein Terminal unter Verwendung von (auf Linux & POSIX!) Die isatty(3) Funktion, wahrscheinlich als isatty(STDOUT_FILENO)

So könnten Sie das erraten, wenn isatty(STDOUT_FILENO) falsch ist, die Standardausgabe ist würde umgeleitet oder piped werden.

Alternativ verwenden fstat(2) als fstat(STDOUT_FILENO, &stdoutstat);

Aber Sie sollten ssh richtig eingerichtet (mit Anmeldeinformationen, STFW für jedes SSH Tutorial!) Auf Ihrem System zu vermeiden git jedes Passwort zu fragen haben.

Verwandte Themen