Add ability to call composer from within subdirectories of a project, fixes #6426
parent
c2da4e0e0e
commit
ec2722f879
|
@ -126,6 +126,24 @@ class Application extends BaseApplication
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// prompt user for dir change if no composer.json is present in current dir
|
||||||
|
if ($io->isInteractive() && !in_array($commandName, array('init', 'about', 'help', 'diagnose', 'self-update', 'global'), true) && !file_exists('./composer.json')) {
|
||||||
|
$dir = dirname(getcwd());
|
||||||
|
$home = realpath(getenv('HOME') ?: getenv('USERPROFILE') ?: '/');
|
||||||
|
|
||||||
|
// abort when we reach the home dir or top of the filesystem
|
||||||
|
while (dirname($dir) !== $dir && $dir !== $home) {
|
||||||
|
if (file_exists($dir.'/composer.json')) {
|
||||||
|
if ($io->askConfirmation('<info>No composer.json in current directory, do you want to use the one at '.$dir.'?</info> [<comment>Y,n</comment>]? ', true)) {
|
||||||
|
$oldWorkingDir = getcwd();
|
||||||
|
chdir($dir);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$dir = dirname($dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!$this->disablePluginsByDefault && !$this->hasPluginCommands && 'global' !== $commandName) {
|
if (!$this->disablePluginsByDefault && !$this->hasPluginCommands && 'global' !== $commandName) {
|
||||||
try {
|
try {
|
||||||
foreach ($this->getPluginCommands() as $command) {
|
foreach ($this->getPluginCommands() as $command) {
|
||||||
|
|
Loading…
Reference in New Issue