51 lines
		
	
	
		
			929 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			51 lines
		
	
	
		
			929 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| 
 | |
| echo "/* Automatically generated by $0 */
 | |
| struct cmdname_help {
 | |
| 	char name[16];
 | |
| 	char help[80];
 | |
| 	unsigned char group;
 | |
| };
 | |
| 
 | |
| static const char *common_cmd_groups[] = {"
 | |
| 
 | |
| grps=grps$$.tmp
 | |
| match=match$$.tmp
 | |
| trap "rm -f '$grps' '$match'" 0 1 2 3 15
 | |
| 
 | |
| sed -n '
 | |
| 	1,/^### common groups/b
 | |
| 	/^### command list/q
 | |
| 	/^#/b
 | |
| 	/^[ 	]*$/b
 | |
| 	h;s/^[^ 	][^ 	]*[ 	][ 	]*\(.*\)/	N_("\1"),/p
 | |
| 	g;s/^\([^ 	][^ 	]*\)[ 	].*/\1/w '$grps'
 | |
| 	' "$1"
 | |
| printf '};\n\n'
 | |
| 
 | |
| n=0
 | |
| substnum=
 | |
| while read grp
 | |
| do
 | |
| 	echo "^git-..*[ 	]$grp"
 | |
| 	substnum="$substnum${substnum:+;}s/[ 	]$grp/$n/"
 | |
| 	n=$(($n+1))
 | |
| done <"$grps" >"$match"
 | |
| 
 | |
| printf 'static struct cmdname_help common_cmds[] = {\n'
 | |
| grep -f "$match" "$1" |
 | |
| sed 's/^git-//' |
 | |
| sort |
 | |
| while read cmd tags
 | |
| do
 | |
| 	tag=$(echo "$tags" | sed "$substnum; s/[^0-9]//g")
 | |
| 	sed -n '
 | |
| 		/^NAME/,/git-'"$cmd"'/H
 | |
| 		${
 | |
| 			x
 | |
| 			s/.*git-'"$cmd"' - \(.*\)/	{"'"$cmd"'", N_("\1"), '$tag'},/
 | |
| 			p
 | |
| 		}' "Documentation/git-$cmd.txt"
 | |
| done
 | |
| echo "};"
 |