Ejemplo n.º 1
0
 /**
  * @param array $tables
  * @param       $mysqldump
  *
  * @return Symfony_Process_ProcessBuilder
  */
 protected function createProcessBuilder(array $tables, $mysqldump)
 {
     $processBuilder = Symfony_Process_ProcessBuilder::create()->setWorkingDirectory(untrailingslashit(ABSPATH))->setTimeout(3600)->setPrefix($mysqldump)->add('--force')->add('--user='******'--password='******'--add-drop-table');
     if ($this->options->isSkipLockTables()) {
         // Don't lock all tables for read.
         $processBuilder->add('--lock-tables=false');
     }
     if ($this->options->isSkipExtendedInsert()) {
         $processBuilder->add('--extended-insert=false');
     }
     $processBuilder->add($this->configuration->getDatabase());
     // Dump only specific tables
     foreach ($tables as $table) {
         $processBuilder->add($table);
     }
     if ($this->configuration->isSocket()) {
         $processBuilder->add('--socket=' . $this->configuration->getSocketPath());
     } else {
         $processBuilder->add('--host=' . $this->configuration->getHost());
         if (($port = $this->configuration->getPort()) !== null) {
             $processBuilder->add('--port=' . $port);
         }
     }
     return $processBuilder;
 }
Ejemplo n.º 2
0
 /**
  * Run md5sum process and return file hash, or null in case of error
  *
  * @param $realPath
  *
  * @return string|null
  */
 public function computeUnixMd5Sum($realPath)
 {
     try {
         $processBuilder = Symfony_Process_ProcessBuilder::create()->setPrefix('md5sum')->add($realPath);
         if (!mwp_is_shell_available()) {
             throw new MMB_Exception("Shell is not available");
         }
         $process = $processBuilder->getProcess();
         $process->run();
         if (!$process->isSuccessful()) {
             throw new Symfony_Process_Exception_ProcessFailedException($process);
         }
         // Output is in the format of "md5hash filename"
         $output = trim($process->getOutput());
         $parts = explode(' ', $output);
         // Return only the first part of the output
         return trim($parts[0]);
     } catch (Symfony_Process_Exception_ProcessFailedException $e) {
         mwp_logger()->error('MD5 command line sum failed', array('process' => $e->getProcess()));
     } catch (Exception $e) {
         mwp_logger()->error('MD5 command line sum failed', array('exception' => $e));
     }
     return null;
 }
Ejemplo n.º 3
0
 private function mySqlExists()
 {
     $mysql = mwp_container()->getExecutableFinder()->find('mysql', 'mysql');
     $processBuilder = Symfony_Process_ProcessBuilder::create()->setWorkingDirectory(untrailingslashit(ABSPATH))->setPrefix($mysql)->add('--version');
     try {
         if (!mwp_is_shell_available()) {
             throw new MMB_Exception("Shell is not available");
         }
         $process = $processBuilder->getProcess();
         $process->run();
         return $process->isSuccessful();
     } catch (Exception $e) {
         return false;
     }
 }