Add function to retrieve rpm config base directory

- one-shot to determine configuration base directory path from
  RPM_CONFIGDIR environement or build-time default
- rpmfileutil is a bit strange place, this would really belong to librpm
  but Lua initialization needs the path so...
This commit is contained in:
Panu Matilainen 2008-11-22 18:06:31 +02:00
parent 86645ffd4f
commit da83a562e1
3 changed files with 22 additions and 1 deletions

View File

@ -1630,4 +1630,3 @@ rpmExpandNumeric(const char *arg)
return rc;
}

View File

@ -25,6 +25,8 @@
#include "debug.h"
static const char *rpm_config_dir = NULL;
static int open_dso(const char * path, pid_t * pidp, rpm_loff_t *fsizep)
{
static const char * cmd = NULL;
@ -727,3 +729,12 @@ int rpmMkdirs(const char *root, const char *pathstr)
argvFree(dirs);
return rc;
}
const char *rpmConfigDir(void)
{
if (rpm_config_dir == NULL) {
char *rpmenv = getenv("RPM_CONFIGDIR");
rpm_config_dir = rpmenv ? xstrdup(rpmenv) : RPMCONFIGDIR;
}
return rpm_config_dir;
}

View File

@ -137,6 +137,17 @@ char * rpmExpand (const char * arg, ...) RPM_GNUC_NULL_TERMINATED;
*/
int rpmExpandNumeric (const char * arg);
/** \ingroup rpmmacro
* Return rpm configuration base directory.
* If RPM_CONFIGDIR environment variable is set, it's value will be used.
* Otherwise the configuration directory is the one set at build time,
* typically /usr/lib/rpm. The value of rpmConfigDir() is determined
* on first call to this function and is guaranteed to remain the same
* on subsequent calls.
* @return rpm configuration directory name
*/
const char *rpmConfigDir(void);
#ifdef __cplusplus
}
#endif