Example #1
0
 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();
 }