ftp-client: Add `ftp-size'.

* guix/ftp-client.scm (ftp-size): New procedure.
This commit is contained in:
Ludovic Courtès 2013-01-06 18:23:44 +01:00
parent a9f8b72ee1
commit fb83842efb

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -33,6 +33,7 @@ (define-module (guix ftp-client)
ftp-open ftp-open
ftp-close ftp-close
ftp-chdir ftp-chdir
ftp-size
ftp-list ftp-list
ftp-retr)) ftp-retr))
@ -133,6 +134,12 @@ (define (ftp-chdir conn dir)
(%ftp-command (string-append "CWD " dir) 250 (%ftp-command (string-append "CWD " dir) 250
(ftp-connection-socket conn))) (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 (ftp-pasv conn)
(define %pasv-rx (define %pasv-rx
(make-regexp "([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)")) (make-regexp "([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)"))