ftp-client: Add `ftp-size'.
authorLudovic Courtès <ludo@gnu.org>
Sun, 6 Jan 2013 17:23:44 +0000 (18:23 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sun, 6 Jan 2013 17:23:44 +0000 (18:23 +0100)
* guix/ftp-client.scm (ftp-size): New procedure.

guix/ftp-client.scm

index 7e241f3..e3bacc3 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +33,7 @@
             ftp-open
             ftp-close
             ftp-chdir
+            ftp-size
             ftp-list
             ftp-retr))
 
@@ -133,6 +134,12 @@ or a TCP port number), and return it."
   (%ftp-command (string-append "CWD " dir) 250
                 (ftp-connection-socket conn)))
 
+(define (ftp-size conn file)
+  "Return the size in bytes of FILE."
+  (let ((message (%ftp-command (string-append "SIZE " file) 213
+                               (ftp-connection-socket conn))))
+    (string->number (string-trim-both message))))
+
 (define (ftp-pasv conn)
   (define %pasv-rx
     (make-regexp "([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)"))