(use (except setup-api install-extension install-program install-script compile) files posix extras) (define destdir (make-parameter #f)) (define-syntax compile (syntax-rules () ((_ . args) (void)))) (define (install-extension id files . rest) (for-each (lambda (file) (copy-file file (destdir))) files)) (define install-program install-extension) (define install-script install-extension) (define (usage #!optional exit-code) (let ((this (pathname-strip-directory (program-name))) (port (if (and exit-code (not (zero? exit-code))) (current-error-port) (current-output-port)))) (fprintf port #<#EOF #this [ -h | --help ] #this <.setup file> EOF )) (when exit-code (exit exit-code))) (let ((args (command-line-arguments))) (when (or (null? args) (null? (cdr args))) (usage 1)) (let ((setup-file (car args)) (dest (cadr args))) (destdir (if (absolute-pathname? dest) dest (normalize-pathname (make-pathname (current-directory) dest)))) (create-directory (destdir) 'with-parents) (load setup-file)))