Files @ dcf2a2b217f1
Branch filter:

Location: DistRen/src/common/options.c

binki
common/options: API improvements
/*
  Copyright 2008 Nathan Phillip Brink, Ethan Zonca

  This file is a part of DistRen.

  DistRen is free software: you can redistribute it and/or modify
  it under the terms of the GNU Affero General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  DistRen is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU Affero General Public License for more details.

  You should have received a copy of the GNU Affero General Public License
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "options.h"

#include <confuse.h>
#include <string.h>
#include <stdio.h>

int options_init(int argc, char *argv[], cfg_t **mycfg, cfg_opt_t *myopts, const char *myname, struct options_common **allopts)
{
  char *configfile;
  
  configfile = strdup(SYSCONFDIR "/distren.conf");
  if(!configfile)
    {
      perror("strdup");
      return 1;
    }
      
  /* Conf File Parser */
  cfg_opt_t opts[] =
    {
      CFG_STR("username", "guest", CFGF_NONE),
      CFG_END()
    };
  cfg_t *cfg;
  cfg = cfg_init(opts, CFGF_NONE);
  switch(cfg_parse(cfg, configfile))
    {
    default:
      fprintf(stderr, "cfg_parse returned an unknown error code\n");
    case CFG_FILE_ERROR:
    case CFG_PARSE_ERROR:
      return 1;
      
    case CFG_SUCCESS:
      break;
    }
  
  /* End Conf File Parser */

  printf("Client Username: %s\n", cfg_getstr(cfg, "username"));
  cfg_free(cfg);
  return 0;
}