joque
task orchestration library
|
Job-friendly structure for definition of subprocess to be executed. More...
#include <process.hpp>
Public Member Functions | |
process | add_output (std::filesystem::path p) && |
Adds an output path to the output files. More... | |
process | add_input (std::filesystem::path p) && |
process | set_retcode_file (std::filesystem::path p) && |
Static Public Member Functions | |
template<typename... Args> | |
static process | derive (Args &&... args) |
Takes input command for process as any arguments and builds process instance out of those. More... | |
Public Attributes | |
std::vector< std::string > | cmd |
cmd for the process execution More... | |
std::vector< std::filesystem::path > | input |
input files that shall be monitored for changes More... | |
std::vector< std::filesystem::path > | output |
output files that shall be monitored for timestamps More... | |
std::optional< std::filesystem::path > | retcode_file |
Job-friendly structure for definition of subprocess to be executed.
This closely mirrors native make
behavior.
Subprocess is defined by a cmd
as a vector of strings. Contains list of input and output files, if any of the input files is more recent than any of the output files, process is marked as invalidated.
|
static |
Takes input command for process as any arguments and builds process instance out of those.
In case std::filesystem::path is present, it is considered an input file and added to input attribute.
In case std::filesystem::path wrapped in out is present, it is unwrapped and considered an output fil and added to the output attribute.
process joque::process::add_output | ( | std::filesystem::path | p | ) | && |
Adds an output path to the output files.
API is designed for tail chaining.
process joque::process::add_input | ( | std::filesystem::path | p | ) | && |
process joque::process::set_retcode_file | ( | std::filesystem::path | p | ) | && |
std::vector< std::string > joque::process::cmd |
cmd for the process execution
std::vector< std::filesystem::path > joque::process::input |
input files that shall be monitored for changes
std::vector< std::filesystem::path > joque::process::output |
output files that shall be monitored for timestamps
std::optional< std::filesystem::path > joque::process::retcode_file |