You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #!/bin/bash
-
- #set -x
-
- if test $# -ne 1 -a $# -ne 2
- then
- echo "Usage: "`basename "$0"`" <file> [define_name]"
- exit 1
- fi
-
- OUTPUT_FILE="`pwd`/${1}"
- TEMP_FILE="${OUTPUT_FILE}.tmp"
-
- #echo svnversion...
- #pwd
- #echo "$OUTPUT_FILE"
- #echo "$TEMP_FILE"
-
- # The script should reside in the toplevel source directory which sould contain
- # all version control files.
- cd `dirname ${0}`
-
- if test $# -eq 2
- then
- DEFINE=${2}
- else
- DEFINE=SVN_VERSION
- fi
-
- if test -d .svn
- then
- REV=`svnversion 2> /dev/null`
- else
- if test -d .git
- then
- git status >/dev/null # updates dirty state
- REV=`git show | grep '^ *git-svn-id:' | sed 's/.*@\([0-9]*\) .*/\1/'`
- if test ${REV}
- then
- test -z "$(git diff-index --name-only HEAD)" || REV="${REV}M"
- else
- REV=0+`git rev-parse HEAD`
- test -z "$(git diff-index --name-only HEAD)" || REV="${REV}-dirty"
- fi
- fi
- fi
-
- if test -z ${REV}
- then
- REV="unknown"
- fi
-
- echo "#define ${DEFINE} \"${REV}\"" > "${TEMP_FILE}"
- if test ! -f "${OUTPUT_FILE}"
- then
- echo "Generated ${OUTPUT_FILE} (${REV})"
- cp "${TEMP_FILE}" "${OUTPUT_FILE}"
- if test $? -ne 0; then exit 1; fi
- else
- if ! cmp -s "${OUTPUT_FILE}" "${TEMP_FILE}"
- then echo "Regenerated ${OUTPUT_FILE} (${REV})"
- cp "${TEMP_FILE}" "${OUTPUT_FILE}"
- if test $? -ne 0; then exit 1; fi
- fi
- fi
-
- rm "${TEMP_FILE}"
-
- exit $?
|