From 21c35a1a973e6b39fba0f2a406df1e1f36e8fc6c Mon Sep 17 00:00:00 2001 From: Gregor Date: Thu, 27 Jun 2019 16:44:25 +0200 Subject: [PATCH] Create buildinfo.h and return new Values in node.info --- .gitignore | 1 + app/include/user_version.h | 3 +- app/modules/node.c | 8 ++++- tools/update_buildinfo.sh | 64 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 tools/update_buildinfo.sh diff --git a/.gitignore b/.gitignore index abca1f17..83360907 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ tools/toolchains/ .project .settings/ .vscode +buildinfo.h diff --git a/app/include/user_version.h b/app/include/user_version.h index f8ba27db..254967d5 100644 --- a/app/include/user_version.h +++ b/app/include/user_version.h @@ -2,6 +2,7 @@ #define __USER_VERSION_H__ #include "version.h" /* ESP firmware header */ +#include "/tmp/buildinfo.h" #define NODE_VERSION_MAJOR ESP_SDK_VERSION_MAJOR #define NODE_VERSION_MINOR ESP_SDK_VERSION_MINOR @@ -11,7 +12,7 @@ #define NODE_VERSION_STR(x) #x #define NODE_VERSION_XSTR(x) NODE_VERSION_STR(x) -#define NODE_VERSION "NodeMCU " ESP_SDK_VERSION_STRING "." NODE_VERSION_XSTR(NODE_VERSION_INTERNAL) +#define NODE_VERSION "NodeMCU " ESP_SDK_VERSION_STRING "." NODE_VERSION_XSTR(NODE_VERSION_INTERNAL) "\n" NODE_VERSION_LONG #ifndef BUILD_DATE #define BUILD_DATE "unspecified" diff --git a/app/modules/node.c b/app/modules/node.c index a44f3fa4..a7cdd719 100644 --- a/app/modules/node.c +++ b/app/modules/node.c @@ -128,7 +128,13 @@ static int node_info( lua_State* L ) lua_pushinteger(L, flash_rom_get_size_byte() / 1024); // flash size in KB lua_pushinteger(L, flash_rom_get_mode()); lua_pushinteger(L, flash_rom_get_speed()); - return 8; + lua_pushstring(L, BUILDINFO_BRANCH); + lua_pushstring(L, BUILDINFO_COMMIT_ID); + lua_pushboolean(L, BUILDINFO_SSL); + lua_pushstring(L, BUILDINFO_LFS); + lua_pushstring(L, BUILDINFO_MODULES); + lua_pushstring(L, BUILDINFO_BUILD_TYPE); + return 14; } // Lua: chipid() diff --git a/tools/update_buildinfo.sh b/tools/update_buildinfo.sh new file mode 100644 index 00000000..081fc543 --- /dev/null +++ b/tools/update_buildinfo.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +BUILD_DATE="$(date "+%Y-%m-%d %H:%M")" +COMMIT_ID="$(git rev-parse HEAD)" +BRANCH="$(git rev-parse --abbrev-ref HEAD | sed -r 's/[\/\\]+/_/g')" +RELEASE="$(git describe --tags --long | sed -r 's/(.*)-(.*)-.*/\1 +\2/g' | sed 's/ +0$//')" + +# figure out whether SSL is enabled in user_config.h +if grep -Eq "^#define CLIENT_SSL_ENABLE" ../app/include/user_config.h; then + SSL="true" + else + SSL="false" + fi + +# figure out whether LFS configuration in user_config.h +LFS=$(grep "^#define LUA_FLASH_STORE" ../app/include/user_config.h | tr -d '\r' | cut -d ' ' -f 3-) +if [ -z "$LFS" ]; then + LFS="disabled" +else + LFS="Size: ${LFS}" + fi + +# figure out whether Int build is enabled in user_config.h +if grep -Eq "^#define LUA_NUMBER_INTEGRAL" ../app/include/user_config.h; then + BUILD_TYPE=integer +else + BUILD_TYPE=float +fi + +MODULES=$(awk '/^[ \t]*#define LUA_USE_MODULES/{modules=modules sep tolower(substr($2,17));sep=","}END{if(length(modules)==0)modules="-";print modules}' ../app/include/user_modules.h | tr -d '\r') + +# create temp buildinfo +TEMPFILE=/tmp/buildinfo.h +cat > $TEMPFILE << EndOfMessage +#ifndef __BUILDINFO_H__ +#define __BUILDINFO_H__ +EndOfMessage + +echo "#define BUILDINFO_BRANCH \""$BRANCH"\"" >> $TEMPFILE +echo "#define BUILDINFO_COMMIT_ID \""$COMMIT_ID"\"" >> $TEMPFILE +echo "#define BUILDINFO_RELEASE \""$RELEASE"\"" >> $TEMPFILE +echo "#define BUILDINFO_SSL "$SSL >> $TEMPFILE +echo "#define BUILDINFO_SSL_STR \""$SSL"\"" >> $TEMPFILE +echo "#define BUILDINFO_BUILD_TYPE \""$BUILD_TYPE"\"" >> $TEMPFILE +echo "#define BUILDINFO_LFS \""$LFS"\"" >> $TEMPFILE +echo "#define BUILDINFO_MODULES \""$MODULES"\"" >> $TEMPFILE + +cat >> $TEMPFILE << EndOfMessage2 + +#define NODE_VERSION_LONG \\ + "\tbranch: '" BUILDINFO_BRANCH "'\n" \\ + "\tcommit: '" BUILDINFO_COMMIT_ID "'\n" \\ + "\tSSL: '" BUILDINFO_SSL_STR "'\n" \\ + "\tBuild type: '" BUILDINFO_BUILD_TYPE "'\n" \\ + "\tLFS: '" BUILDINFO_LFS "'\n" \\ + "\tmodules: '" BUILDINFO_MODULES "'\n" + +EndOfMessage2 + + + +#echo "#define NODE_VERSION_LONG \"\\n\\tbranch: '"$BRANCH"'\\n\\tcommit: '"$COMMIT_ID"'\\n\\tSSL: '"$SSL"'\\n\\tBuild type: '"$BUILD_TYPE"'\\n\\tLFS: '"$LFS"'\\n\\tmodules: '"$MODULES"'\\n\"" >> $TEMPFILE + +echo "#endif /* __BUILDINFO_H__ */" >> $TEMPFILE