]> Kevux Git Server - fll/commit
Update: Redesign behavior of pipe, allowing it to run properly inside software like...
authorKevin Day <thekevinday@gmail.com>
Tue, 2 Aug 2022 22:53:13 +0000 (17:53 -0500)
committerKevin Day <thekevinday@gmail.com>
Wed, 3 Aug 2022 00:35:12 +0000 (19:35 -0500)
commitde15f904d8ff55851d0026378abd80f49a3ee966
treef42d4a34390b3d2a2654f3f78f69f4a11032d0d8
parentb21e692671d2e3587b5b9464a63207d6a9745152
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.
13 files changed:
level_3/fake/c/fake.c
level_3/fake/c/private-build-load.c
level_3/fake/c/private-build-load.h
level_3/fake/c/private-build.c
level_3/fake/c/private-build.h
level_3/fake/c/private-common.h
level_3/fake/c/private-fake-path_generate.c
level_3/fake/c/private-fake.c
level_3/fake/c/private-fake.h
level_3/fake/c/private-make-load_fakefile.c
level_3/fake/c/private-make-load_fakefile.h
level_3/fake/c/private-make-operate.c
level_3/fake/c/private-make-operate_process_type.c