1#ifndef SOURCEMETA_CORE_PROCESS_H_
2#define SOURCEMETA_CORE_PROCESS_H_
4#ifndef SOURCEMETA_CORE_PROCESS_EXPORT
5#include <sourcemeta/core/process_export.h>
9#include <sourcemeta/core/process_error.h>
13#include <initializer_list>
29namespace sourcemeta::core {
39 std::filesystem::path
directory{std::filesystem::current_path()};
44 std::optional<std::map<std::string_view, std::string_view>>
environment{
62SOURCEMETA_CORE_PROCESS_EXPORT
63auto spawn(
const std::string &program,
64 std::initializer_list<std::string_view> arguments,
82SOURCEMETA_CORE_PROCESS_EXPORT
83auto spawn(
const std::string &program,
84 std::span<const std::string_view> arguments,
112SOURCEMETA_CORE_PROCESS_EXPORT
114 std::initializer_list<std::string_view> arguments,
133SOURCEMETA_CORE_PROCESS_EXPORT
135 std::span<const std::string_view> arguments,
std::optional< int > exit_code
Definition process.h:92
std::string standard_error
Everything the program wrote to its standard error.
Definition process.h:96
std::string_view standard_input
Definition process.h:48
std::optional< std::map< std::string_view, std::string_view > > environment
Definition process.h:44
std::filesystem::path directory
Definition process.h:39
std::string standard_output
Everything the program wrote to its standard output.
Definition process.h:94
SOURCEMETA_CORE_PROCESS_EXPORT auto spawn_and_capture(const std::string &program, std::initializer_list< std::string_view > arguments, const ProcessInput &input={}) -> ProcessOutput
SOURCEMETA_CORE_PROCESS_EXPORT auto spawn(const std::string &program, std::initializer_list< std::string_view > arguments, const ProcessInput &input={}) -> int