forked from sheetjs/sheetjs
		
	- codepage updated to 1.6.0 (latest) - clean up Makefile - adapted .travis.yml to support 0.8 - removed test files that drifted from baseline - removed XLSB pseudo-inverse tests due to fails in node 4+
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # make_help.sh -- process listing of targets and special items in Makefile
 | |
| # Copyright (C) 2016-present  SheetJS
 | |
| #
 | |
| # usage in makefile: pipe the output of the following command:
 | |
| #     @grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST)
 | |
| #
 | |
| # lines starting with "## " are treated as subtitles
 | |
| # lines starting with "#* " are treated as plaintext comments
 | |
| # multiple targets with "## " after the ":" are rendered as separate targets
 | |
| # if the presumed default target is labeled, it will be assigned a unique color
 | |
| 
 | |
| awk '
 | |
| BEGIN{recipes=0;}
 | |
| 	!/#[#*] .*$/ {next;}
 | |
| 	{multi=0; isrecipe=0;}
 | |
| 	/^[^#]*:/ {isrecipe=1; ++recipes;}
 | |
| 	/^[^ :]* .*:/ {multi=1}
 | |
| 	multi==0 && isrecipe>0 { if(recipes > 1) print; else print $0, "[default]"; next}
 | |
| 	isrecipe == 0 {print; next}
 | |
| 	multi>0 {
 | |
| 		k=split($0, msg, "##"); m=split($0, a, ":"); n=split(a[1], b, " ");
 | |
| 		for(i=1; i<=n; ++i) print b[i] ":", "##" msg[2], (recipes==1 && i==1 ? "[default]" : "")
 | |
| 	}
 | |
| END {}
 | |
| ' | if [[ -t 1 ]]; then
 | |
| awk '
 | |
| BEGIN {FS = ":.*?## "}
 | |
| 	{color=36}
 | |
| 	/\[default\]/ {color=35}
 | |
| 	NF==1 && /^##/ {color=34}
 | |
| 	NF==1 && /^#\*/ {color=20; $1 = substr($1, 4)}
 | |
| 	{printf "\033[" color "m%-20s\033[0m %s\n", $1, $2;}
 | |
| END{}' -
 | |
| else
 | |
| awk '
 | |
| BEGIN {FS = ":.*?## "}
 | |
| 	/^#\* / {$1 = substr($1, 4)}
 | |
| 	{printf "%-20s %s\n", $1, $2;}
 | |
| END{}' -
 | |
| fi
 | |
| 
 |