summaryrefslogtreecommitdiff
path: root/build-aux/couchdb-build-release.sh
blob: dfd529d13e8354c61f20f0d6bfc8b9a51ee0b703 (plain)
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
#!/bin/sh -e

VERSION=$1

if [ -z "${VERSION}" ]; then
  echo "NO VERSION"
  exit 1
fi

echo "Building Apache CouchDB ${VERSION}"

REL_DIR=apache-couchdb-${VERSION}
# make release dir
rm -rf ${REL_DIR}
mkdir ${REL_DIR}

CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD`

# copy sources over
git archive ${CURRENT_BRANCH} | tar -xC ${REL_DIR}/ -f -
cd src/
for repo in *; do
  cd ${repo}
  if [ -d ".git" ]; then
    mkdir -p ../../${REL_DIR}/src/${repo}
    git_ish=`git rev-parse --short HEAD`
    git archive ${git_ish} \
        | tar --exclude '*do_not_compile.erl' -xC ../../${REL_DIR}/src/${repo}/ -f -
  fi
  set +e
  grep -rl '{vsn, git}' ../../${REL_DIR}/src/${repo}/ 2>/dev/null \
      | xargs sed -ie "s/{vsn, git}/{vsn, \"${VERSION}\"}/" 2>/dev/null
  set -e
  cd ..
done

cd ..

if test -e .git; then
  # save git sha in version.mk
  git_sha=`git rev-parse --short HEAD`
  echo "git_sha=${git_sha}" >> ${REL_DIR}/version.mk
  # create CONTRIBUTORS file
  OS=`uname -s`

  sed -e "/^#.*/d" CONTRIBUTORS.in > ${REL_DIR}/CONTRIBUTORS
  CONTRIB_EMAIL_SED_COMMAND="s/^[[:blank:]]{5}[[:digit:]]+[[:blank:]]/ * /"
  git shortlog -se 6c976bd..HEAD \
      | grep -v @apache.org \
      | sed -E -e "${CONTRIB_EMAIL_SED_COMMAND}" >> ${REL_DIR}/CONTRIBUTORS
  echo "" >> ${REL_DIR}/CONTRIBUTORS # simplest portable newline
  echo "For a list of authors see the \`AUTHORS\` file." >> ${REL_DIR}/CONTRIBUTORS
fi

# copy our rebar
cp bin/rebar ${REL_DIR}/bin/rebar