Skip to content

Avoid --keep-going message #287

@nomeata

Description

@nomeata

Hi Neil,

my build system usually uses --keep-going, because I expect there to be a number of build failures (finding and fixing them is the main purpose of the tool).

The message printed upon the first error is confusing to the user. Can it somehow be disabled?

Here is an example:

import Development.Shake
main = shakeArgs shakeOptions $ do
    want ["foo1","foo2"]
    "foo1" %> \out -> do
        need ["bar1"]
        putNormal out
    "foo2" %> \out -> do
        need ["bar2"]
        putNormal out
    "bar1" %> \out -> do
        writeFileLines out []
        putNormal out
    "bar2" %> \out -> do
        writeFileLines out []
        putNormal out

Currently, it prints:

$ ./staunch-bug --keep-going
bar2
foo2
Error when running Shake build system:
* foo2
Error, rule "foo2" failed to build file:
  foo2
Continuing due to staunch mode, this error will be repeated later
bar1
foo1
Error when running Shake build system:
* foo2
Error, rule "foo2" failed to build file:
  foo2

Note that the error on foo2 is reported twice, but no other error is.

I would rather like to see either

$ ./staunch-bug --keep-going
bar2
foo2
bar1
foo1

(and I would extend my rules to give better error messages), or

$ ./staunch-bug --keep-going
bar2
foo2
Error when running Shake build system:
* foo2
Error, rule "foo2" failed to build file:
  foo2
bar1
foo1
Error when running Shake build system:
* foo1
Error, rule "foo1" failed to build file:
  foo1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions