Skip to content

Commit cf1d02f

Browse files
committed
builtin-list.h: generate the prototypes in builtin.h
TODO: Need to update MyFirstContribution.txt TODO: Make the "check-advice-docs" and check that this is sorted. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
1 parent 9e08092 commit cf1d02f

File tree

5 files changed

+41
-135
lines changed

5 files changed

+41
-135
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
/gitweb/static/gitweb.min.*
193193
/advice-config.h
194194
/advice-type.h
195+
/builtin-list.h
195196
/config-list.h
196197
/command-list.h
197198
/hook-list.h

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,7 @@ REFTABLE_TEST_LIB = reftable/libreftable_test.a
935935
GENERATED_ADVICE_H += advice-config.h
936936
GENERATED_ADVICE_H += advice-type.h
937937

938+
COMMON_GENERATED_H += builtin-list.h
938939
COMMON_GENERATED_H += $(GENERATED_ADVICE_H)
939940

940941
GENERATED_H += $(COMMON_GENERATED_H)
@@ -2380,6 +2381,10 @@ $(BUILT_INS): git$X
23802381
$(GENERATED_ADVICE_H): generate-advice.sh Documentation/config/advice.txt
23812382
$(QUIET_GEN)$(SHELL_PATH) ./generate-advice.sh $@ >$@
23822383

2384+
builtin-list.h: generate-builtin-list.sh
2385+
builtin-list.h: git.c
2386+
$(QUIET_GEN)$(SHELL_PATH) ./generate-builtin-list.sh $< >$@
2387+
23832388
config-list.h: generate-configlist.sh
23842389

