~ chicken-core (chicken-5) 861b106b2bf4baa088ee6adf868c7fb3a0191636


commit 861b106b2bf4baa088ee6adf868c7fb3a0191636
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Thu Jul 5 20:48:56 2018 +1200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Jul 5 13:55:17 2018 +0200

    Remove directories when uninstalling extensions
    
    Signed-off-by: felix <felix@call-with-current-continuation.org>

diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm
index 6a692c83..148bc880 100644
--- a/chicken-uninstall.scm
+++ b/chicken-uninstall.scm
@@ -111,20 +111,17 @@
          files)
        (delete-installed-file ifile)))
 
-(define (delete-file-command platform)
-  (case platform
-    ((unix) "rm -f ")
-    ((windows) "del /q /s ")))
-
 (define (delete-installed-file fname)
   (cond ((not (file-exists? fname))
          (warning "file does not exist" fname))
         ((and sudo-uninstall (eq? 'unix default-platform))
-         (let ((r (system (string-append "sudo " (delete-file-command 'unix) 
-                                         "\"" fname "\""))))
+         (let ((r (system (string-append "sudo rm -f -r " (qs fname)))))
            (unless (zero? r)
              (warning "deleting file failed" fname))))
-        (else (delete-file fname))))
+        ((directory-exists? fname)
+         (delete-directory fname #t))
+        (else
+         (delete-file fname))))
 
 (define (uninstall pats mtch)
   (let ((eggs (gather-eggs pats mtch)))
Trap