263 lines
7.3 KiB
Perl
263 lines
7.3 KiB
Perl
|
|
Document how Dune displays various things
|
||
|
|
=========================================
|
||
|
|
|
||
|
|
$ echo '(lang dune 3.0)' > dune-project
|
||
|
|
$ export BUILD_PATH_PREFIX_MAP=SH=`command -v sh`
|
||
|
|
|
||
|
|
Errors with location embed in their output
|
||
|
|
------------------------------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (system "echo 'File \"foo\", line 1: blah'; exit 42")))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42')
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
sh alias default (exit 42)
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
sh alias default (exit 42)
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42')
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
Errors without location embed in their output
|
||
|
|
---------------------------------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (system "echo failure; exit 42")))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "dune", lines 1-3, characters 0-66:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "echo failure; exit 42")))
|
||
|
|
failure
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-66:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "echo failure; exit 42")))
|
||
|
|
(cd _build/default && SH -c 'echo failure; exit 42')
|
||
|
|
failure
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
File "dune", lines 1-3, characters 0-66:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "echo failure; exit 42")))
|
||
|
|
sh alias default (exit 42)
|
||
|
|
failure
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-66:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "echo failure; exit 42")))
|
||
|
|
sh alias default (exit 42)
|
||
|
|
(cd _build/default && SH -c 'echo failure; exit 42')
|
||
|
|
failure
|
||
|
|
[1]
|
||
|
|
|
||
|
|
Errors with no output
|
||
|
|
---------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (system "exit 42")))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "dune", lines 1-3, characters 0-52:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "exit 42")))
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-52:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "exit 42")))
|
||
|
|
(cd _build/default && SH -c 'exit 42')
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
File "dune", lines 1-3, characters 0-52:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "exit 42")))
|
||
|
|
sh alias default (exit 42)
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-52:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (system "exit 42")))
|
||
|
|
sh alias default (exit 42)
|
||
|
|
(cd _build/default && SH -c 'exit 42')
|
||
|
|
[1]
|
||
|
|
|
||
|
|
Successful commands with output
|
||
|
|
-------------------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (system "echo 'Hello, world!'")))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
Hello, world!
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
(cd _build/default && SH -c 'echo '\''Hello, world!'\''')
|
||
|
|
Hello, world!
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
sh alias default
|
||
|
|
Hello, world!
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
sh alias default
|
||
|
|
(cd _build/default && SH -c 'echo '\''Hello, world!'\''')
|
||
|
|
Hello, world!
|
||
|
|
|
||
|
|
Errors with-stdout-to
|
||
|
|
---------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (with-stdout-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "dune", lines 1-3, characters 0-108:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-stdout-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-108:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-stdout-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') > _build/default/bar
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
File "dune", lines 1-3, characters 0-108:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-stdout-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
sh bar (exit 42)
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-108:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-stdout-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
sh bar (exit 42)
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') > _build/default/bar
|
||
|
|
[1]
|
||
|
|
|
||
|
|
Errors with-stderr-to
|
||
|
|
---------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (with-stderr-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') 2> _build/default/bar
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
sh bar (exit 42)
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
sh bar (exit 42)
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') 2> _build/default/bar
|
||
|
|
File "foo", line 1: blah
|
||
|
|
[1]
|
||
|
|
|
||
|
|
Errors with-outputs-to
|
||
|
|
---------------------
|
||
|
|
|
||
|
|
$ cat >dune<<"EOF"
|
||
|
|
> (rule
|
||
|
|
> (alias default)
|
||
|
|
> (action (with-outputs-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
> EOF
|
||
|
|
|
||
|
|
$ dune clean; dune build
|
||
|
|
File "dune", lines 1-3, characters 0-109:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-outputs-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-109:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-outputs-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') &> _build/default/bar
|
||
|
|
Command exited with code 42.
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short
|
||
|
|
File "dune", lines 1-3, characters 0-109:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-outputs-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
sh bar (exit 42)
|
||
|
|
[1]
|
||
|
|
|
||
|
|
$ dune clean; dune build --display short --always-show-command-line
|
||
|
|
File "dune", lines 1-3, characters 0-109:
|
||
|
|
1 | (rule
|
||
|
|
2 | (alias default)
|
||
|
|
3 | (action (with-outputs-to bar (system "echo 'File \"foo\", line 1: blah'; exit 42"))))
|
||
|
|
sh bar (exit 42)
|
||
|
|
(cd _build/default && SH -c 'echo '\''File "foo", line 1: blah'\''; exit 42') &> _build/default/bar
|
||
|
|
[1]
|