public function deploy() { if ($this->getArg('i')) { $inputReader = new \gracerpro\gitdeploy\InputReader($this->config); $inputReader->read(); } $ftpHelper = new \gracerpro\gitdeploy\FtpHelper(); $ftpHelper->setHost($this->config->getValue('ftp.host')); $ftpHelper->setPort($this->config->getValue('ftp.port')); $ftpHelper->setUsername($this->config->getValue('ftp.username')); $ftpHelper->setPassword($this->config->getValue('ftp.password')); $ftpHelper->connect(); $ftpHelper->setPasv(true); $ftpHelper->changeDir($this->config->getValue('ftp.chdir')); echo 'Server`s file system: ' . $ftpHelper->getSysType(), "\n"; /* get files */ $deletedFiles = $this->gitHelper->getFilesForDeleting(); $updatedFiles = $this->gitHelper->getFilesForUpdating(); $currentErrorReporting = error_reporting(); if ($this->config->getHideWarnings()) { error_reporting($currentErrorReporting & ~E_WARNING); } $excludeProjectDir = $this->config->getExcludeProjectDir(); echo "\tDeleting " . count($deletedFiles) . " files...\n"; $i = 0; $deletedLimit = $this->config->getUpdatedFilesLimit(); foreach ($deletedFiles as $name) { if ($deletedLimit >= 0 && $i >= $deletedLimit) { break; } if ($excludeProjectDir) { $name = substr($name, $excludeProjectDir); } if (empty($name)) { continue; } $result = $ftpHelper->deleteFile($name); echo $result ? 'OK' : 'FAILED', " {$name}\n"; ++$i; } echo "\tUpdating/Creating " . count($updatedFiles) . " files...\n"; $projectDir = $this->config->getProjectDir(); $updatedLimit = $this->config->getUpdatedFilesLimit(); $i = 0; foreach ($updatedFiles as $name) { if ($updatedLimit >= 0 && $i >= $updatedLimit) { break; } $sourcePath = $projectDir . '/' . $name; if ($excludeProjectDir) { $name = substr($name, $excludeProjectDir); } if (empty($name)) { continue; } $result = $ftpHelper->putFile($name, $sourcePath); echo $result ? 'OK' : 'FAILED', " {$name}\n"; ++$i; } error_reporting($currentErrorReporting); $this->endDeploy(); }