save download to file
2 files changed, 18 insertions(+), 5 deletions(-)

M run-wispserve.w
M wispserve/serve.w
M run-wispserve.w +17 -3
@@ 7,7 7,9 @@ define-module : run-wispserve
 
 import : wispserve serve
          srfi srfi-1
-    
+         web uri
+         ice-9 binary-ports
+
 define : help-message args
        ##
          tests

          
@@ 47,6 49,18 @@ define : main args
                lazy : member "--lazy" arguments
              serve (second arguments) (second ip-opt) (string->number (second port-opt)) (not lazy)
        else
-         display : download-file : car arguments
+         let* 
+             : download-data : download-file : car arguments
+               output-opt : opt-member arguments "--output"
+               output-file
+                   if output-opt
+                       second output-opt
+                       first
+                           take-right : split-and-decode-uri-path : uri-path : string->uri : car arguments
+                                      . 1
+               port : open-output-file output-file
+             put-bytevector port download-data
+             close-port port
+             
+  
 
-

          
M wispserve/serve.w +1 -2
@@ 63,10 63,9 @@ import
     only (ice-9 vlist) alist->vhash vhash-cons vhash-assoc vhash-fold vlist->list vhash-delete
     only (web http) declare-opaque-header!
     only (oop goops) define-generic define-method <string>
-    only (rnrs bytevectors) bytevector-length utf8->string
+    only (rnrs bytevectors) bytevector-length utf8->string bytevector->u8-list u8-list->bytevector
     only (srfi srfi-27) random-integer
     only (ice-9 textual-ports) put-string
-    only (rnrs bytevectors) bytevector->u8-list u8-list->bytevector
 
 
 define : run-ipv4-fibers-server handler-with-path ip