23852390
config-list.h: Documentation/*config.txt Documentation/config/*.txt

builtin.h

Lines changed: 6 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define BUILTIN_H
33

44
#include "git-compat-util.h"
5+
#include "builtin-list.h"
56
#include "strbuf.h"
67
#include "cache.h"
78
#include "commit.h"
@@ -111,141 +112,11 @@ void setup_auto_pager(const char *cmd, int def);
111112

112113
int is_builtin(const char *s);
113114

114-
int cmd_add(int argc, const char **argv, const char *prefix);
115-
int cmd_am(int argc, const char **argv, const char *prefix);
116-
int cmd_annotate(int argc, const char **argv, const char *prefix);
117-
int cmd_apply(int argc, const char **argv, const char *prefix);
118-
int cmd_archive(int argc, const char **argv, const char *prefix);
119-
int cmd_bisect__helper(int argc, const char **argv, const char *prefix);
120-
int cmd_blame(int argc, const char **argv, const char *prefix);
121-
int cmd_branch(int argc, const char **argv, const char *prefix);
122-
int cmd_bugreport(int argc, const char **argv, const char *prefix);
123-
int cmd_bundle(int argc, const char **argv, const char *prefix);
124-
int cmd_cat_file(int argc, const char **argv, const char *prefix);
125-
int cmd_checkout(int argc, const char **argv, const char *prefix);
126-
int cmd_checkout__worker(int argc, const char **argv, const char *prefix);
127-
int cmd_checkout_index(int argc, const char **argv, const char *prefix);
128-
int cmd_check_attr(int argc, const char **argv, const char *prefix);
129-
int cmd_check_ignore(int argc, const char **argv, const char *prefix);
130-
int cmd_check_mailmap(int argc, const char **argv, const char *prefix);
131-
int cmd_check_ref_format(int argc, const char **argv, const char *prefix);
132-
int cmd_cherry(int argc, const char **argv, const char *prefix);
133-
int cmd_cherry_pick(int argc, const char **argv, const char *prefix);
134-
int cmd_clone(int argc, const char **argv, const char *prefix);
135-
int cmd_clean(int argc, const char **argv, const char *prefix);
136-
int cmd_column(int argc, const char **argv, const char *prefix);
137-
int cmd_commit(int argc, const char **argv, const char *prefix);
138-
int cmd_commit_graph(int argc, const char **argv, const char *prefix);
139-
int cmd_commit_tree(int argc, const char **argv, const char *prefix);
140-
int cmd_config(int argc, const char **argv, const char *prefix);
141-
int cmd_count_objects(int argc, const char **argv, const char *prefix);
142-
int cmd_credential(int argc, const char **argv, const char *prefix);
143-
int cmd_credential_cache(int argc, const char **argv, const char *prefix);
144-
int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix);
145-
int cmd_credential_store(int argc, const char **argv, const char *prefix);
146-
int cmd_describe(int argc, const char **argv, const char *prefix);
147-
int cmd_diagnose(int argc, const char **argv, const char *prefix);
148-
int cmd_diff_files(int argc, const char **argv, const char *prefix);
149-
int cmd_diff_index(int argc, const char **argv, const char *prefix);
150-
int cmd_diff(int argc, const char **argv, const char *prefix);
151-
int cmd_diff_tree(int argc, const char **argv, const char *prefix);
152-
int cmd_difftool(int argc, const char **argv, const char *prefix);
153-
int cmd_env__helper(int argc, const char **argv, const char *prefix);
154-
int cmd_fast_export(int argc, const char **argv, const char *prefix);
155-
int cmd_fast_import(int argc, const char **argv, const char *prefix);
156-
int cmd_fetch(int argc, const char **argv, const char *prefix);
157-
int cmd_fetch_pack(int argc, const char **argv, const char *prefix);
158-
int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
159-
int cmd_for_each_ref(int argc, const char **argv, const char *prefix);
160-
int cmd_for_each_repo(int argc, const char **argv, const char *prefix);
161-
int cmd_format_patch(int argc, const char **argv, const char *prefix);
162-
int cmd_fsck(int argc, const char **argv, const char *prefix);
163-
int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix);
164-
int cmd_gc(int argc, const char **argv, const char *prefix);
165-
int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
166-
int cmd_grep(int argc, const char **argv, const char *prefix);
167-
int cmd_hash_object(int argc, const char **argv, const char *prefix);
168-
int cmd_help(int argc, const char **argv, const char *prefix);
169-
int cmd_hook(int argc, const char **argv, const char *prefix);
170-
int cmd_index_pack(int argc, const char **argv, const char *prefix);
171-
int cmd_init_db(int argc, const char **argv, const char *prefix);
172-
int cmd_interpret_trailers(int argc, const char **argv, const char *prefix);
173-
int cmd_log(int argc, const char **argv, const char *prefix);
115+
/**
116+
* builtin-like functions used between different builtin/ *.c files,
117+
* but not a "real" builtin in the "static struct cmd_struct commands"
118+
* list in git.c
119+
*/
174120
int cmd_log_reflog(int argc, const char **argv, const char *prefix);
175-
int cmd_ls_files(int argc, const char **argv, const char *prefix);
176-
int cmd_ls_tree(int argc, const char **argv, const char *prefix);
177-
int cmd_ls_remote(int argc, const char **argv, const char *prefix);
178-
int cmd_mailinfo(int argc, const char **argv, const char *prefix);
179-
int cmd_mailsplit(int argc, const char **argv, const char *prefix);
180-
int cmd_maintenance(int argc, const char **argv, const char *prefix);
181-
int cmd_merge(int argc, const char **argv, const char *prefix);
182-
int cmd_merge_base(int argc, const char **argv, const char *prefix);
183-
int cmd_merge_index(int argc, const char **argv, const char *prefix);
184-
int cmd_merge_ours(int argc, const char **argv, const char *prefix);
185-
int cmd_merge_file(int argc, const char **argv, const char *prefix);
186-
int cmd_merge_recursive(int argc, const char **argv, const char *prefix);
187-
int cmd_merge_tree(int argc, const char **argv, const char *prefix);
188-
int cmd_mktag(int argc, const char **argv, const char *prefix);
189-
int cmd_mktree(int argc, const char **argv, const char *prefix);
190-
int cmd_multi_pack_index(int argc, const char **argv, const char *prefix);
191-
int cmd_mv(int argc, const char **argv, const char *prefix);
192-
int cmd_name_rev(int argc, const char **argv, const char *prefix);
193-
int cmd_notes(int argc, const char **argv, const char *prefix);
194-
int cmd_pack_objects(int argc, const char **argv, const char *prefix);
195-
int cmd_pack_redundant(int argc, const char **argv, const char *prefix);
196-
int cmd_patch_id(int argc, const char **argv, const char *prefix);
197-
int cmd_prune(int argc, const char **argv, const char *prefix);
198-
int cmd_prune_packed(int argc, const char **argv, const char *prefix);
199-
int cmd_pull(int argc, const char **argv, const char *prefix);
200-
int cmd_push(int argc, const char **argv, const char *prefix);
201-
int cmd_range_diff(int argc, const char **argv, const char *prefix);
202-
int cmd_read_tree(int argc, const char **argv, const char *prefix);
203-
int cmd_rebase(int argc, const char **argv, const char *prefix);
204-
int cmd_rebase__interactive(int argc, const char **argv, const char *prefix);
205-
int cmd_receive_pack(int argc, const char **argv, const char *prefix);
206-
int cmd_reflog(int argc, const char **argv, const char *prefix);
207-
int cmd_remote(int argc, const char **argv, const char *prefix);
208-
int cmd_remote_ext(int argc, const char **argv, const char *prefix);
209-
int cmd_remote_fd(int argc, const char **argv, const char *prefix);
210-
int cmd_repack(int argc, const char **argv, const char *prefix);
211-
int cmd_rerere(int argc, const char **argv, const char *prefix);
212-
int cmd_reset(int argc, const char **argv, const char *prefix);
213-
int cmd_restore(int argc, const char **argv, const char *prefix);
214-
int cmd_rev_list(int argc, const char **argv, const char *prefix);
215-
int cmd_rev_parse(int argc, const char **argv, const char *prefix);
216-
int cmd_revert(int argc, const char **argv, const char *prefix);
217-
int cmd_rm(int argc, const char **argv, const char *prefix);
218-
int cmd_send_pack(int argc, const char **argv, const char *prefix);
219-
int cmd_shortlog(int argc, const char **argv, const char *prefix);
220-
int cmd_show(int argc, const char **argv, const char *prefix);
221-
int cmd_show_branch(int argc, const char **argv, const char *prefix);
222-
int cmd_show_index(int argc, const char **argv, const char *prefix);
223-
int cmd_sparse_checkout(int argc, const char **argv, const char *prefix);
224-
int cmd_status(int argc, const char **argv, const char *prefix);
225-
int cmd_stash(int argc, const char **argv, const char *prefix);
226-
int cmd_stripspace(int argc, const char **argv, const char *prefix);
227-
int cmd_submodule__helper(int argc, const char **argv, const char *prefix);
228-
int cmd_switch(int argc, const char **argv, const char *prefix);
229-
int cmd_symbolic_ref(int argc, const char **argv, const char *prefix);
230-
int cmd_tag(int argc, const char **argv, const char *prefix);
231-
int cmd_unpack_file(int argc, const char **argv, const char *prefix);
232-
int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
233-
int cmd_update_index(int argc, const char **argv, const char *prefix);
234-
int cmd_update_ref(int argc, const char **argv, const char *prefix);
235-
int cmd_update_server_info(int argc, const char **argv, const char *prefix);
236-
int cmd_upload_archive(int argc, const char **argv, const char *prefix);
237-
int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix);
238-
int cmd_upload_pack(int argc, const char **argv, const char *prefix);
239-
int cmd_var(int argc, const char **argv, const char *prefix);
240-
int cmd_verify_commit(int argc, const char **argv, const char *prefix);
241-
int cmd_verify_tag(int argc, const char **argv, const char *prefix);
242-
int cmd_version(int argc, const char **argv, const char *prefix);
243-
int cmd_whatchanged(int argc, const char **argv, const char *prefix);
244-
int cmd_worktree(int argc, const char **argv, const char *prefix);
245-
int cmd_write_tree(int argc, const char **argv, const char *prefix);
246-
int cmd_verify_pack(int argc, const char **argv, const char *prefix);
247-
int cmd_show_ref(int argc, const char **argv, const char *prefix);
248-
int cmd_pack_refs(int argc, const char **argv, const char *prefix);
249-
int cmd_replace(int argc, const char **argv, const char *prefix);
250121

