logger: add git branch name to the log

This commit is contained in:
Beat Küng 2017-07-03 17:46:56 +02:00 committed by Lorenz Meier
parent 91144f502f
commit 18ea5ec1f8
4 changed files with 26 additions and 0 deletions

View File

@ -17,6 +17,11 @@ git_tag = subprocess.check_output('git describe --always --tags'.split(),
stderr=subprocess.STDOUT).decode('utf-8').strip()
git_version = subprocess.check_output('git rev-parse --verify HEAD'.split(),
stderr=subprocess.STDOUT).decode('utf-8').strip()
try:
git_branch_name = subprocess.check_output('git symbolic-ref -q --short HEAD'.split(),
stderr=subprocess.STDOUT).decode('utf-8').strip()
except:
git_branch_name = ''
git_version_short = git_version[0:16]
nuttx_git_tag = subprocess.check_output('git describe --always --tags'.split(),
cwd='NuttX/nuttx', stderr=subprocess.STDOUT).decode('utf-8').strip().replace("nuttx-","v")
@ -36,14 +41,18 @@ header = """
#define PX4_GIT_VERSION_STR "{git_version}"
#define PX4_GIT_VERSION_BINARY 0x{git_version_short}
#define PX4_GIT_TAG_STR "{git_tag}"
#define PX4_GIT_BRANCH_NAME "{git_branch_name}"
#define NUTTX_GIT_VERSION_STR "{nuttx_git_version}"
#define NUTTX_GIT_VERSION_BINARY 0x{nuttx_git_version_short}
#define NUTTX_GIT_TAG_STR "{nuttx_git_tag}"
#define MAVLINK_LIB_GIT_VERSION_STR "{mavlink_git_version}"
#define MAVLINK_LIB_GIT_VERSION_BINARY 0x{mavlink_git_version_short}
""".format(git_tag=git_tag,
git_version=git_version,
git_version_short=git_version_short,
git_branch_name=git_branch_name,
nuttx_git_version=nuttx_git_version,
nuttx_git_version_short=nuttx_git_version_short,
nuttx_git_tag=nuttx_git_tag,

View File

@ -156,6 +156,11 @@ uint32_t px4_firmware_version(void)
return version_tag_to_number(PX4_GIT_TAG_STR);
}
const char *px4_firmware_git_branch(void)
{
return PX4_GIT_BRANCH_NAME;
}
uint32_t px4_board_version(void)
{
#if defined(__PX4_NUTTX)

View File

@ -118,6 +118,12 @@ __EXPORT const char *px4_toolchain_version(void);
*/
__EXPORT const char *px4_firmware_version_string(void);
/**
* get the git branch name (can be empty, for example if HEAD points to a tag)
*/
__EXPORT const char *px4_firmware_git_branch(void);
/**
* Firmware version in binary form (first part of the git tag)
*/

View File

@ -1656,6 +1656,12 @@ void Logger::write_version()
write_info("sys_os_name", px4_os_name());
const char *os_version = px4_os_version_string();
const char *git_branch = px4_firmware_git_branch();
if (git_branch && git_branch[0]) {
write_info("ver_sw_branch", git_branch);
}
if (os_version) {
write_info("sys_os_ver", os_version);
}