aboutsummaryrefslogtreecommitdiff
path: root/Documentation/cmd-list.perl
blob: 5680dcbf9ab7a9f05a2cf9725942b266fa7586d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#

sub format_one {
	my ($out, $name) = @_;
	my ($state, $description);
	open I, '<', "$name.txt" or die "No such file $name.txt";
	while (<I>) {
		if (/^NAME$/) {
			$state = 1;
			next;
		}
		if ($state == 1 && /^----$/) {
			$state = 2;
			next;
		}
		next if ($state != 2);
		chomp;
		$description = $_;
		last;
	}
	close I;
	if (!defined $description) {
		die "No description found in $name.txt";
	}
	if (my ($verify_name, $text) = ($description =~ /^($name) - (.*)/)) {
		print $out "gitlink:$name\[1\]::\n";
		print $out "\t$text.\n\n";
	}
	else {
		die "Description does not match $name: $description";
	}
}

my %cmds = ();
while (<DATA>) {
	next if /^#/;

	chomp;
	my ($name, $cat) = /^(\S+)\s+(.*)$/;
	push @{$cmds{$cat}}, $name;
}

for my $cat (qw(ancillaryinterrogators
		ancillarymanipulators
		mainporcelain
		plumbinginterrogators
		plumbingmanipulators
		synchingrepositories)) {
	my $out = "cmds-$cat.txt";
	open O, '>', "$out+" or die "Cannot open output file $out+";
	for (@{$cmds{$cat}}) {
		format_one(\*O, $_);
	}
	close O;
	rename "$out+", "$out";
}

__DATA__
git-add                                 mainporcelain
git-am                                  mainporcelain
git-annotate                            ancillaryinterrogators
git-applymbox                           mainporcelain
git-applypatch                          ancillarymanipulators
git-apply                               plumbingmanipulators
git-archimport                          ancillarymanipulators
git-archive                             mainporcelain
git-bisect                              mainporcelain
git-blame                               ancillaryinterrogators
git-branch                              mainporcelain
git-cat-file                            plumbinginterrogators
git-checkout-index                      plumbingmanipulators
git-checkout                            mainporcelain
git-check-ref-format                    ancillaryinterrogators
git-cherry                              ancillaryinterrogators
git-cherry-pick                         mainporcelain
git-clean                               mainporcelain
git-clone                               mainporcelain
git-commit                              mainporcelain
git-commit-tree                         plumbingmanipulators
git-convert-objects                     ancillarymanipulators
git-count-objects                       ancillaryinterrogators
git-cvsexportcommit                     ancillarymanipulators
git-cvsimport                           ancillarymanipulators
git-cvsserver                           ancillarymanipulators
git-daemon                              ancillaryinterrogators
git-describe                            plumbinginterrogators
git-diff-files                          plumbinginterrogators
git-diff-index                          plumbinginterrogators
git-diff                                mainporcelain
git-diff-stages                         plumbinginterrogators
git-diff-tree                           plumbinginterrogators
git-fetch                               mainporcelain
git-fetch-pack                          synchingrepositories
git-fmt-merge-msg                       ancillaryinterrogators
git-for-each-ref                        plumbinginterrogators
git-format-patch                        mainporcelain
git-fsck-objects                        plumbinginterrogators
git-gc                                  ancillarymanipulators
git-get-tar-commit-id                   ancillaryinterrogators
git-grep                                mainporcelain
git-hash-object                         plumbingmanipulators
git-http-fetch                          synchingrepositories
git-http-push                           synchingrepositories
git-imap-send                           ancillaryinterrogators
git-index-pack                          plumbingmanipulators
git-init                                plumbingmanipulators
git-instaweb                            ancillaryinterrogators
gitk                                    mainporcelain
git-local-fetch                         synchingrepositories
git-log                                 mainporcelain
git-lost-found                          ancillarymanipulators
git-ls-files                            plumbinginterrogators
git-ls-remote                           mainporcelain
git-ls-tree                             plumbinginterrogators
git-mailinfo                            ancillaryinterrogators
git-mailsplit                           ancillaryinterrogators
git-merge-base                          plumbinginterrogators
git-merge-file                          plumbingmanipulators
git-merge-index                         plumbingmanipulators
git-merge                               mainporcelain
git-merge-one-file                      ancillarymanipulators
git-merge-tree                          ancillaryinterrogators
git-mktag                               plumbingmanipulators
git-mktree                              plumbingmanipulators
git-mv                                  mainporcelain
git-name-rev                            plumbinginterrogators
git-pack-objects                        plumbingmanipulators
git-pack-redundant                      plumbinginterrogators
git-pack-refs                           mainporcelain
git-parse-remote                        ancillaryinterrogators
git-patch-id                            ancillaryinterrogators
git-peek-remote                         synchingrepositories
git-prune                               ancillarymanipulators
git-prune-packed                        plumbingmanipulators
git-pull                                mainporcelain
git-push                                mainporcelain
git-quiltimport                         ancillarymanipulators
git-read-tree                           plumbingmanipulators
git-rebase                              mainporcelain
git-receive-pack                        synchingrepositories
git-reflog                              ancillarymanipulators
git-relink                              ancillarymanipulators
git-repack                              mainporcelain
git-repo-config                         plumbingmanipulators
git-request-pull                        ancillaryinterrogators
git-rerere                              mainporcelain
git-reset                               mainporcelain
git-resolve                             mainporcelain
git-revert                              mainporcelain
git-rev-list                            plumbinginterrogators
git-rev-parse                           ancillaryinterrogators
git-rm                                  mainporcelain
git-runstatus                           ancillaryinterrogators
git-send-email                          ancillaryinterrogators
git-send-pack                           synchingrepositories
git-shell                               synchingrepositories
git-shortlog                            mainporcelain
git-show                                mainporcelain
git-show-branch                         mainporcelain
git-show-index                          plumbinginterrogators
git-show-ref                            plumbinginterrogators
git-sh-setup                            ancillarymanipulators
git-ssh-fetch                           synchingrepositories
git-ssh-upload                          synchingrepositories
git-status                              mainporcelain
git-stripspace                          ancillaryinterrogators
git-svn                                 ancillarymanipulators
git-svnimport                           ancillarymanipulators
git-symbolic-ref                        ancillaryinterrogators
git-symbolic-ref                        ancillarymanipulators
git-tag                                 ancillarymanipulators
git-tar-tree                            plumbinginterrogators
git-unpack-file                         plumbinginterrogators
git-unpack-objects                      plumbingmanipulators
git-update-index                        plumbingmanipulators
git-update-ref                          ancillarymanipulators
git-update-server-info                  synchingrepositories
git-upload-archive                      synchingrepositories
git-upload-pack                         synchingrepositories
git-var                                 plumbinginterrogators
git-verify-pack                         plumbinginterrogators
git-verify-tag                          mainporcelain
git-whatchanged                         mainporcelain
git-write-tree                          plumbingmanipulators