New configuration schemas changes, round 3.

struct xbps_handle::conffile has been renamed to confdir, and it now
expects the path to a directory, where the configuration files are
stored.

Change xbps-bin(8) and xbps-repo(8) along with its manpages to mention
that -C expects a directory.
This commit is contained in:
Juan RP
2011-10-17 15:11:54 +02:00
parent c285afebdc
commit 931a03b806
9 changed files with 94 additions and 46 deletions

View File

@@ -49,6 +49,7 @@ int
xbps_init(struct xbps_handle *xh)
{
prop_dictionary_t confd;
prop_string_t conffile = NULL, repofile = NULL;
const char *conf_rootdir = NULL, *conf_cachedir = NULL;
uint16_t fetch_cache_conn = 0, fetch_cache_conn_host = 0;
int rv;
@@ -58,18 +59,29 @@ xbps_init(struct xbps_handle *xh)
xhp = xh;
debug = xhp->debug;
/* If conffile not set, defaults to XBPS_SYSCONF_PATH */
if (prop_object_type(xhp->conffile) != PROP_TYPE_STRING)
xhp->conffile = prop_string_create_cstring(_CONFFILE);
/* If confdir not set, defaults to XBPS_SYSCONF_PATH */
if (prop_object_type(xhp->confdir) != PROP_TYPE_STRING) {
conffile = prop_string_create_cstring(_CONFFILE);
repofile = prop_string_create_cstring(_REPOFILE);
} else {
conffile = prop_string_copy(xhp->confdir);
prop_string_append_cstring(conffile, "/");
prop_string_append_cstring(conffile, XBPS_CONF_PLIST);
repofile = prop_string_copy(xhp->confdir);
prop_string_append_cstring(repofile, "/");
prop_string_append_cstring(repofile, XBPS_CONF_REPOS_PLIST);
}
/*
* Internalize the XBPS_CONF_REPOS_PLIST array.
*/
xhp->repos_array = prop_array_internalize_from_file(_REPOFILE);
xhp->repos_array =
prop_array_internalize_from_file(prop_string_cstring_nocopy(repofile));
/*
* Internalize the XBPS_CONF_PLIST dictionary.
*/
confd = prop_dictionary_internalize_from_file(
prop_string_cstring_nocopy(xhp->conffile));
prop_string_cstring_nocopy(conffile));
if (confd == NULL) {
if (errno != ENOENT) {
xbps_dbg_printf("%s: cannot internalize conf "
@@ -140,11 +152,15 @@ xbps_init(struct xbps_handle *xh)
xbps_dbg_printf("cachedir: %s\n",
prop_string_cstring_nocopy(xhp->cachedir));
xbps_dbg_printf("conffile: %s\n",
prop_string_cstring_nocopy(xhp->conffile));
xbps_dbg_printf("repofile: %s\n", _REPOFILE);
xbps_dbg_printf("fetch_cache_conn: %zu\n", fetch_cache_conn);
xbps_dbg_printf("fetch_cacche_conn_host: %zu\n", fetch_cache_conn_host);
xbps_dbg_printf("fetch_timeout: %zu\n", xhp->fetch_timeout);
prop_string_cstring_nocopy(conffile));
xbps_dbg_printf("repofile: %s\n",
prop_string_cstring_nocopy(repofile));
xbps_dbg_printf("fetch_cache_conn: %zu\n",
fetch_cache_conn);
xbps_dbg_printf("fetch_cacche_conn_host: %zu\n",
fetch_cache_conn_host);
xbps_dbg_printf("fetch_timeout: %zu\n",
xhp->fetch_timeout);
/*
* Initialize regpkgdb dictionary.
@@ -157,12 +173,12 @@ xbps_init(struct xbps_handle *xh)
return rv;
}
}
/* We don't need the confd dictionary internalized anymore */
if (prop_object_type(confd) == PROP_TYPE_DICTIONARY)
prop_object_release(confd);
/* We don't need the conffile string anymore */
if (prop_object_type(xh->conffile) == PROP_TYPE_STRING)
prop_object_release(xh->conffile);
if (prop_object_type(conffile) == PROP_TYPE_STRING)
prop_object_release(conffile);
if (prop_object_type(repofile) == PROP_TYPE_STRING)
prop_object_release(repofile);
/* Initialize virtual package settings */
xbps_init_virtual_pkgs(xhp);
@@ -179,6 +195,8 @@ xbps_end(struct xbps_handle *xh)
if (xh == NULL)
return;
if (prop_object_type(xh->confdir) == PROP_TYPE_STRING)
prop_object_release(xh->confdir);
if (prop_object_type(xh->rootdir) == PROP_TYPE_STRING)
prop_object_release(xh->rootdir);
if (prop_object_type(xh->cachedir) == PROP_TYPE_STRING)