Fix installation for Chicken 5

To get the repository path in Chicken 5, we not only have to require the
chicken.platform module, we also need to take the car of the result
since it now returns a list.
This commit is contained in:
Robert Fisher 2019-08-29 11:42:21 -05:00
parent 13d4bbf1d1
commit 7f3d322407

View file

@ -1287,6 +1287,16 @@
(string->number (process->string '(csi -p "(##sys#fudge 42)"))) (string->number (process->string '(csi -p "(##sys#fudge 42)")))
8)) 8))
(define (get-chicken-repo-path)
(let ((release (string-trim (process->string '(csi -release))
char-whitespace?)))
(string-trim
(if (string-prefix? "4." release)
(process->string '(csi -p "(repository-path)"))
(process->string
'(csi -R chicken.platform -p "(car (repository-path))")))
char-whitespace?)))
(define (get-install-dirs impl cfg) (define (get-install-dirs impl cfg)
(define (guile-eval expr) (define (guile-eval expr)
(guard (exn (else #f)) (guard (exn (else #f))
@ -1304,9 +1314,7 @@
(cons share-dir (delete share-dir dirs)) (cons share-dir (delete share-dir dirs))
dirs))) dirs)))
((chicken) ((chicken)
(let ((dir (string-trim (let ((dir (get-chicken-repo-path)))
(process->string '(csi -p "(repository-path)"))
char-whitespace?)))
(list (list
(if (file-exists? dir) ; repository-path should always exist (if (file-exists? dir) ; repository-path should always exist
dir dir