If I use the action cmd_ Shell (FileStdout "foo.txt") "make-foo -" and the action fails, for example because make-foo is not in the $PATH, then shake will erase the content of foo.txt if it exists. I would expect that it is never the expected behaviour.
This could be solved either by a warning in the docs and possibly an alternate option like FileStdoutSuccess or a function writeStdout :: FilePath -> Action (Exit, Stdout String) -> Action (), or by changing the behaviour of FileStdout.
If I use the action
cmd_ Shell (FileStdout "foo.txt") "make-foo -"and the action fails, for example becausemake-foois not in the$PATH, thenshakewill erase the content offoo.txtif it exists. I would expect that it is never the expected behaviour.This could be solved either by a warning in the docs and possibly an alternate option like
FileStdoutSuccessor a functionwriteStdout :: FilePath -> Action (Exit, Stdout String) -> Action (), or by changing the behaviour ofFileStdout.