forked from hyperledger/fabric
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelp_docs.sh
executable file
·151 lines (126 loc) · 4.98 KB
/
help_docs.sh
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
#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
PATH=build/bin/:${PATH}
# Takes in 4 arguments
# 1. Output doc file
# 2. Preamble Text File
# 3. Postscript File
# 4. Array of commands
generateHelpText() {
local DOC="$1"
local preamble="$2"
local postscript="$3"
# Shift three times to get to array
shift
shift
shift
cat <<EOF > "$DOC"
<!---
File generated by $(basename "$0"). DO NOT EDIT.
Please make changes to preamble and postscript wrappers as appropriate.
--->
EOF
cat "$preamble" >> "$DOC"
local code_delim='```'
local commands=("$@")
for x in "${commands[@]}" ; do
cat <<EOD >> "$DOC"
## $x
$code_delim
$($x --help 2>&1 | sed -E 's/[[:space:]]+$//g')
$code_delim
EOD
done
cat "$postscript" >> "$DOC"
}
checkHelpTextCurrent() {
local doc="$1"
shift
local tempfile
tempfile="$(mktemp -t "$(basename "$1")".XXXXX)" || exit 1
generateHelpText "$tempfile" "$@"
if ! diff -u "$doc" "$tempfile"; then
echo "The command line help docs are out of date and need to be regenerated"
exit 2
fi
rm "$tempfile"
}
generateOrCheck() {
if [ "$action" == "generate" ]; then
generateHelpText "$@"
else
checkHelpTextCurrent "$@"
fi
}
action="${1:-generate}"
commands=("peer version")
generateOrCheck \
docs/source/commands/peerversion.md \
docs/wrappers/peer_version_preamble.md \
docs/wrappers/license_postscript.md \
"${commands[@]}"
commands=("peer chaincode install" "peer chaincode instantiate" "peer chaincode invoke" "peer chaincode list" "peer chaincode package" "peer chaincode query" "peer chaincode signpackage" "peer chaincode upgrade")
generateOrCheck \
docs/source/commands/peerchaincode.md \
docs/wrappers/peer_chaincode_preamble.md \
docs/wrappers/peer_chaincode_postscript.md \
"${commands[@]}"
commands=("peer lifecycle" "peer lifecycle chaincode" "peer lifecycle chaincode package" "peer lifecycle chaincode install" "peer lifecycle chaincode queryinstalled" "peer lifecycle chaincode getinstalledpackage" "peer lifecycle chaincode calculatepackageid" "peer lifecycle chaincode approveformyorg" "peer lifecycle chaincode queryapproved" "peer lifecycle chaincode checkcommitreadiness" "peer lifecycle chaincode commit" "peer lifecycle chaincode querycommitted")
generateOrCheck \
docs/source/commands/peerlifecycle.md \
docs/wrappers/peer_lifecycle_chaincode_preamble.md \
docs/wrappers/peer_lifecycle_chaincode_postscript.md \
"${commands[@]}"
commands=("peer channel" "peer channel create" "peer channel fetch" "peer channel getinfo" "peer channel join" "peer channel joinbysnapshot" "peer channel joinbysnapshotstatus" "peer channel list" "peer channel signconfigtx" "peer channel update")
generateOrCheck \
docs/source/commands/peerchannel.md \
docs/wrappers/peer_channel_preamble.md \
docs/wrappers/peer_channel_postscript.md \
"${commands[@]}"
commands=("peer node pause" "peer node rebuild-dbs" "peer node reset" "peer node resume" "peer node rollback" "peer node start" "peer node unjoin" "peer node upgrade-dbs")
generateOrCheck \
docs/source/commands/peernode.md \
docs/wrappers/peer_node_preamble.md \
docs/wrappers/peer_node_postscript.md \
"${commands[@]}"
commands=("peer snapshot cancelrequest" "peer snapshot listpending" "peer snapshot submitrequest")
generateOrCheck \
docs/source/commands/peersnapshot.md \
docs/wrappers/peer_snapshot_preamble.md \
docs/wrappers/peer_snapshot_postscript.md \
"${commands[@]}"
commands=("configtxgen")
generateOrCheck \
docs/source/commands/configtxgen.md \
docs/wrappers/configtxgen_preamble.md \
docs/wrappers/configtxgen_postscript.md \
"${commands[@]}"
commands=("cryptogen help" "cryptogen generate" "cryptogen showtemplate" "cryptogen extend" "cryptogen version")
generateOrCheck \
docs/source/commands/cryptogen.md \
docs/wrappers/cryptogen_preamble.md \
docs/wrappers/cryptogen_postscript.md \
"${commands[@]}"
commands=("configtxlator start" "configtxlator proto_encode" "configtxlator proto_decode" "configtxlator compute_update" "configtxlator version")
generateOrCheck \
docs/source/commands/configtxlator.md \
docs/wrappers/configtxlator_preamble.md \
docs/wrappers/configtxlator_postscript.md \
"${commands[@]}"
commands=("osnadmin channel" "osnadmin channel join" "osnadmin channel list" "osnadmin channel remove")
generateOrCheck \
docs/source/commands/osnadminchannel.md \
docs/wrappers/osnadmin_channel_preamble.md \
docs/wrappers/osnadmin_channel_postscript.md \
"${commands[@]}"
commands=("ledgerutil compare" "ledgerutil identifytxs")
generateOrCheck \
docs/source/commands/ledgerutil.md \
docs/wrappers/ledgerutil_preamble.md \
docs/wrappers/ledgerutil_postscript.md \
"${commands[@]}"
exit