1
0
Fork 0

Improving bin-compat configuration

pull/3704/head
Kocsis Máté 2015-02-03 19:27:29 +01:00
parent 6a776c5edf
commit 08c4732d1e
2 changed files with 15 additions and 3 deletions

View File

@ -29,6 +29,7 @@ class Config
'github-protocols' => array('git', 'https', 'ssh'),
'vendor-dir' => 'vendor',
'bin-dir' => '{$vendor-dir}/bin',
'bin-compat' => 'auto',
'cache-dir' => '{$home}/cache',
'cache-files-dir' => '{$cache-dir}/files',
'cache-repo-dir' => '{$cache-dir}/repo',
@ -215,6 +216,17 @@ class Config
case 'home':
return rtrim($this->process($this->config[$key], $flags), '/\\');
case 'bin-compat':
$value= $this->getComposerEnv('COMPOSER_BIN_COMPAT') ?: $this->config[$key];
if (!in_array($value, array('auto', 'nosymlink', 'full'))) {
throw new \RuntimeException(
"Invalid value for 'bin-compat': {$value}. Expected auto, nosymlink, full"
);
}
return $value;
case 'discard-changes':
if ($env = $this->getComposerEnv('COMPOSER_DISCARD_CHANGES')) {
if (!in_array($env, array('stash', 'true', 'false', '1', '0'), true)) {

View File

@ -54,7 +54,7 @@ class LibraryInstaller implements InstallerInterface
$this->filesystem = $filesystem ?: new Filesystem();
$this->vendorDir = rtrim($composer->getConfig()->get('vendor-dir'), '/');
$this->binDir = rtrim($composer->getConfig()->get('bin-dir'), '/');
$this->binCompat = trim(getenv("COMPOSER_BIN_COMPAT")) ?: 'auto';
$this->binCompat = $composer->getConfig()->get('bin-compat');
}
/**
@ -227,9 +227,9 @@ class LibraryInstaller implements InstallerInterface
} else {
$this->installSymlinkBinaries($binPath, $link);
}
} elseif($this->binCompat === "nosymlink") {
} elseif ($this->binCompat === "nosymlink") {
$this->installUnixyProxyBinaries($binPath, $link);
} elseif($this->binCompat === "full") {
} elseif ($this->binCompat === "full") {
$this->installFullBinaries($binPath, $link, $bin, $package);
}
@chmod($link, 0777 & ~umask());