]> gitweb.factorcode.org Git - factor.git/commitdiff
curl: add a curl-download
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 15 Apr 2024 18:37:48 +0000 (11:37 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 15 Apr 2024 18:37:48 +0000 (11:37 -0700)
extra/curl/curl.factor

index c8ae39ffcf5d3a745f42e3934c896b5b038cc17a..03d438167b7737ea4c4b3611e282267a1a5028a4 100644 (file)
@@ -1,10 +1,9 @@
 ! Copyright (C) 2014 John Benediktsson
 ! See https://factorcode.org/license.txt for BSD license
 
-USING: alien alien.c-types alien.data alien.destructors
-alien.syntax command-line curl.ffi destructors io
-io.encodings.string io.encodings.utf8 io.streams.c kernel math
-namespaces present sequences ;
+USING: alien.destructors command-line curl.ffi destructors
+http.download io.backend io.streams.c kernel namespaces present
+sequences ;
 
 IN: curl
 
@@ -27,7 +26,7 @@ DESTRUCTOR: fclose
     CURLOPT_URL swap present curl-set-opt ;
 
 : curl-set-file ( CURL path -- )
-    CURLOPT_FILE swap "wb" fopen &fclose curl-set-opt ;
+    CURLOPT_FILE swap normalize-path "wb" fopen &fclose curl-set-opt ;
 
 : curl-perform ( CURL -- )
     curl_easy_perform check-code ;
@@ -42,6 +41,9 @@ PRIVATE>
         [ curl-perform ] tri
     ] with-destructors ;
 
+: curl-download ( url -- path )
+    dup download-name [ curl-download-as ] keep ;
+
 : curl-main ( -- )
     command-line get [
         curl-init