Browse Source

Merge pull request #6913 from mbrodala/scripts-description-toplevel

Move "scripts-description" to toplevel
Jordi Boggiano 7 years ago
parent
commit
847ebed6e6
3 changed files with 23 additions and 13 deletions
  1. 9 11
      doc/articles/scripts.md
  2. 8 1
      res/composer-schema.json
  3. 6 1
      src/Composer/Console/Application.php

+ 9 - 11
doc/articles/scripts.md

@@ -278,16 +278,14 @@ JSON array of commands.
 
 ## Custom descriptions.
 
-You can set custom script descriptions with the following extra in your composer.json:
-
- ```json
- {
-     "extra": {
-        "scripts-description": {
-            "test": "Run all tests!"
-        }
-     }
- }
- ```
+You can set custom script descriptions with the following in your `composer.json`:
+
+```json
+{
+    "scripts-descriptions": {
+        "test": "Run all tests!"
+    }
+}
+```
 
 > **Note:** You can only set custom descriptions of custom commands.

+ 8 - 1
res/composer-schema.json

@@ -379,7 +379,7 @@
         },
         "scripts": {
             "type": ["object"],
-            "description": "Scripts listeners that will be executed before/after some events.",
+            "description": "Script listeners that will be executed before/after some events.",
             "properties": {
                 "pre-install-cmd": {
                     "type": ["array", "string"],
@@ -447,6 +447,13 @@
                 }
             }
         },
+        "scripts-descriptions": {
+            "type": ["object"],
+            "description": "Descriptions for custom commands, shown in console help.",
+            "additionalProperties": {
+                "type": "string"
+            }
+        },
         "support": {
             "type": "object",
             "properties": {

+ 6 - 1
src/Composer/Console/Application.php

@@ -228,7 +228,12 @@ class Application extends BaseApplication
                             if ($this->has($script)) {
                                 $io->writeError('<warning>A script named '.$script.' would override a Composer command and has been skipped</warning>');
                             } else {
-                                $description = isset($composer['extra']['scripts-description'][$script]) ? $composer['extra']['scripts-description'][$script] : null;
+                                $description = null;
+
+                                if (isset($composer['scripts-descriptions'][$script])) {
+                                    $description = $composer['scripts-descriptions'][$script];
+                                }
+
                                 $this->add(new Command\ScriptAliasCommand($script, $description));
                             }
                         }