arc/src/config.c

59 lines
1.3 KiB
C

/******************************************************************************
*
* Copyright (c) 2017-2019 by Löwenware Ltd
* Please, refer LICENSE file for legal information
*
******************************************************************************/
/**
* @file config.c
* @author Ilja Kartašov <ik@lowenware.com>
* @brief
*
* @see https://lowenware.com/
*/
#include <cStuff/config.h>
#include "log.h"
#include "config.h"
static int
config_callback(struct cstuff_config *cfg, void *u_ptr)
{
switch(cfg->evt) {
case CSTUFF_CONFIG_NODE:
LOG_STATE("node: %s(%d)", cfg->data.node.name, cfg->data.node.name_len);
return 0;
case CSTUFF_CONFIG_PAIR:
LOG_STATE("node: %s(%d)->%s(%d)", cfg->data.pair.key,
cfg->data.pair.key_len, cfg->data.pair.val,
cfg->data.pair.val_len);
return 0;
case CSTUFF_CONFIG_ERROR:
LOG_ERROR("config error at line %d:%d - %s", cfg->line_num,
cfg->data.error.char_num, cfg->data.error.err_txt);
break;
default:
LOG_ERROR("event unknown: %d", cfg->evt);
}
(void) u_ptr;
return -1;
}
int
config_read(void)
{
const char cfg_file[] = ARC_CONFIG_FILE;
if (!cstuff_config_parse(cfg_file, config_callback, NULL)) {
return 0;
}
LOG_ERROR("configuration failed");
return -1;
}