Prior to this, no user documentation of dib-lint existed, which meant users had to read the dib-lint code itself to figure out how it worked. This changes adds documentation on using dib-lint and the checks it currently supports. Change-Id: I285c5cc680dd9fbd9bd3f667ef102be14e248114
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
dib-lint
 | 
						|
========
 | 
						|
 | 
						|
dib-lint provides a way to check for common errors in diskimage-builder
 | 
						|
elements.  To use it, simply run the ``dib-lint`` script in a directory
 | 
						|
containing an ``elements`` directory.  The checks will be run against
 | 
						|
every file found under ``elements``.
 | 
						|
 | 
						|
The following is a list of what is currently caught by dib-lint:
 | 
						|
 | 
						|
* executable: Ensure any files that begin with #! are executable
 | 
						|
* indent: Ensure that all source code is using an indent of four spaces
 | 
						|
* element-deps ordering: Ensure all element-deps files are alphabetized
 | 
						|
* /bin/bash: Ensure all scripts are using bash explicitly
 | 
						|
* sete: Ensure all scripts are set -e
 | 
						|
* setu: Ensure all scripts are set -u
 | 
						|
* setpipefail: Ensure all scripts are set -o pipefail
 | 
						|
* dibdebugtrace: Ensure all scripts respect the DIB_DEBUG_TRACE variable
 | 
						|
* tabindent: Ensure no tabs are used for indentation
 | 
						|
* newline: Ensure that every file ends with a newline
 | 
						|
* mddocs: Ensure that only markdown-formatted documentation is used
 | 
						|
* yaml validation: Ensure that any yaml files in the repo have valid syntax
 | 
						|
 | 
						|
Some of the checks can be omitted, either for an entire project or for an
 | 
						|
individual file.  Project exclusions go in tox.ini, using the following
 | 
						|
section format::
 | 
						|
 | 
						|
    [dib-lint]
 | 
						|
    ignore=sete setpipefail
 | 
						|
 | 
						|
This will cause the set -e and set -o pipefail checks to be ignored.
 | 
						|
 | 
						|
File-specific exclusions are specified as a comment in the relevant file,
 | 
						|
using the following format::
 | 
						|
 | 
						|
    # dib-lint: disable=sete setpipefail
 | 
						|
 | 
						|
This will exclude the same tests, but only for the file in which the comment
 | 
						|
appears.
 | 
						|
 | 
						|
Only some of the checks can be disabled.  The ones available for exclusion are:
 | 
						|
 | 
						|
* executable
 | 
						|
* indent
 | 
						|
* sete
 | 
						|
* setu
 | 
						|
* setpipefail
 | 
						|
* dibdebugtrace
 | 
						|
* tabindent
 | 
						|
* newline
 | 
						|
* mddocs
 |