diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2017-07-25 16:14:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-25 16:14:32 +0200 |
commit | fbf2a4ab4588c78e3d9d0265dba774ae6b388b5f (patch) | |
tree | 883e9172499234f9f258fb41190fcd0f9134c0a4 /plumbing/transport/file/client.go | |
parent | 25a0420bc0544f826e5517365e986d83bbb926c8 (diff) | |
parent | db5fa522f36207684ec0d67b98cac6313f0259b6 (diff) | |
download | go-git-fbf2a4ab4588c78e3d9d0265dba774ae6b388b5f.tar.gz |
Merge pull request #507 from mcuadros/ctx
transport: context package support allowing cancellation of any network operation
Diffstat (limited to 'plumbing/transport/file/client.go')
-rw-r--r-- | plumbing/transport/file/client.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plumbing/transport/file/client.go b/plumbing/transport/file/client.go index b6d60c1..0b42abf 100644 --- a/plumbing/transport/file/client.go +++ b/plumbing/transport/file/client.go @@ -30,7 +30,9 @@ func NewClient(uploadPackBin, receivePackBin string) transport.Transport { }) } -func (r *runner) Command(cmd string, ep transport.Endpoint, auth transport.AuthMethod) (common.Command, error) { +func (r *runner) Command(cmd string, ep transport.Endpoint, auth transport.AuthMethod, +) (common.Command, error) { + switch cmd { case transport.UploadPackServiceName: cmd = r.UploadPackBin @@ -72,6 +74,11 @@ func (c *command) StdoutPipe() (io.Reader, error) { return c.cmd.StdoutPipe() } +func (c *command) Kill() error { + c.cmd.Process.Kill() + return c.Close() +} + // Close waits for the command to exit. func (c *command) Close() error { if c.closed { @@ -81,6 +88,7 @@ func (c *command) Close() error { defer func() { c.closed = true _ = c.stderrCloser.Close() + }() err := c.cmd.Wait() |