bootstrap/include/config.h

29 lines
708 B
C
Raw Normal View History

#ifndef _SPEC_CONFIG_H
#define _SPEC_CONFIG_H
struct Config {
// The root directory housing our specs. This string is nonempty.
const char *root_dir;
// The name of the spec we want to load. This string is nonempty.
const char *target;
};
enum ConfigError {
// Indicates the `$SPEC_ROOT_DIR` environment variable is empty.
ENV_SPEC_ROOT_DIR_MISSING = 1,
// Indicates the `$SPEC_ROOT_DIR` environment variable is not set.
ENV_SPEC_ROOT_DIR_EMPTY,
// Indicates the target argument is invalid.
INVALID_TARGET,
};
2023-11-23 14:40:17 +00:00
enum ConfigError config_load(
2023-11-23 11:09:32 +00:00
const char *root_dir,
const char *target,
2023-11-23 14:40:17 +00:00
struct Config **config
2023-11-23 11:09:32 +00:00
);
2023-11-23 14:40:17 +00:00
void config_free(struct Config *config);
#endif /* _SPEC_CONFIG_H */