# HG changeset patch # User Binki # Date 2009-04-08 23:32:22 # Node ID f17d2abc86016e60ce492c3a60ad50bfcbbcfafa # Parent b98974c4ed7f8e71e5abebd5e4b1440a1f30f38c progress on restructuring options system diff --git a/etc/distren.conf b/etc/distren.conf --- a/etc/distren.conf +++ b/etc/distren.conf @@ -21,4 +21,6 @@ server ohnopublishing client { render_types = {"povray", "blender", "inkscape", "imagemagick", "dcraw"} + username = "distrenc" } + diff --git a/src/client/distren.c b/src/client/distren.c --- a/src/client/distren.c +++ b/src/client/distren.c @@ -45,10 +45,10 @@ int main(int argc, char *argv[]) cfg_opt_t cfg_opts[] = { - CFG_STR("username", "guest", CFGF_NONE), - CFG_STR("hostname", "protofusion.org", CFGF_NONE), - CFG_STR("name", "Guest", CFGF_NONE), - CFG_STR("email", "guest@protofusion.org", CFGF_NONE), + CFG_STR_LIST("render_types", NULL, 0), + CFG_STR("username", NULL, 0), + CFG_STR("name", NULL, 0), + CFG_STR("email", NULL, 0), CFG_END() }; diff --git a/src/common/options.c b/src/common/options.c --- a/src/common/options.c +++ b/src/common/options.c @@ -23,7 +23,7 @@ #include #include -int options_init(int argc, char *argv[], cfg_t **mycfg, cfg_opt_t *myopts, const char *myname, struct options_common **allopts) +int options_init(int argc, char *argv[], cfg_t **mycfg, cfg_opt_t *myopts, char *myname, struct options_common **allopts) { char *configfile; @@ -35,13 +35,36 @@ int options_init(int argc, char *argv[], } /* Conf File Parser */ + cfg_opt_t common_opts[] = + { + CFG_END() + }; + + cfg_opt_t server_opts[] = + { + CFG_STR("username", NULL, CFGF_NONE), + CFG_STR("hostname", NULL, CFGF_NONE), + CFG_STR("method", "ssh", CFGF_NONE), + CFG_END() + }; + cfg_opt_t opts[] = { - CFG_STR("username", "guest", CFGF_NONE), + CFG_SEC("common", + common_opts, + CFGF_NONE), + CFG_SEC("server", + server_opts, + CFGF_MULTI | CFGF_TITLE), + CFG_SEC(myname, + myopts, + 0), CFG_END() }; cfg_t *cfg; - cfg = cfg_init(opts, CFGF_NONE); + + + cfg = cfg_init(opts, 0); switch(cfg_parse(cfg, configfile)) { default: @@ -59,7 +82,7 @@ int options_init(int argc, char *argv[], /* End Conf File Parser */ - printf("Client Username: %s\n", cfg_getstr(cfg, "username")); + printf("Client Username: %s\n", cfg_getstr(cfg_getsec(cfg, "client"), "username")); cfg_free(cfg); return 0; } diff --git a/src/common/options.h b/src/common/options.h --- a/src/common/options.h +++ b/src/common/options.h @@ -51,7 +51,7 @@ struct options_common \param argc the argc that was passed to main() \param argv the argv that was passed to main() */ -int options_init(int argc, char *argv[], cfg_t **mycfg, cfg_opt_t *myopts, const char *myname, struct options_common **allopts); +int options_init(int argc, char *argv[], cfg_t **mycfg, cfg_opt_t *myopts, char *myname, struct options_common **allopts); /** Frees the struct options_common. This should be run before the program exits.