shp.ss
#lang scheme/base
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; JSMGR: Javascript Manager
;;
;; a Javascript Manager/builder for managing your complex ajax scripts 
;;
;; Bonzai Lab, LLC.  All rights reserved.
;;
;; Licensed under LGPL.
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; shp.ss - adapter to SHP framework
;; yc 8/21/2009 - first version
(require mzlib/trace
         scheme/contract
         scheme/string 
         (planet bzlib/shp:1:1/request)
         (planet bzlib/shp:1:1/response)
         (planet bzlib/shp:1:1/proxy)
         (planet bzlib/http/client)
         "main.ss"
         )

;; js/css!
;; loads and compresses either javascript or css as a single file...
(define (js/css! (scripts ($query* "s")) #:base (base (current-directory)) #:compress! (compress! yui-compress!))
  (define (scripts-helper) 
    (open-js/css-files/base 
     (if (not (null? ($pathinfo)))
         (cons (string-join (filter (lambda (segment) 
                                      (not (string=? segment ""))) 
                                    ($pathinfo))
                            "/")
               scripts)
         scripts)
     base
     compress!))
  (raise 
   (http-client-response->response 
    (make-http-client-response "1.1" 
                               200 
                               "OK" 
                               '(("Content-Type" . "text/javascript"))
                               (scripts-helper))
    (lambda (x) x))))

(provide/contract 
 (js/css! (->* ()
                   ((listof path-string?) 
                    #:base path-string?
                    #:compress! (or/c #f (-> path-string? any)))
                   any))
 )

(provide (all-from-out "main.ss"))