Update: Redesign behavior of pipe, allowing it to run properly inside software like Gitlabs CI or Githubs CI.
I believe both of the CI systems (Github and Gitlab) use Docker.
These systems will place a new line in the input pipe before starting the programs being called.
This is bad behavior but I cannot do anything about it.
The previous design of Featureless Make is to use only the input pipe if it is specified.
This results in the Featureless Make operations to fail.
This redesigns the pipe handling behavior of Featurleess Make rather than try to submit a bug report to a team that is likely to completely ignore me.
The new behavior is as follows:
- If a pipe is specified, treat the pipe is prepended to the buffer that will be used for processing the file.
- This works for both "build" operations and "make" operations.
- The input pipe is treated as a "fakefile" when using the "make" operation.
- The input pipe is treated as a "settings" file when using the "build" operation.
- The input pipe may have an error bit so always clear the error.
- The "build" and "make" operations can be called within the "make" operation, recursively, so the pipe must only be processed by the outermost fakefile.
- The operation needs to be detected and identified as "default" to better determine how to handle missing files when a pipe is present and when a pipe is not present.
- Avoid resetting the buffer on every load so that the input pipe can be prepended without being reset.
Some of the code is cleaned up and simplified in regards to files.
Only perform the pre-process cleanup checks when there are more than two operations.