diff --git a/src/Composer/Command/ConfigCommand.php b/src/Composer/Command/ConfigCommand.php
index 1761402ee..eb7a3ff1f 100644
--- a/src/Composer/Command/ConfigCommand.php
+++ b/src/Composer/Command/ConfigCommand.php
@@ -146,10 +146,14 @@ EOT
// passed in a file to use
$configFile = $input->getOption('global')
? ($this->config->get('home') . '/config.json')
- : ($input->getOption('file') ?: trim(getenv('COMPOSER')) ?: 'composer.json');
+ : ($input->getOption('file') ?: Factory::getComposerFile());
// Create global composer.json if this was invoked using `composer global config`
- if ($configFile === 'composer.json' && !file_exists($configFile) && realpath(getcwd()) === realpath($this->config->get('home'))) {
+ if (
+ ($configFile === 'composer.json' || $configFile === './composer.json')
+ && !file_exists($configFile)
+ && realpath(getcwd()) === realpath($this->config->get('home'))
+ ) {
file_put_contents($configFile, "{\n}\n");
}
diff --git a/src/Composer/Console/Application.php b/src/Composer/Console/Application.php
index 96ba7d900..081476d93 100644
--- a/src/Composer/Console/Application.php
+++ b/src/Composer/Console/Application.php
@@ -127,13 +127,13 @@ 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')) {
+ if ($io->isInteractive() && !in_array($commandName, array('init', 'about', 'help', 'diagnose', 'self-update', 'global'), true) && !file_exists(Factory::getComposerFile())) {
$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 (file_exists($dir.'/'.Factory::getComposerFile())) {
if ($io->askConfirmation('No composer.json in current directory, do you want to use the one at '.$dir.'? [Y,n]? ', true)) {
$oldWorkingDir = getcwd();
chdir($dir);