2019-10-19 22:09:52 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
default_version=${1}
|
|
|
|
|
src_dir=${2}
|
|
|
|
|
out_file=${3}
|
|
|
|
|
|
|
|
|
|
# echo "default version: ${default_version}"
|
|
|
|
|
# echo "source directory: ${src_dir}"
|
|
|
|
|
# echo "output file: ${out_file}"
|
|
|
|
|
|
2020-03-06 21:18:31 +01:00
|
|
|
if [ -d "${src_dir}/.git" ] && command -v git > /dev/null; then
|
2019-10-19 22:09:52 +02:00
|
|
|
workdir=$(pwd)
|
|
|
|
|
cd "${src_dir}"
|
|
|
|
|
git_version=$(git describe --always --tags)
|
|
|
|
|
git_branch=$(git rev-parse --abbrev-ref HEAD)
|
|
|
|
|
cd "${workdir}"
|
|
|
|
|
|
|
|
|
|
new_version="${git_version} ($(env LC_TIME=C date "+%b %d %Y"), branch '${git_branch}')"
|
|
|
|
|
else
|
|
|
|
|
new_version="${default_version}"
|
|
|
|
|
fi
|
|
|
|
|
|
2021-06-13 09:46:22 +02:00
|
|
|
major=$(echo "${new_version}" | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)(-([0-9]+-g[a-z0-9]+) .*)?/\1/')
|
|
|
|
|
minor=$(echo "${new_version}" | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)(-([0-9]+-g[a-z0-9]+) .*)?/\2/')
|
|
|
|
|
patch=$(echo "${new_version}" | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)(-([0-9]+-g[a-z0-9]+) .*)?/\3/')
|
|
|
|
|
extra=$(echo "${new_version}" | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)(-([0-9]+-g[a-z0-9]+) .*)?/\5/')
|
2020-07-24 17:47:47 +02:00
|
|
|
|
|
|
|
|
new_version="#define FOOT_VERSION \"${new_version}\"
|
|
|
|
|
#define FOOT_MAJOR ${major}
|
|
|
|
|
#define FOOT_MINOR ${minor}
|
2021-06-13 09:46:22 +02:00
|
|
|
#define FOOT_PATCH ${patch}
|
|
|
|
|
#define FOOT_EXTRA \"${extra}\""
|
2019-10-19 22:09:52 +02:00
|
|
|
|
|
|
|
|
if [ -f "${out_file}" ]; then
|
|
|
|
|
old_version=$(cat "${out_file}")
|
|
|
|
|
else
|
|
|
|
|
old_version=""
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# echo "old version: ${old_version}"
|
|
|
|
|
# echo "new version: ${new_version}"
|
|
|
|
|
|
|
|
|
|
if [ "${old_version}" != "${new_version}" ]; then
|
|
|
|
|
echo "${new_version}" > "${out_file}"
|
|
|
|
|
fi
|