/** * @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; }
/** * 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; }
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; } }