class Tar
Same name in this branch
- 11.1.x core/lib/Drupal/Core/Archiver/Tar.php \Drupal\Core\Archiver\Tar
- 11.1.x core/modules/system/src/Plugin/Archiver/Tar.php \Drupal\system\Plugin\Archiver\Tar
@author Wissem Riahi <wissemr@gmail.com>
Hierarchy
- class \Composer\Util\Tar
Expanded class hierarchy of Tar
1 file declares its use of Tar
- ArtifactRepository.php in vendor/
composer/ composer/ src/ Composer/ Repository/ ArtifactRepository.php
6 string references to 'Tar'
- ArchiveManager::getSupportedFormats in vendor/
composer/ composer/ src/ Composer/ Package/ Archiver/ ArchiveManager.php - Archive_Tar::_openRead in vendor/
pear/ archive_tar/ Archive/ Tar.php - ArtifactRepository::getComposerInformation in vendor/
composer/ composer/ src/ Composer/ Repository/ ArtifactRepository.php - Factory::createDownloadManager in vendor/
composer/ composer/ src/ Composer/ Factory.php - FileExtensionFormatter::viewValue in core/
modules/ file/ src/ Plugin/ Field/ FieldFormatter/ FileExtensionFormatter.php - Generate the output appropriate for one field item.
File
-
vendor/
composer/ composer/ src/ Composer/ Util/ Tar.php, line 18
Namespace
Composer\UtilView source
class Tar {
public static function getComposerJson(string $pathToArchive) : ?string {
$phar = new \PharData($pathToArchive);
if (!$phar->valid()) {
return null;
}
return self::extractComposerJsonFromFolder($phar);
}
/**
* @throws \RuntimeException
*/
private static function extractComposerJsonFromFolder(\PharData $phar) : string {
if (isset($phar['composer.json'])) {
return $phar['composer.json']->getContent();
}
$topLevelPaths = [];
foreach ($phar as $folderFile) {
$name = $folderFile->getBasename();
if ($folderFile->isDir()) {
$topLevelPaths[$name] = true;
if (\count($topLevelPaths) > 1) {
throw new \RuntimeException('Archive has more than one top level directories, and no composer.json was found on the top level, so it\'s an invalid archive. Top level paths found were: ' . implode(',', array_keys($topLevelPaths)));
}
}
}
$composerJsonPath = key($topLevelPaths) . '/composer.json';
if ($topLevelPaths && isset($phar[$composerJsonPath])) {
return $phar[$composerJsonPath]->getContent();
}
throw new \RuntimeException('No composer.json found either at the top level or within the topmost directory');
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Tar::extractComposerJsonFromFolder | private static | function | |
Tar::getComposerJson | public static | function |