-
Notifications
You must be signed in to change notification settings - Fork 30
Pass standard input through to all hooks #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Git hooks can be passed multiple arguments when they're called (e.g., the pre-push hook gets passed the name and location of the destination remote). The hooks were only being passed the 2nd argument, so this commit fixes that.
Some git hooks can be passed additional information through standard input (e.g., the pre-push hook), so this commit handles that properly. Since stream data can be consumed only once but multiple hooks may need to use it, capture the stream data once and pipe it to each child process individually.
Node 0.10.x does not support the keywords "inherit" as individual values when defining child process file descriptors, so define them explicitly.
lib/git-hooks.js
Outdated
| * | ||
| * @param {String} filename Path to git hook. | ||
| * @param {String[]} [args] Git hook arguments. | ||
| * @param {String} input Input string to be passed into each hook's standard input. |
Owner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please do not align jsdoc :)
It's harder to maintain (see code complete book).
Owner
|
It's better to add an extra test to check that input is passed properly to the hook. |
4 similar comments
Owner
|
Thank you for you help! Published version |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some git hooks can be passed additional information through
standard input (e.g., the pre-push hook), so this commit handles
that properly. Since stream data can be consumed only once but
multiple hooks may need to use it, capture the stream data once
and pipe it to each child process individually.