merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
117
third_party/git/generate-cmdlist.sh
vendored
Executable file
117
third_party/git/generate-cmdlist.sh
vendored
Executable file
|
|
@ -0,0 +1,117 @@
|
|||
#!/bin/sh
|
||||
|
||||
die () {
|
||||
echo "$@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
command_list () {
|
||||
eval "grep -ve '^#' $exclude_programs" <"$1"
|
||||
}
|
||||
|
||||
get_categories () {
|
||||
tr ' ' '\n'|
|
||||
grep -v '^$' |
|
||||
sort |
|
||||
uniq
|
||||
}
|
||||
|
||||
category_list () {
|
||||
command_list "$1" |
|
||||
cut -c 40- |
|
||||
get_categories
|
||||
}
|
||||
|
||||
get_synopsis () {
|
||||
sed -n '
|
||||
/^NAME/,/'"$1"'/H
|
||||
${
|
||||
x
|
||||
s/.*'"$1"' - \(.*\)/N_("\1")/
|
||||
p
|
||||
}' "Documentation/$1.txt"
|
||||
}
|
||||
|
||||
define_categories () {
|
||||
echo
|
||||
echo "/* Command categories */"
|
||||
bit=0
|
||||
category_list "$1" |
|
||||
while read cat
|
||||
do
|
||||
echo "#define CAT_$cat (1UL << $bit)"
|
||||
bit=$(($bit+1))
|
||||
done
|
||||
test "$bit" -gt 32 && die "Urgh.. too many categories?"
|
||||
}
|
||||
|
||||
define_category_names () {
|
||||
echo
|
||||
echo "/* Category names */"
|
||||
echo "static const char *category_names[] = {"
|
||||
bit=0
|
||||
category_list "$1" |
|
||||
while read cat
|
||||
do
|
||||
echo " \"$cat\", /* (1UL << $bit) */"
|
||||
bit=$(($bit+1))
|
||||
done
|
||||
echo " NULL"
|
||||
echo "};"
|
||||
}
|
||||
|
||||
print_command_list () {
|
||||
echo "static struct cmdname_help command_list[] = {"
|
||||
|
||||
command_list "$1" |
|
||||
while read cmd rest
|
||||
do
|
||||
printf " { \"$cmd\", $(get_synopsis $cmd), 0"
|
||||
for cat in $(echo "$rest" | get_categories)
|
||||
do
|
||||
printf " | CAT_$cat"
|
||||
done
|
||||
echo " },"
|
||||
done
|
||||
echo "};"
|
||||
}
|
||||
|
||||
print_config_list () {
|
||||
cat <<EOF
|
||||
static const char *config_name_list[] = {
|
||||
EOF
|
||||
grep -h '^[a-zA-Z].*\..*::$' Documentation/*config.txt Documentation/config/*.txt |
|
||||
sed '/deprecated/d; s/::$//; s/, */\n/g' |
|
||||
sort |
|
||||
while read line
|
||||
do
|
||||
echo " \"$line\","
|
||||
done
|
||||
cat <<EOF
|
||||
NULL,
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
exclude_programs=
|
||||
while test "--exclude-program" = "$1"
|
||||
do
|
||||
shift
|
||||
exclude_programs="$exclude_programs -e \"^$1 \""
|
||||
shift
|
||||
done
|
||||
|
||||
echo "/* Automatically generated by generate-cmdlist.sh */
|
||||
struct cmdname_help {
|
||||
const char *name;
|
||||
const char *help;
|
||||
uint32_t category;
|
||||
};
|
||||
"
|
||||
define_categories "$1"
|
||||
echo
|
||||
define_category_names "$1"
|
||||
echo
|
||||
print_command_list "$1"
|
||||
echo
|
||||
print_config_list
|
||||
Loading…
Add table
Add a link
Reference in a new issue