#/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/&/&/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`