egg version from .setup added by mario-goulart on Mon Jul 29 16:36:50 2013

(use posix extras data-structures files)

(define (install-program id files data . rest)
  (and-let* ((version (alist-ref 'version data)))
    (car version)))

(define install-extension install-program)

(define install-script install-program)

(define (get-egg-version setup-file)
  (let ((version #f))
    (for-each
     (lambda (form)
       (when (memq (car form)
		   '(install-extension install-program install-script))
         (handle-exceptions exn
           'ignore
           (set! version (eval form)))))
     (read-file setup-file))
    version))

(define (usage #!optional exit-code)
  (let ((port (if (and exit-code (not (zero? exit-code)))
                  (current-error-port)
                  (current-output-port)))
        (this (pathname-strip-directory (program-name))))
    (fprintf port "Usage: ~a <.setup file>\n" this)
    (when exit-code
      (exit exit-code))))

(let ((args (command-line-arguments)))
  (when (null? args)
    (usage 1))

  (let ((setup-file (car args)))
    (unless (file-read-access? setup-file)
      (fprintf (current-error-port)
               "Could not read ~a\n"
               setup-file))

    (print (get-egg-version setup-file))))