From: Vincent Vanwaelscappel Date: Fri, 27 Jan 2023 14:43:25 +0000 (+0100) Subject: wip #5700 @0.25 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=c7e86c950bac79f1f8f05627c120cdabd77c572a;p=cubist_net.git wip #5700 @0.25 --- diff --git a/src/Transfer/Driver.php b/src/Transfer/Driver.php index caa42e8..53c1d30 100644 --- a/src/Transfer/Driver.php +++ b/src/Transfer/Driver.php @@ -38,11 +38,16 @@ abstract class Driver { return Text::str2URL($path, '-', true); } + protected function _destPath($path) { + return self::_cleanInstallDir($path); + } + /** * @param $source string * @param $dest string * @param $mirror bool + * @param $dryrun bool * @return CommandLine */ - abstract public function copy($source, $dest, $mirror = false); + abstract public function copy($source, $dest, $mirror = false, $dryrun = false); } \ No newline at end of file diff --git a/src/Transfer/FTP.php b/src/Transfer/FTP.php index 892e1bb..8de4ec9 100644 --- a/src/Transfer/FTP.php +++ b/src/Transfer/FTP.php @@ -2,9 +2,18 @@ namespace Cubist\Net\Transfer; -class FTP extends Driver { +use Cubist\Util\CommandLine\LFTP; +use Cubist\Util\CommandLine\Rclone; - public function copy($source, $dest, $mirror = false) { - // TODO: Implement copy() method. +class FTP extends Driver { + public function copy($source, $dest, $mirror = false, $dryrun = false) { + $lftp = new LFTP(); + $lftp->setSrc($source); + $lftp->setDest($dest); + $lftp->setMirror($mirror); + $lftp->setServer($this->getServer()); + $lftp->setDryRun($dryrun); + $lftp->execute(); + return $lftp; } } \ No newline at end of file diff --git a/src/Transfer/Local.php b/src/Transfer/Local.php index 3d8b5f5..557b75b 100644 --- a/src/Transfer/Local.php +++ b/src/Transfer/Local.php @@ -36,11 +36,10 @@ class Local extends Driver { return rtrim($this->getBasePath(), '/') . '/' . self::_cleanInstallDir($path) . '/'; } - public function copy($source, $dest, $mirror = false) { - $destPath = $this->_destPath($dest); - $rsync = new Rsync($source, $destPath); + public function copy($source, $dest, $mirror = false, $dryrun = false) { + $rsync = new Rsync($source, $dest); $rsync->setMirror($mirror); - $rsync->setDryRun(true); + $rsync->setDryRun($dryrun); $rsync->execute(); return $rsync; } diff --git a/src/Transfer/SFTP.php b/src/Transfer/SFTP.php index 7b7607f..7b46af3 100644 --- a/src/Transfer/SFTP.php +++ b/src/Transfer/SFTP.php @@ -7,21 +7,13 @@ use Cubist\Util\CommandLine\Rsync; class SFTP extends Driver { - public function copy($source, $dest, $mirror = false) { - $server=$this->getServer(); - - $destPath = $this->_destPath($dest); + public function copy($source, $dest, $mirror = false, $dryrun = false) { $rclone = new Rclone(); - $rclone->setProtocol('sftp'); + $rclone->setServer($this->getServer()); $rclone->setSrc($source); - $rclone->setDest($destPath); + $rclone->setDest($dest); $rclone->setMirror($mirror); - $rclone->setProtocol('sftp'); - $rclone->addRcloneArg('sftp-host',$server->getHost()); - $rclone->addRcloneArg('sftp-port',$server->getPort()); - $rclone->addRcloneArg('sftp-user',$server->getUsername()); - $rclone->addRcloneArg('sftp-pass',$server->getPassword()); - $rclone->setDryRun(true); + $rclone->setDryRun($dryrun); $rclone->execute(); return $rclone; }