Files
Geely/sys/version.sh

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_ */
---