~ruther/guix-local

fb83842efba5b4f08a151d2f8a0fd43de6c62778 — Ludovic Courtès 13 years ago a9f8b72
ftp-client: Add `ftp-size'.

* guix/ftp-client.scm (ftp-size): New procedure.
1 files changed, 8 insertions(+), 1 deletions(-)

M guix/ftp-client.scm
M guix/ftp-client.scm => guix/ftp-client.scm +8 -1
@@ 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]+)"))