github.com/judwhite/consul@v1.4.4-0.20190315202039-6ef970a191d3/build-support/scripts/verify.sh (about)

     1  #!/bin/bash
     2  SCRIPT_NAME="$(basename ${BASH_SOURCE[0]})"
     3  pushd $(dirname ${BASH_SOURCE[0]}) > /dev/null
     4  SCRIPT_DIR=$(pwd)
     5  pushd ../.. > /dev/null
     6  SOURCE_DIR=$(pwd)
     7  popd > /dev/null
     8  pushd ../functions > /dev/null
     9  FN_DIR=$(pwd)
    10  popd > /dev/null
    11  popd > /dev/null
    12  
    13  source "${SCRIPT_DIR}/functions.sh"
    14  
    15  function usage {
    16  cat <<-EOF
    17  Usage: ${SCRIPT_NAME}  [<options ...>]
    18  
    19  Description:
    20  
    21     This script will verify a Consul release build. It will check for prebuilt
    22     files, verify shasums and gpg signatures as well as run some commands
    23     and prompt for manual verification where required.
    24  
    25  Options:                       
    26     -s | --source     DIR         Path to source to build.
    27                                   Defaults to "${SOURCE_DIR}"
    28     
    29     -h | --help                   Print this help text.
    30  EOF
    31  }
    32  
    33  function err_usage {
    34     err "$1"
    35     err ""
    36     err "$(usage)"
    37  }
    38  
    39  function main {
    40     declare    sdir="${SOURCE_DIR}" 
    41     declare    vers=""
    42     
    43     while test $# -gt 0
    44     do
    45        case "$1" in
    46           -h | --help )
    47              usage
    48              return 0
    49              ;;
    50           -s | --source )
    51              if test -z "$2"
    52              then
    53                 err_usage "ERROR: option -s/--source requires an argument"
    54                 return 1
    55              fi
    56              
    57              if ! test -d "$2"
    58              then
    59                 err_usage "ERROR: '$2' is not a directory and not suitable for the value of -s/--source"
    60                 return 1
    61              fi
    62              
    63              sdir="$2"
    64              shift 2
    65              ;;
    66           -v | --version )
    67              if test -z "$2"
    68              then
    69                 err_usage "ERROR: option -v/--version requires an argument"
    70                 return 1
    71              fi
    72              
    73              vers="$2"
    74              shift 2
    75              ;;
    76           *)
    77              err_usage "ERROR: Unknown argument: '$1'"
    78              return 1
    79              ;;
    80        esac
    81     done
    82     
    83     if test -z "${vers}"
    84     then
    85        vers=$(parse_version "${sdir}" true false)
    86     fi
    87     
    88     status_stage "=> Starting release verification for version: ${version}"
    89     verify_release_build "${sdir}" "${vers}" || return 1
    90     
    91     return 0
    92  }
    93  
    94  main "$@"
    95  exit $?
    96