From cb66e7cac35892a482cf07c7e05db5ff6296c395 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Tue, 27 Nov 2012 20:22:03 -0800 Subject: [PATCH] adjustments to ipifony download script, #18333 --- FS/bin/freeside-ipifony-download | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/FS/bin/freeside-ipifony-download b/FS/bin/freeside-ipifony-download index 0384926ad..ac9f76400 100644 --- a/FS/bin/freeside-ipifony-download +++ b/FS/bin/freeside-ipifony-download @@ -12,7 +12,7 @@ use FS::Conf; use Text::CSV; my %opt; -getopts('va:', \%opt); +getopts('va:P:', \%opt); #$Net::SFTP::Foreign::debug = -1; sub HELP_MESSAGE { ' @@ -20,6 +20,7 @@ sub HELP_MESSAGE { ' freeside-ipifony-download [ -v ] [ -a archivedir ] + [ -P port ] freesideuser sftpuser@hostname[:path] ' } @@ -59,12 +60,18 @@ $sftpuser = $1 || $ENV{USER}; $host =~ s/:(.*)//; $path = $1; +my $port = 22; +if ( $opt{P} =~ /^(\d+)$/ ) { + $port = $1; +} + # for now assume SFTP download as the only method print STDERR "Connecting to $sftpuser\@$host...\n" if $opt{v}; my $sftp = Net::SFTP::Foreign->new( host => $host, user => $sftpuser, + port => $port, # for now we don't support passwords. use authorized_keys. timeout => 30, more => ($opt{v} ? '-v' : ''), @@ -87,11 +94,20 @@ FILE: foreach my $filename (@$files) { next FILE; } + # make sure server archive dir exists + if ( !$sftp->stat('Archive') ) { + print STDERR "Creating $path/Archive\n" if $opt{v}; + $sftp->mkdir('Archive'); + if($sftp->error) { + # something is seriously wrong + die "failed to create archive directory on server:\n".$sftp->error."\n"; + } + } #move to server archive dir $sftp->rename("$filename", "Archive/$filename"); if($sftp->error) { - warn "failed to archive $filename on server\n"; - } # process it anyway though + warn "failed to archive $filename on server:\n".$sftp->error."\n"; + } # process it anyway, I guess/ #copy to local archive dir if ( $opt{a} ) { -- 2.11.0