chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] reinstall all eggs


From: felix winkelmann
Subject: Re: [Chicken-users] reinstall all eggs
Date: Mon, 23 Apr 2007 11:16:33 +0200

On 4/20/07, Andre Kuehne <address@hidden> wrote:
>
Nice! Which makes me wonder why i even have to switch to my bash-shell to
install this http egg. Wouldn't it be cool to see something like this?:

#0> (use http-client)
Error: (require) can not load extension: http-client
Do you want to install it? [y/n]: y
Query extension database...found http.egg
downloading http.egg from (www.call-with-current-continuation.org eggs 80)
...


(warning, hack coming)

(use utils)

(cond-expand
(syntax-case
    (define-syntax (use* x)
      (syntax-case x ()
         ((_ ext ...)
          (perhaps-install (map syntax-object->datum #'(ext ...)))
          #'(require-extension ext ...)))))
(else
 (define-macro (use* . exts)
   (perhaps-install exts)
   `(require-extension ,@exts))))

(define-for-syntax (perhaps-install exts)
 (for-each
  (lambda (ext)
    (let ((sext (symbol->string ext)))
      (unless (or (extension-info ext)
                   (feature? ext)
                   (file-exists? (make-pathname "." sext 
##sys#load-dynamic-extension))
                   (file-exists? (make-pathname (repository-path) sext
##sys#load-dynamic-extension)))
         (system* "chicken-setup ~a" ext) ) ) )
  exts))


cheers,
felix




reply via email to

[Prev in Thread] Current Thread [Next in Thread]