code-intelligence.com/cifuzz@v0.40.0/third-party/update.sh (about)

     1  #!/bin/bash
     2  
     3  set -euo pipefail
     4  set -x
     5  
     6  SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
     7  
     8  print_usage() {
     9    cat <<EOF
    10  usage: $0 REPO REFERENCE
    11  
    12  Update the vendored version of the specified repo to the specified
    13  git reference.
    14  
    15  Options:
    16  -h, --help
    17      Print usage message.
    18  EOF
    19  }
    20  
    21  # Parse arguments
    22  POSITIONAL=()
    23  while [ "$#" -gt 0 ]; do
    24    case "$1" in
    25      -h | --help)
    26        print_usage
    27        exit 0
    28        ;;
    29      -*) # unknown option
    30        echo >&2 "unknown option: $1"
    31        print_usage
    32        exit 1
    33        ;;
    34      *)                   # positional
    35        POSITIONAL+=("$1") # save it in an array for later
    36        shift              # past argument
    37        ;;
    38    esac
    39  done
    40  set -- "${POSITIONAL[@]}" # restore positional parameters
    41  
    42  if [ "$#" -lt 2 ]; then
    43    print_usage
    44    exit 1
    45  fi
    46  
    47  REPO="$1"
    48  REF="$2"
    49  
    50  TARGET_DIR=$(basename "${REPO}")
    51  rm -rf "${SCRIPT_DIR:?}/${TARGET_DIR}"
    52  git clone --depth 1 --branch "${REF}" "${REPO}" ${TARGET_DIR}
    53  rm -rf "${TARGET_DIR}/.git"
    54  echo "${REF}" >"${TARGET_DIR}/ref"
    55  
    56  for patch in "${TARGET_DIR}"*.patch; do
    57    if [ -f "${patch}" ]; then
    58      patch --directory "${TARGET_DIR}" -p1 < "${patch}"
    59    fi
    60  done