~ chicken-core (chicken-5) d9e4a38a5d5779bfe82168fd055022348d32ad16


commit d9e4a38a5d5779bfe82168fd055022348d32ad16
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Oct 8 03:28:03 2010 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Oct 8 03:28:03 2010 -0400

    setup-download deletes *.so's with local transport

diff --git a/chicken-install.scm b/chicken-install.scm
index 9583541e..79473b24 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -263,7 +263,8 @@
          password: *password*
 	 trunk: *trunk*
 	 proxy-host: *proxy-host*
-	 proxy-port: *proxy-port*)
+	 proxy-port: *proxy-port*
+	 clean: (not *retrieve-only*))
       [(exn net)
        (print "TCP connect timeout")
        (values #f "") ]
diff --git a/setup-download.scm b/setup-download.scm
index 0cfeac69..74eacae6 100644
--- a/setup-download.scm
+++ b/setup-download.scm
@@ -90,7 +90,7 @@
 	      (map (cut string-append <> "\n") (directory eggdir))))
 	    (else "unknown\n"))))
 
-  (define (locate-egg/local egg dir #!optional version destination)
+  (define (locate-egg/local egg dir #!optional version destination clean)
     (let* ((eggdir (make-pathname dir egg))
 	   (tagdir (make-pathname eggdir "tags"))
            (tagver (and (not *trunk*)
@@ -116,8 +116,18 @@
 		 (if (zero? (system cmd))
 		     (values dest ver)
 		     (values #f ""))))
-	      (else (values src ver))))))
-
+	      (else
+	       ;; remove *.so files in toplevel dir, just for being careful
+	       (when clean
+		 (let ((sos (filter (cut string-suffix? ".so" <>) (directory src))))
+		   (for-each
+		    (lambda (f)
+		      (d " deleting leftover ~a from local directory~%" f)
+		      (delete-file* f))
+		    sos)))
+	       (values src ver))))))
+
+;;XXX is this used anywhere?
   (define (gather-egg-information dir)
     (let ((ls (directory dir)))
       (filter-map
@@ -351,13 +361,13 @@
 
   (define (retrieve-extension name transport location
                               #!key version quiet destination username password tests
-			      proxy-host proxy-port trunk (mode 'default))
+			      proxy-host proxy-port trunk (mode 'default) clean)
     (fluid-let ((*quiet* quiet)
 		(*trunk* trunk)
 		(*mode* mode))
       (case transport
 	((local)
-	 (locate-egg/local name location version destination) )
+	 (locate-egg/local name location version destination clean) )
 	((svn)
 	 (locate-egg/svn name location version destination username password) )
 	((http)
Trap