Module ftp: anonymous FTP downloading and listing

This module provides functions for anonymous FTP listings and downloads.

Module requires for init: uri

Module provides function for: uri

ftp_exists URI

URI: URI to be checked

returns: 0: URI exists, 1: URI does not exist

Check, whether specified URI exists.

ftp_get uri provider domain path file

uri: complete URI

provider: provider part of URI

domain: domain part of URI

path: path part of URI

file: file name to be downloaded to

Download a file using FTP protocol.

ftp_list uri provider domain path uri_list_callback

uri: complete URI

provider: provider part of URI

domain: domain part of URI

path: path part of URI

uri_list_callback: callback for found items

Call callback for all found FTP objects.

ftp_list_recursive uri provider domain path uri_list_callback # uri: complete URI # provider: provider part of URI # domain: domain part of URI # path: path part of URI # uri_list_callback: callback for found items # # Call callback for all recursivelly found FTP objects.


# FIXME: Check, whether works for atypical characters in URI # FIXME: replace echo by debug commands function ftp_list_recursive {

local callback_save callback_sub

mkdir -p $PWIZ_CACHEDIR/ftp

$ftp_WGET -P $PWIZ_CACHEDIR/ftp -N -nr -r -R '*' "$1/"

if ! test -f "$PWIZ_CACHEDIR/ftp/${1#ftp://}/.listing" ; then echo "*** $1 not found" return 1

fi

shopt -s dotglob

callback_save=$pwiz_callback

callback_sub=$5

pwiz_callback=ftp_list_callback

pwiz_find "${1#ftp://}" $PWIZ_CACHEDIR/ftp/ "$callback_sub"

pwiz_callback=$callback_save

shopt -u dotglob }