251122
#endif

contrib/buildsystems/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,13 @@ if(NOT EXISTS ${CMAKE_BINARY_DIR}/advice-config.h)
685685
OUTPUT_FILE ${CMAKE_BINARY_DIR}/advice-config.h)
686686
endif()
687687

688+
if(NOT EXISTS ${CMAKE_BINARY_DIR}/builtin-list.h)
689+
message("Generating builtin-list.h")
690+
execute_process(COMMAND ${SH_EXE} ${CMAKE_SOURCE_DIR}/generate-builtin-list.sh git.c
691+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
692+
OUTPUT_FILE ${CMAKE_BINARY_DIR}/builtin-list.h)
693+
endif()
694+
688695
include_directories(${CMAKE_BINARY_DIR})
689696

690697
#build

generate-builtin-list.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
#
3+
# Usage: ./generate-builtin-list.sh git.c >builtin-list.h
4+
5+
builtin_cmd_list () {
6+
sed -n \
7+
-e '/^ { ".*cmd_/ {
8+
s/.* \(cmd_[^, ]*\).*/\1/;
9+
p;
10+
} ' \
11+
<"$1"
12+
}
13+
14+
builtin_list () {
15+
printf "int %s(int argc, const char **argv, const char *prefix);\n" $(builtin_cmd_list "$1")
16+
}
17+
18+
cat <<EOF
19+
/* Automatically generated by generate-builtin-list.sh */
20+
21+
$(builtin_list "$1")
22+
EOF

0 commit comments

Comments
 (0)