(Apologies for the delay in replying, Google Groups does not work like I thought it did...)
from fabricate import *
def output():
run('sh','-c','cat list | xargs cat > output')
main()
I first create the file list (containing the lines input1 and input2) and the files input1 (containing test) and input2 (containing again). In the initial run I get:
sh -c "cat list | xargs cat > output"
{
".deps_version": 2,
"sh -c \"cat list | xargs cat > output\"": {
"input1": "input-098f6bcd4621d373cade4e832627b4f6",
"input2": "input-639849f6b368019778991b32434354fc",
"list": "input-e6445150678b2f90aaf2a9b87c8b829d",
"output": "output-68e37a5f0d265ce101f95f6e24df7540"
}
}
That looks perfect. I then rerun with no changes, and nothing rebuilds or changes, as expected. I then modify input1 to become "more" and run the build system again. Everything updates, but the .deps now reads:
sh -c "cat list | xargs cat > output"
{
".deps_version": 2,
"sh -c \"cat list | xargs cat > output\"": {
"output": "output-e7af27520e9ef04ba1df62d90a9c6132"
}
}
I change another file in the next run, and unsurprisingly, things don't update as expected. On Windows, with tracker.exe, the .deps file has the correct contents throughout.
Lex: Alas, I have no local Linux machine to test on.