#!/bin/sh :;exec ./scmlit -f $0 -e"(bi)" build $* (require 'build) (require 'getopt) (require 'getopt-parameters) (define (build-from-argv argv) (cond ((string? argv) (require 'read-command) (set! argv (call-with-input-string argv read-command)))) (let () (define command (string->symbol (list-ref argv *optind*))) (define argc (length argv)) (cond ((pair? argv) (set! *optind* (+ 1 *optind*)) ((make-command-server build '*commands*) command (lambda (comname comval options positions arities types defaulters checks aliases) (let* ((params (getopt->parameter-list argc argv options arities types aliases)) (fparams (fill-empty-parameters defaulters params))) (cond ((not (list? params)) #f) ((not (check-parameters checks fparams)) #f) ((not (check-arities (map arity->arity-spec arities) fparams)) (slib:error 'build-from-argv "arity error" fparams) #f) (else (comval fparams)))))))))) (define (build-from-whole-argv argv) (set! *optind* 0) (set! *optarg* #f) (build-from-argv argv)) (define b build-from-whole-argv) (define (b*) (require 'read-command) (do ((e (read-command) (read-command))) ((eof-object? e)) (cond ((null? e)) (else (cond ((not (string-ci=? (car e) "build")) (set! e (cons "build" e)))) (write (build-from-whole-argv e)) (newline))) (display "build> ") (force-output))) (define (bi) (build-from-argv *argv*)) (cond (*interactive* (display "type (b \"build \") to build") (newline) (display "type (b*) to enter build command loop") (newline))) ;;; Local Variables: ;;; mode:scheme ;;; End: