diff options
author | Joseph Hunkeler <jhunkeler@users.noreply.github.com> | 2024-08-08 12:45:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-08 12:45:05 -0400 |
commit | c9579598c5a1b49f7fe8e353623175bf8f3cc236 (patch) | |
tree | cf7ef75a4bea7b16713a172d17b82a0c1ad9904b /include | |
parent | 99edcf7b998a1ac83b75ef3cc117c5b91c874782 (diff) | |
download | stasis-c9579598c5a1b49f7fe8e353623175bf8f3cc236.tar.gz |
Return of the INI refactor (#20)
* Continuation of #19
* Fixes always_update_base_environment override bug added by PR #19
* Finish type hinting implementation
* ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER
* Created pointers to deeply nested structures to increase readability
* Output from ini_write() is more consistent, with fewer errant spaces and line feeds
* Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array.
* Fix strlist_append_tokenize
* original pointer is no longer modified
* token strings are stripped of leading space before appending to the list
* Use defines instead of magic numbers
* delivery_init: add render_mode argument
* test_conda: Add render mode
* test_ini: Add render mode
* Only add conda packages and wheels to the image
* docker images are saved to the packages directory and will be consumed by the image if present.
* Render template variables after bootstrapping the delivery
Diffstat (limited to 'include')
-rw-r--r-- | include/delivery.h | 5 | ||||
-rw-r--r-- | include/ini.h | 40 |
2 files changed, 23 insertions, 22 deletions
diff --git a/include/delivery.h b/include/delivery.h index 969c803..067cd0b 100644 --- a/include/delivery.h +++ b/include/delivery.h @@ -191,12 +191,11 @@ struct Delivery { /** * Initializes a Deliver structure * @param ctx pointer to Delivery context - * @param ini pointer to INIFILE describing a delivery - * @param cfg pointer to INIFILE describing extra configuration data + * @param render_mode INI_READ_RAW or INI_READ_RENDER * @return `0` on success * @return Non-zero on error */ -int delivery_init(struct Delivery *ctx); +int delivery_init(struct Delivery *ctx, int render_mode); /** * Free memory allocated by delivery_init() diff --git a/include/ini.h b/include/ini.h index 5c840f5..2992a37 100644 --- a/include/ini.h +++ b/include/ini.h @@ -7,6 +7,8 @@ #define INI_WRITE_RAW 0 ///< Dump INI data. Contents are not modified. #define INI_WRITE_PRESERVE 1 ///< Dump INI data. Template strings are +#define INI_READ_RAW 0 ///< Dump INI data. Contents are not modified. +#define INI_READ_RENDER 1 ///< Dump INI data. Template strings are #define INI_SETVAL_APPEND 0 #define INI_SETVAL_REPLACE 1 #define INI_SEARCH_EXACT 0 @@ -219,7 +221,7 @@ struct INIData *ini_getall(struct INIFILE *ini, char *section_name); * @return 0 on success * @return Non-zero on error */ -int ini_getval(struct INIFILE *ini, char *section_name, char *key, int type, union INIVal *result); +int ini_getval(struct INIFILE *ini, char *section_name, char *key, int type, int flags, union INIVal *result); /** * Write INIFILE sections and data to a file stream @@ -235,22 +237,22 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode); */ void ini_free(struct INIFILE **ini); -int ini_getval_int(struct INIFILE *ini, char *section_name, char *key, int *state); -unsigned int ini_getval_uint(struct INIFILE *ini, char *section_name, char *key, int *state); -long ini_getval_long(struct INIFILE *ini, char *section_name, char *key, int *state); -unsigned long ini_getval_ulong(struct INIFILE *ini, char *section_name, char *key, int *state); -long long ini_getval_llong(struct INIFILE *ini, char *section_name, char *key, int *state); -unsigned long long ini_getval_ullong(struct INIFILE *ini, char *section_name, char *key, int *state); -float ini_getval_float(struct INIFILE *ini, char *section_name, char *key, int *state); -double ini_getval_double(struct INIFILE *ini, char *section_name, char *key, int *state); -bool ini_getval_bool(struct INIFILE *ini, char *section_name, char *key, int *state); -short ini_getval_short(struct INIFILE *ini, char *section_name, char *key, int *state); -unsigned short ini_getval_ushort(struct INIFILE *ini, char *section_name, char *key, int *state); -char ini_getval_char(struct INIFILE *ini, char *section_name, char *key, int *state); -unsigned char ini_getval_uchar(struct INIFILE *ini, char *section_name, char *key, int *state); -char *ini_getval_char_p(struct INIFILE *ini, char *section_name, char *key, int *state); -char *ini_getval_str(struct INIFILE *ini, char *section_name, char *key, int *state); -char **ini_getval_char_array_p(struct INIFILE *ini, char *section_name, char *key, int *state); -char **ini_getval_str_array(struct INIFILE *ini, char *section_name, char *key, int *state); -struct StrList *ini_getval_strlist(struct INIFILE *ini, char *section_name, char *key, char *tok, int *state); +int ini_getval_int(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +unsigned int ini_getval_uint(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +long ini_getval_long(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +unsigned long ini_getval_ulong(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +long long ini_getval_llong(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +unsigned long long ini_getval_ullong(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +float ini_getval_float(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +double ini_getval_double(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +bool ini_getval_bool(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +short ini_getval_short(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +unsigned short ini_getval_ushort(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +char ini_getval_char(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +unsigned char ini_getval_uchar(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +char *ini_getval_char_p(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +char *ini_getval_str(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +char *ini_getval_char_array_p(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +char *ini_getval_str_array(struct INIFILE *ini, char *section_name, char *key, int flags, int *state); +struct StrList *ini_getval_strlist(struct INIFILE *ini, char *section_name, char *key, char *tok, int flags, int *state); #endif //STASIS_INI_H |