You are here

protected static function AssetPackagist::getRootPackage in Open Social 8

Same name and namespace in other branches
  1. 8.2 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()
  2. 8.3 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()
  3. 8.4 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()
  4. 8.5 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()
  5. 8.6 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()
  6. 8.7 src/Composer/AssetPackagist.php \Social\Composer\AssetPackagist::getRootPackage()

Reads the root package's composer.json.

This will be the composer.json closest to the current working directory that contains a dependency on Open Social.

Return value

JsonFile File wrapper around the root package's composer.json.

1 call to AssetPackagist::getRootPackage()
AssetPackagist::execute in src/Composer/AssetPackagist.php
Executes the script.

File

src/Composer/AssetPackagist.php, line 25

Class

AssetPackagist
Adds Asset Packagist support to a composer.json.

Namespace

Social\Composer

Code

protected static function getRootPackage() {
  $file = new JsonFile('composer.json');

  // Split the current working directory into an array, accounting for leading
  // and trailing directory separators.
  $dir = explode(DIRECTORY_SEPARATOR, trim(getcwd(), DIRECTORY_SEPARATOR));
  do {
    if ($file
      ->exists()) {
      $info = $file
        ->read();
      if (isset($info['require']['goalgorilla/open_social'])) {
        return $file;
      }
    }
    chdir('..');
    array_pop($dir);
  } while ($dir);
  throw new \RuntimeException('Could not locate the root package.');
}