#ifndef _CONFIG_H_ #define _CONFIG_H_ struct variable_value { char *name; int type; void *ptr; }; enum { TYPE_INT, TYPE_STRING, }; struct plotter_config { char *charger_name; char *plotter_scripts_dir; char *images_output_dir; char *device_path; int baudrate; char *log_path; char *config_file_path; struct variable_value *variables; }; int read_args(int argc, char *argv[], struct plotter_config *cfg); int populate_config_data_from_file(const char *path, struct plotter_config *cfg); int store_str_variable_value_to_array(const char *variable, const char *value, struct plotter_config *cfg); int store_int_variable_value_to_array(const char *variable, int value, struct plotter_config *cfg); int replace_variables_with_values(char *str, size_t len, const struct plotter_config *cfg); #endif