diff options
Diffstat (limited to 'src/pacman')
-rw-r--r-- | src/pacman/conf.c | 9 | ||||
-rw-r--r-- | src/pacman/pacman.c | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/pacman/conf.c b/src/pacman/conf.c index cf3ca9c6..a62ef609 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -35,6 +35,7 @@ #define min(X, Y) ((X) < (Y) ? (X) : (Y)) extern char *pmo_dbpath; +extern char *pmo_cachedir; extern list_t *pmo_holdpkg; extern char *pmo_proxyhost; extern unsigned short pmo_proxyport; @@ -214,6 +215,14 @@ int parseconfig(char *file) FREE(pmo_dbpath); pmo_dbpath = strdup(ptr); vprint("config: dbpath: %s\n", ptr); + } else if(!strcmp(key, "CACHEDIR")) { + /* shave off the leading slash, if there is one */ + if(*ptr == '/') { + ptr++; + } + FREE(pmo_cachedir); + pmo_cachedir = strdup(ptr); + vprint("config: cachedir: %s\n", ptr); } else if (!strcmp(key, "LOGFILE")) { if(alpm_set_option(PM_OPT_LOGFILE, (long)ptr) == -1) { ERR(NL, "failed to set option LOGFILE (%s)\n", alpm_strerror(pm_errno)); diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 00be4b83..f5b0e152 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -51,6 +51,7 @@ /* command line options */ char *pmo_root = NULL; char *pmo_dbpath = NULL; +char *pmo_cachedir = NULL; char *pmo_configfile = NULL; unsigned short pmo_op = PM_OP_MAIN; unsigned short pmo_verbose = 0; @@ -174,6 +175,9 @@ int main(int argc, char *argv[]) if(pmo_dbpath == NULL) { pmo_dbpath = strdup("var/lib/pacman"); } + if(pmo_cachedir == NULL) { + pmo_cachedir = strdup("var/cache/pacman"); + } /* set library parameters */ if(alpm_set_option(PM_OPT_LOGMASK, (long)pmo_debug) == -1) { @@ -188,6 +192,10 @@ int main(int argc, char *argv[]) ERR(NL, "failed to set option DBPATH (%s)\n", alpm_strerror(pm_errno)); cleanup(1); } + if(alpm_set_option(PM_OPT_CACHEDIR, (long)pmo_cachedir) == -1) { + ERR(NL, "failed to set option CACHEDIR (%s)\n", alpm_strerror(pm_errno)); + cleanup(1); + } if(pmo_verbose > 1) { printf("Root : %s\n", pmo_root); |