>From d38cac689fb1bc4a35fb28f9989433d4b890da6c Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Wed, 3 Jan 2018 17:58:00 +1300 Subject: [PATCH] Minor changes to egg cache dir handling - Avoid error on "chicken-install -purge" when cache dir doesn't exist. - Don't cache builds in "/tmp" or "/Temp". - Use ".chicken-install/cache" path for egg cache. - Create cache dir recursively (i.e. "mkdir -p") in case parent directories don't exist. - Drop unnecessary call to `file-exists?' in `probe-dir' (testing the path with `directory?' is enough). - Drop redundant call to `create-directory' in `fetch-egg' (the cache dir is already created in the `fetch' helper procedure). --- chicken-install.scm | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/chicken-install.scm b/chicken-install.scm index 7e4e86cd..bfefdb30 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -112,16 +112,14 @@ (get-environment-variable "DYLD_LIBRARY_PATH"))) (define (probe-dir dir) - (and dir (file-exists? dir) (directory? dir) dir)) - + (and dir (directory? dir) dir)) + (define cache-directory (or (get-environment-variable "CHICKEN_EGG_CACHE") (make-pathname (or (probe-dir (get-environment-variable "HOME")) (probe-dir (get-environment-variable "USERPROFILE")) - (probe-dir "/tmp") - (probe-dir "/Temp") - ".") - ".chicken-install.cache"))) + (current-directory)) + ".chicken-install/cache"))) (define (repo-path) (if (and cross-chicken (not host-extension)) @@ -410,11 +408,9 @@ (define (fetch lax) (when (file-exists? cached) (delete-directory cached #t)) - (create-directory cached) + (create-directory cached #t) (fetch-egg-sources name version cached lax) (with-output-to-file status (cut write current-status))) - (unless (file-exists? cache-directory) - (create-directory cache-directory)) (cond ((or (not (probe-dir cached)) (not (file-exists? eggfile))) (d "~a not cached~%" name) @@ -964,8 +960,9 @@ (define (purge-cache eggs) (cond ((null? eggs) - (d "purging complete cache at ~a~%" cache-directory) - (delete-directory cache-directory #t)) + (when (file-exists? cache-directory) + (d "purging complete cache at ~a~%" cache-directory) + (delete-directory cache-directory #t))) (else (for-each (lambda (egg) -- 2.11.0