#/bin/sh # # This script defines some helper functions used by other scripts in the docs # folder. # Get the time the given filename was last modified. get_last_modified_date() { local filename=$1 RESULT=`git log -1 --format="%ad" --date=format:'%b %d, %Y' -- $filename` } get_dlib_version() { cat ../dlib/CMakeLists.txt | awk '/set\(CPACK_PACKAGE_VERSION_'$1'/{ match($2,"\"(.*)\"",a); print a[1]}' } # Dump a copy of the repo contents to $1 dump_repo_to() { mkdir -p $1 git archive HEAD `git rev-parse --show-toplevel` | tar -xC $1 } # Call like git_logs_as_xml HEAD~4..HEAD out.xml to write the logs in that range to out.xml git_logs_as_xml() { local logrange=$1 local outfile=$2 # What paths to include in the logs local paths="../dlib ../examples ../tools ../python_examples" (echo ""; git log --stat=80 --date=iso-strict --pretty=format:"%n%n%an%n%ad%nGIT_COMMIT_MESSAGE_BEGIN%sGIT_COMMIT_MESSAGE_END%n%n" $logrange $paths | tail -n+2 ; echo; echo '' ; echo "" ) > $outfile # sanitize git commit messages sed -e '/GIT_COMMIT_MESSAGE_BEGIN.*GIT_COMMIT_MESSAGE_END/ { s//\>/g; s/&/&/g; s/GIT_COMMIT_MESSAGE_BEGIN//g; s/GIT_COMMIT_MESSAGE_END/<\/msg>/g; }' -i $outfile # trim whitespace at start and end of tags. sed -e ':a' -e 'N' -e '$!ba' -e "s/[ \n]*/ /g" -e "s/[ \n]*<\/files_changed>/<\/files_changed>/g" -i $outfile } # call like: set_dlib_version MAJOR 42 to set MAJOR version to 42. set_dlib_version() { sed -i -e 's/\(set(CPACK_PACKAGE_VERSION_'$1' *"\).*\(".*\)/\1'$2'\2/' ../dlib/CMakeLists.txt } MAJOR_NUM=`get_dlib_version MAJOR` MINOR_NUM=`get_dlib_version MINOR` PATCH_NUM=`get_dlib_version PATCH`