mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:42:24 -05:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
	
		
			1,007 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			1,007 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | #!/bin/sh
 | ||
|  | 
 | ||
|  | # Test that the Swagger spec is up to date and valid. | ||
|  | 
 | ||
|  | set -eu | ||
|  | 
 | ||
|  | swagger_cmd() { | ||
|  |   go run github.com/go-swagger/go-swagger/cmd/swagger "$@" | ||
|  | } | ||
|  | swagger_spec='docs/api/swagger.yaml' | ||
|  | 
 | ||
|  | # Temporary directory for the regenerated Swagger spec. | ||
|  | temp_dir=$(mktemp -d) | ||
|  | # Can't use mktemp directly because we need to control the file extension. | ||
|  | regenerated_swagger_spec="${temp_dir}/swagger.yaml" | ||
|  | cleanup() { | ||
|  |   rm -rf "${temp_dir}" | ||
|  | } | ||
|  | trap cleanup INT TERM EXIT | ||
|  | 
 | ||
|  | # Regenerate the Swagger spec and compare it to the working copy. | ||
|  | swagger_cmd generate spec --scan-models --exclude-deps --output "${regenerated_swagger_spec}" | ||
|  | if ! diff -u "${swagger_spec}" "${regenerated_swagger_spec}" > /dev/null; then | ||
|  |   echo "${swagger_spec} is out of date. Please run the following command to update it:" >&2 | ||
|  |   echo "  go run github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps --output ${swagger_spec}" >&2 | ||
|  |   exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | # Validate the Swagger spec. | ||
|  | swagger_cmd validate "${swagger_spec}" |