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))))