Mercurial > dovecot > core-2.2
view update-version.sh @ 19688:0869e8023eab
lib: Fixed json-parser to correctly parse numbers at EOF.
Numbers are a bit special compared to others, because they don't have any
clear character indicating that the number ends. So we can only assume that
the number is finished when EOF is reached, although even that isn't
necessarily correct in case the stream is terminated unexpectedly.
This change is in prepartion for the next change. With current JSON parser
this issue could never happen because "}" was expected just before EOF.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 01 Feb 2016 17:30:23 +0200 |
parents | 76aa68b2b265 |
children | f4076be3efe9 |
line wrap: on
line source
#!/bin/sh SRCDIR="${1:-`pwd`}" BUILDDIR="${2:-`pwd`}" VERSION_H="dovecot-version.h" VERSION_HT="dovecot-version.h.tmp" abspath() { #$1 the path #$2 1 -> SRCDIR || 2 -> BUILDDIR old=`pwd` cd "${1}" if [ ${2} -eq 1 ]; then SRCDIR=`pwd` else BUILDDIR=`pwd` fi cd "$old" } abspath "${SRCDIR}" 1 abspath "${BUILDDIR}" 2 # when using a different BUILDDIR just copy from SRCDIR, if there is no .git if [ "${BUILDDIR}" != "${SRCDIR}" ]; then if [ ! -d "${SRCDIR}/.git" ] && [ -f "${SRCDIR}/${VERSION_H}" ]; then cmp -s "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}" if [ $? -ne 0 ]; then cp "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}" exit 0 fi fi fi # Don't generate dovecot-version.h if the source tree has no .git dir but # a dovecot-version.h. This may be the result of a release/nightly tarball. [ ! -d "${SRCDIR}/.git" ] && [ -f "${BUILDDIR}/${VERSION_H}" ] && exit 0 # Lets generate the dovecot-version.h [ -f "${BUILDDIR}/${VERSION_HT}" ] && rm -f "${BUILDDIR}/${VERSION_HT}" if true; then GITID=`git --git-dir ${SRCDIR}/.git rev-parse --short HEAD` cat > "${BUILDDIR}/${VERSION_HT}" <<EOF #ifndef DOVECOT_VERSION_H #define DOVECOT_VERSION_H #define DOVECOT_VERSION_FULL VERSION" (${GITID})" #endif /* DOVECOT_VERSION_H */ EOF else cat > "${BUILDDIR}/${VERSION_HT}" <<EOF #ifndef DOVECOT_VERSION_H #define DOVECOT_VERSION_H #define DOVECOT_VERSION_FULL VERSION #endif /* DOVECOT_VERSION_H */ EOF fi cmp -s "${BUILDDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_HT}" && \ rm -f "${BUILDDIR}/${VERSION_HT}" || \ mv -f "${BUILDDIR}/${VERSION_HT}" "${BUILDDIR}/${VERSION_H}"