public function PhpExtensions::install

File

drupal/core/vendor/doctrine/common/bin/travis-setup.php, line 93

Class

PhpExtensions

Code

public function install($name) {
  if (array_key_exists($name, $this->extensions)) {
    $extension = $this->extensions[$name];
    echo "== extension: {$name} ==\n";
    foreach ($extension['php_version'] as $version) {
      if (!version_compare($this->phpVersion, $version[1], $version[0])) {
        printf("=> not installed, requires a PHP version %s %s (%s installed)\n", $version[0], $version[1], $this->phpVersion);
        return;
      }
    }
    $this
      ->system(sprintf("wget %s > /dev/null 2>&1", $extension['url']));
    $file = basename($extension['url']);
    $this
      ->system(sprintf("tar -xzf %s > /dev/null 2>&1", $file));
    $folder = basename($file, ".tgz");
    $folder = basename($folder, ".tar.gz");
    $this
      ->system(sprintf('sh -c "cd %s && phpize && ./configure %s && make && sudo make install" > /dev/null 2>&1', $folder, implode(' ', $extension['cfg'])));
    foreach ($extension['ini'] as $ini) {
      $this
        ->system(sprintf("echo %s >> %s", $ini, $this->iniPath));
    }
    printf("=> installed (%s)\n", $folder);
  }
}