commit 4e83bc1

chld  ·  2026-09-12 16:56:06 +0000 UTC
parent 5143254
replace shelling out for find-pkg with (ftw)
2 files changed,  +22, -10
+21, -9
 1@@ -3,8 +3,20 @@
 2 ;; package finding and shit
 3 
 4 (define (find-pkg p)
 5-  (_system "find"
 6-	   (or (getenv "DTR_DIR") "/ports") "-type" "d" "-mindepth" "2" "-maxdepth" "2" "-name" p)
 7+  (let (
 8+	(d DULL_PATH)
 9+	(r #f)
10+	)
11+    (ftw d
12+	 (lambda (f s l)
13+	   (when (and
14+		  (eq? (stat:type s) 'directory)
15+		  (string=? (basename f) p)
16+		  )
17+	     (set! r f))
18+	   #t))
19+    r
20+    )
21   )
22 
23 (define (ver-pkg pkg)
24@@ -45,15 +57,15 @@
25 	      (ftw (format #f "~a/" dp)
26 		   (lambda (g s l)
27 		     (display 
28-		     (format #f "~a~a~%"
29-			     (substring (format #f "~a" g) (string-length dp))
30-			     (if (eq? (stat:type s) 'directory) "/" "")
31-			     )
32-		     f)
33+		      (format #f "~a~a~%"
34+			      (substring (format #f "~a" g) (string-length dp))
35+			      (if (eq? (stat:type s) 'directory) "/" "")
36+			      )
37+		      f)
38 		     #t)
39 		   ))
40 	    )
41-	    )
42+	  )
43 	
44 	(begin
45 	  (die (format #f "pkg dir for package ~a~a~a not found (~a)" "\x1b[33m" pkg "\x1b[0m" dp) 1)
46@@ -79,7 +91,7 @@
47 	  (copy-file (string-append dp (list-ref df n)) (list-ref df n))
48 	  )
49 	(fc (+ n 1))))
50-  
51+    
52     (msg (format #f "package ~a~a~a successfully installed" "\x1b[33m" pkg "\x1b[m") "-->")
53     ))
54 
+1, -1
1@@ -1,3 +1,3 @@
2 (define DULL_DIR "/var/tmp/dtr")
3 (define DULL_DB "/var/lib/dull")
4-(define (or (getenv "DULL_PATH") "/ports-dull"))
5+(define DULL_PATH (or (getenv "DULL_PATH") "/ports-dull"))