github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/scripts/help_docs.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright hechain. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  PATH=build/bin/:${PATH}
     8  
     9  # Takes in 4 arguments
    10  # 1. Output doc file
    11  # 2. Preamble Text File
    12  # 3. Postscript File
    13  # 4. Array of commands
    14  generateHelpText() {
    15      local DOC="$1"
    16      local preamble="$2"
    17      local postscript="$3"
    18      # Shift three times to get to array
    19      shift
    20      shift
    21      shift
    22  
    23      cat <<EOF > "$DOC"
    24  <!---
    25   File generated by $(basename "$0"). DO NOT EDIT.
    26   Please make changes to preamble and postscript wrappers as appropriate.
    27   --->
    28  
    29  EOF
    30      cat "$preamble" >> "$DOC"
    31  
    32      local code_delim='```'
    33      local commands=("$@")
    34      for x in "${commands[@]}" ; do
    35        cat <<EOD >> "$DOC"
    36  
    37  ## $x
    38  $code_delim
    39  $($x --help 2>&1 | sed -E 's/[[:space:]]+$//g')
    40  $code_delim
    41  
    42  EOD
    43      done
    44  
    45      cat "$postscript" >> "$DOC"
    46  }
    47  
    48  checkHelpTextCurrent() {
    49    local doc="$1"
    50    shift
    51  
    52    local tempfile
    53    tempfile="$(mktemp -t "$(basename "$1")".XXXXX)" || exit 1
    54  
    55    generateHelpText "$tempfile" "$@"
    56    if ! diff -u "$doc" "$tempfile"; then
    57      echo "The command line help docs are out of date and need to be regenerated"
    58      exit 2
    59    fi
    60  
    61    rm "$tempfile"
    62  }
    63  
    64  generateOrCheck() {
    65    if [ "$action" == "generate" ]; then
    66      generateHelpText "$@"
    67    else
    68      checkHelpTextCurrent "$@"
    69    fi
    70  }
    71  
    72  action="${1:-generate}"
    73  
    74  commands=("peer version")
    75  generateOrCheck \
    76          docs/source/commands/peerversion.md \
    77          docs/wrappers/peer_version_preamble.md \
    78          docs/wrappers/license_postscript.md \
    79          "${commands[@]}"
    80  
    81  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")
    82  generateOrCheck \
    83          docs/source/commands/peerchaincode.md \
    84          docs/wrappers/peer_chaincode_preamble.md \
    85          docs/wrappers/peer_chaincode_postscript.md \
    86          "${commands[@]}"
    87  
    88  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")
    89  generateOrCheck \
    90          docs/source/commands/peerlifecycle.md \
    91          docs/wrappers/peer_lifecycle_chaincode_preamble.md \
    92          docs/wrappers/peer_lifecycle_chaincode_postscript.md \
    93          "${commands[@]}"
    94  
    95  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")
    96  generateOrCheck \
    97          docs/source/commands/peerchannel.md \
    98          docs/wrappers/peer_channel_preamble.md \
    99          docs/wrappers/peer_channel_postscript.md \
   100          "${commands[@]}"
   101  
   102  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")
   103  generateOrCheck \
   104          docs/source/commands/peernode.md \
   105          docs/wrappers/peer_node_preamble.md \
   106          docs/wrappers/peer_node_postscript.md \
   107          "${commands[@]}"
   108  
   109  commands=("peer snapshot cancelrequest" "peer snapshot listpending" "peer snapshot submitrequest")
   110  generateOrCheck \
   111          docs/source/commands/peersnapshot.md \
   112          docs/wrappers/peer_snapshot_preamble.md \
   113          docs/wrappers/peer_snapshot_postscript.md \
   114          "${commands[@]}"
   115  
   116  commands=("configtxgen")
   117  generateOrCheck \
   118          docs/source/commands/configtxgen.md \
   119          docs/wrappers/configtxgen_preamble.md \
   120          docs/wrappers/configtxgen_postscript.md \
   121          "${commands[@]}"
   122  
   123  commands=("cryptogen help" "cryptogen generate" "cryptogen showtemplate" "cryptogen extend" "cryptogen version")
   124  generateOrCheck \
   125          docs/source/commands/cryptogen.md \
   126          docs/wrappers/cryptogen_preamble.md \
   127          docs/wrappers/cryptogen_postscript.md \
   128          "${commands[@]}"
   129  
   130  commands=("configtxlator start" "configtxlator proto_encode" "configtxlator proto_decode" "configtxlator compute_update" "configtxlator version")
   131  generateOrCheck \
   132          docs/source/commands/configtxlator.md \
   133          docs/wrappers/configtxlator_preamble.md \
   134          docs/wrappers/configtxlator_postscript.md \
   135          "${commands[@]}"
   136  
   137  commands=("osnadmin channel" "osnadmin channel join" "osnadmin channel list" "osnadmin channel remove")
   138  generateOrCheck \
   139          docs/source/commands/osnadminchannel.md \
   140          docs/wrappers/osnadmin_channel_preamble.md \
   141          docs/wrappers/osnadmin_channel_postscript.md \
   142          "${commands[@]}"
   143  
   144  commands=("ledgerutil compare")
   145  generateOrCheck \
   146          docs/source/commands/ledgerutil.md \
   147          docs/wrappers/ledgerutil_preamble.md \
   148          docs/wrappers/ledgerutil_postscript.md \
   149          "${commands[@]}"
   150  
   151  exit