Blame view

buildroot/buildroot-2016.08.1/support/download/bzr 1.43 KB
6b13f685e   김민수   BSP 최초 추가
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
  #!/usr/bin/env bash
  
  # We want to catch any unexpected failure, and exit immediately
  set -e
  
  # Download helper for bzr, to be called from the download wrapper script
  #
  # Call it as:
  #   .../bzr [-q] OUT_FILE REPO_URL REV BASENAME
  #
  # Environment:
  #   BZR      : the bzr command to call
  
  
  verbose=
  while getopts :q OPT; do
      case "${OPT}" in
      q)  verbose=-q;;
      \?) printf "unknown option '%s'
  " "${OPTARG}" >&2; exit 1;;
      esac
  done
  shift $((OPTIND-1))
  
  output="${1}"
  repo="${2}"
  rev="${3}"
  basename="${4}"
  
  # Caller needs to single-quote its arguments to prevent them from
  # being expanded a second time (in case there are spaces in them)
  _bzr() {
      eval ${BZR} "${@}"
  }
  
  # --per-file-timestamps comes with bzr-2.2 (released August 2010),
  # so only pass it if bzr is recent enough. We compute versions as:
  # major*1000 + minor
  bzr_min_version=2002
  bzr_version=$(($(bzr --version |
                   sed -r -n 's/^Bazaar \(bzr\) ([[:digit:]]+)\.([[:digit:]]+)\..*$/\1*1000+\2/p')
               ))
  
  # If the version is recent enough, we can generate reproducible
  # archives; otherwise, we just hope for the best (as it would
  # be downloaded from the BR mirror if what we generate here does
  # not match the hash we have for it).
  if [ ${bzr_version} -ge ${bzr_min_version} ]; then
      timestamp_opt="--per-file-timestamps"
  fi
  
  _bzr export ${verbose} --root="'${basename}/'" --format=tgz \
      ${timestamp_opt} - "'${repo}'" -r "'${rev}'" \
      >"${output}"