102 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			102 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								The Drupal Project Message Plugin
							 | 
						||
| 
								 | 
							
								=================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Thanks for using this Drupal component.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can participate in its development on Drupal.org, through our issue system:
							 | 
						||
| 
								 | 
							
								https://www.drupal.org/project/issues/drupal
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can get the full Drupal repo here:
							 | 
						||
| 
								 | 
							
								https://www.drupal.org/project/drupal/git-instructions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can browse the full Drupal repo here:
							 | 
						||
| 
								 | 
							
								https://git.drupalcode.org/project/drupal
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								What does it do?
							 | 
						||
| 
								 | 
							
								----------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This Composer plugin displays a configurable message after Composer installation
							 | 
						||
| 
								 | 
							
								processes have finished.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is ideal for a 'next steps' type prompt to help get the user oriented.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Currently only two Composer events are supported:
							 | 
						||
| 
								 | 
							
								- post-create-project-cmd, when a `composer create-project` command has
							 | 
						||
| 
								 | 
							
								  finished.
							 | 
						||
| 
								 | 
							
								- post-install-cmd, when a `composer install` command has finished.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								How do I set it up?
							 | 
						||
| 
								 | 
							
								-------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Require this Composer plugin in your project template composer.json file:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    "require": {
							 | 
						||
| 
								 | 
							
								      "drupal/core-project-message": "^8.8"
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Configuration
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There are three ways to configure this plugin to output information:
							 | 
						||
| 
								 | 
							
								- Using a text file.
							 | 
						||
| 
								 | 
							
								- Using composer.json schema keys.
							 | 
						||
| 
								 | 
							
								- Embedding the information in the extra section of the composer.json file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Using a text file
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								By default, the plugin will respond to `post-install-cmd` or
							 | 
						||
| 
								 | 
							
								`post-create-project-cmd` Composer events by looking for a similarly-named file
							 | 
						||
| 
								 | 
							
								in the root of the project. For instance, if the user issues a `composer
							 | 
						||
| 
								 | 
							
								create-project` command, when that command is finished, the plugin will look for
							 | 
						||
| 
								 | 
							
								a file named `post-create-project-cmd-message.txt` and then display it on the
							 | 
						||
| 
								 | 
							
								command line.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The file should be plain text, with markup suitable for Symfony's
							 | 
						||
| 
								 | 
							
								`OutputInterface::writeln()` method. See documentation here:
							 | 
						||
| 
								 | 
							
								https://symfony.com/doc/3.4/console/coloring.html
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can also configure your own file(s), using the `extra` section of your
							 | 
						||
| 
								 | 
							
								composer.json file:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    "extra": {
							 | 
						||
| 
								 | 
							
								      "drupal-core-project-message": {
							 | 
						||
| 
								 | 
							
								        "post-create-project-cmd-file": "bespoke/special_file.txt"
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Using composer.json schema keys
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can tell the plugin to output the structured support information from the
							 | 
						||
| 
								 | 
							
								composer.json file by telling it the keys you wish to display.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Currently, only `name`, `description`, `homepage` and `support` are supported.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    "extra": {
							 | 
						||
| 
								 | 
							
								        "drupal-core-project-message": {
							 | 
						||
| 
								 | 
							
								            "include-keys": ["homepage", "support"],
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Then you can include this information in your composer.json file, which you
							 | 
						||
| 
								 | 
							
								should probably be doing anyway.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Embedding the information in the extra section
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can specify text directly within the `extra` section by using the
							 | 
						||
| 
								 | 
							
								`[event-name]-message` key. This message should be an array, with one string for
							 | 
						||
| 
								 | 
							
								each line:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    "extra": {
							 | 
						||
| 
								 | 
							
								      "drupal-core-project-message": {
							 | 
						||
| 
								 | 
							
								        "post-create-project-cmd-message": [
							 | 
						||
| 
								 | 
							
								          "Thanks for installing this project.",
							 | 
						||
| 
								 | 
							
								          "Read our documentation here: http://example.com/docs"
							 | 
						||
| 
								 | 
							
								        ]
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								These strings should be plain text, with markup suitable for Symfony's
							 | 
						||
| 
								 | 
							
								`OutputInterface::writeln()` method. See documentation here:
							 | 
						||
| 
								 | 
							
								https://symfony.com/doc/3.4/console/coloring.html
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The `-message` section will always override `-file` for a given event.
							 |