Browse Source

Fix: Fail when install location is a file

In the event a file has the same name as the intended install directory, fail fast too.
polarathene 5 years ago
parent
commit
5987114f6c
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/Composer/Command/CreateProjectCommand.php

+ 6 - 2
src/Composer/Command/CreateProjectCommand.php

@@ -286,8 +286,12 @@ EOT
         }
 
         $fs = new Filesystem();
-        if (is_dir($directory) && !$fs->isDirEmpty($directory)) {
-            throw new \InvalidArgumentException("Project directory $directory is not empty.");
+        if (file_exists($directory)) {
+            if (!is_dir($directory)) {
+                throw new \InvalidArgumentException('Cannot create project directory at "'.$directory.'", it exists as a file.');
+            } elseif (!$fs->isDirEmpty($directory)) {
+                throw new \InvalidArgumentException('Project directory "'.$directory.'" is not empty.');
+            }
         }
 
         if (null === $stability) {