James Bardin
ff2936bb3f
Fix cancellation when spawning a subprocess
...
If the shell spawns a subprocess which doesn't close the output file
descriptors, the exec.Cmd will block on Wait() (see
golang.org/issue/18874). Use an os.Pipe to provide the command with a
real file descriptor so the exec package doesn't need to do the copy
manually. This in turn may block our own reading goroutine, but we can
select on that and leave it for cleanup later.
2017-02-01 12:01:29 -05:00
James Bardin
e0325d9b8f
fix race with multiple calls to cmd.Wait()
...
There was still a race around the local-exec Command, where we were
calling Wait in 2 places which you can't do.
2017-01-31 18:07:26 -05:00
Mitchell Hashimoto
3776d31d69
provisioners/local-exec: remove data race by setting err only once
2017-01-30 10:21:05 -08:00
Mitchell Hashimoto
0fb87cd96b
provisioners/local-exec: stoppable
...
This modifies local-exec to be stoppable with the new Stop API call that
provisioners can listen to.
2017-01-26 15:03:28 -08:00
Mitchell Hashimoto
c5b784c33f
provisioners/local-exec: switch to helper/schema
2017-01-26 15:03:28 -08:00
Mitchell Hashimoto
0808236c6e
provisioners/local-exec: output the output
2014-10-05 23:05:49 -07:00
Mitchell Hashimoto
e5868ebdd9
provisioners/*: new interface
2014-10-04 16:29:33 -07:00
Mitchell Hashimoto
c452579512
provisioners/*: compiling, tests passing
2014-09-16 17:08:27 -07:00
Mitchell Hashimoto
8720d2465e
builtin/provisioners/*: new API
2014-07-22 10:38:39 -07:00
Armon Dadgar
6ace8e12e5
provisioner/local-exec: Use interpolated values
2014-07-10 11:38:57 -07:00
Armon Dadgar
9c49642b37
provisioner/local-exec: First pass
2014-07-10 11:38:56 -07:00