36 lines
		
	
	
		
			830 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			830 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| TESTDIR="${TESTDIR:-test}"
 | |
| 
 | |
| json_output(){
 | |
|     # Make shellcheck happy,
 | |
|     # declare local before assign
 | |
|     local lastl
 | |
|     local line
 | |
|     local grep_info
 | |
|     local f
 | |
|     local l
 | |
|     local t
 | |
| 
 | |
|     lastl=$(echo "${1}" | wc -l)
 | |
|     line=0
 | |
|     printf '{\"include\":['
 | |
|     while read -r test; do
 | |
|         line=$((line + 1))
 | |
|         grep_info=$(echo "${test}"|awk -F '"' '{print $1}')
 | |
|         f=$(echo "${grep_info}"|cut -d ':' -f 1)
 | |
|         l=$(echo "${grep_info}"|cut -d ':' -f 2)
 | |
|         t=$(echo "${test}"|awk -F '"' '{print $2}')
 | |
|         printf '{\"file\":\"%s\",\"line\":\"%s\",\"test\":\"%s\"}' "$f" "$l" "$t"
 | |
|         [[ $line -ne $lastl ]] && printf ","
 | |
|     done <<< "${1}"
 | |
|     printf "]}"
 | |
| }
 | |
| 
 | |
| parse(){
 | |
|     grep -nrE 'It\([^)]+\)' "$1"
 | |
| }
 | |
| 
 | |
| tests_list=$(parse "${TESTDIR}"/"${1}")
 | |
| json_output "${tests_list}"
 |