| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -43,15 +43,21 @@ module's name, type, interface and possibly other properties. The name
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				of the module as defined in `module.desc` must be the same as the name
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				of the module's directory.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Module descriptors must have the following keys:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Module descriptors **must** have the following keys:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- *name* (an identifier; must be the same as the directory name)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- *type* ("job" or "view")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- *interface* (see below for the different interfaces; generally we
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  refer to the kinds of modules by their interface)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Module descriptors **may** have the following keys:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- *required* **unimplemented** (a list of modules which are required for this module
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  to operate properly)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- *emergency* (a boolean value, set to true to mark the module
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  as an emergency module)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				## Module-specific configuration
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				A Calamares module *may* read a module configuration file,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				A Calamares module **may** read a module configuration file,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				named `<modulename>.conf`. If such a file is present in the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				module's directory, it is shipped as a *default* configuration file.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The module configuration file, if it exists, is a YAML 1.2 document
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -125,3 +131,17 @@ while the module type must be "job" or "jobmodule".
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The key *command* should have a string as value, which is passed to the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				shell -- remember to quote it properly.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				## Emergency Modules
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Only C++ modules and job modules may be emergency modules. If, during an
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				*exec* step in the sequence, a module fails, installation as a whole fails
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				and the install is aborted. If there are emergency modules in the **same**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				exec block, those will be executed before the installation is aborted.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Non-emergency modules are not executed.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				If an emergency-module fails while processing emergency-modules for
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				another failed module, that failure is ignored and emergency-module
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				processing continues.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Use the EMERGENCY keyword in the CMake description of a C++ module
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				to generate a suitable `module.desc`.
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |