54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Скрипт генерирует версию сборки в файл version.h
|
|
|
|
OUTFILE=libs/Version.h
|
|
|
|
# rm $OUTFILE > /dev/null 2>&1
|
|
|
|
# echo -e "\033[0;32m~~~ Version generation ~~~\033[0m";
|
|
printf "version: "
|
|
|
|
if ! git --version > /dev/null 2>&1; then
|
|
printf "\n\033[0;31mGIT is not found!\033[0m\n"; exit 1;
|
|
fi
|
|
|
|
if ! git status > /dev/null 2>&1; then
|
|
printf "\n\033[0;31mThis is not a git repo!\033[0m\n"; exit 1;
|
|
fi
|
|
|
|
version=$(git describe --tags --always --dirty --abbrev=8 || echo unknown);
|
|
# Remove tag prefix from version
|
|
# Версия git в последнем поле после '_'
|
|
if echo "$version" | grep -q "_"; then
|
|
printf "%s => " "$version"
|
|
version=$(echo "$version" | awk -F '_' '{print $NF}')
|
|
fi
|
|
version=$(echo "$version" | sed "s/-g/-/") # Remove 'g' from git hash
|
|
echo "$version"
|
|
|
|
git_build="0x$(git rev-parse --short=8 HEAD | tr 'a-f' 'A-F')"
|
|
date="$(date +0x00%y%m%d)"
|
|
|
|
# Пишем в файл.
|
|
cat << --- > $OUTFILE
|
|
#ifndef __VERSION_H_
|
|
#define __VERSION_H_
|
|
|
|
// Данный файл обновляется автоматически из скрипта version.sh
|
|
|
|
// Хеш коммита в репозитории GIT.
|
|
#define GIT_BUILD $git_build
|
|
|
|
// Дата компиляции, YYMMDD, всё в bcd.
|
|
#define BUILD_DATE $date
|
|
|
|
// Версия CAN-прошивки.
|
|
#define CAN_FW_VERSION 1
|
|
|
|
// Версия из GIT.
|
|
#define GIT_VERSION "$version"
|
|
|
|
#endif /* __VERSION_H_ */
|
|
---
|