update_buildinfo.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env bash
  2. USER_MODULES_H=app/include/user_modules.h
  3. COMMIT_ID="$(git rev-parse HEAD)"
  4. BRANCH="$(git rev-parse --abbrev-ref HEAD | sed -E 's/[\/\\]+/_/g')"
  5. RELEASE="$(git describe --tags --long | sed -E 's/(.*)-(.*)-.*/\1 +\2/g' | sed 's/ +0$//')"
  6. RELEASE_DTS=$(TZ=UTC git show --quiet --date=format-local:"%Y%m%d%H%M" --format="%cd" HEAD)
  7. BUILD_DATE="$(date "+%Y-%m-%d %H:%M")"
  8. MODULES=$(awk '/^[ \t]*#define LUA_USE_MODULES/{modules=modules sep tolower(substr($2,17));sep=","}END{if(length(modules)==0)modules="-";print modules}' $USER_MODULES_H | tr -d '\r')
  9. # create temp buildinfo
  10. TEMPFILE=/tmp/buildinfo.h
  11. cat > $TEMPFILE << EndOfMessage
  12. #ifndef __BUILDINFO_H__
  13. #define __BUILDINFO_H__
  14. #include "user_config.h"
  15. #define BUILDINFO_STR_HELPER(x) #x
  16. #define BUILDINFO_TO_STR(x) BUILDINFO_STR_HELPER(x)
  17. #ifdef LUA_FLASH_STORE
  18. #define BUILDINFO_LFS_SIZE LUA_FLASH_STORE
  19. #else
  20. #define BUILDINFO_LFS_SIZE 0
  21. #endif
  22. #ifdef CLIENT_SSL_ENABLE
  23. #define BUILDINFO_SSL true
  24. #define BUILDINFO_SSL_STR "true"
  25. #else
  26. #define BUILDINFO_SSL false
  27. #define BUILDINFO_SSL_STR "false"
  28. #endif
  29. #ifdef LUA_NUMBER_INTEGRAL
  30. #define BUILDINFO_BUILD_TYPE "integer"
  31. #else
  32. #ifdef LUA_NUMBER_64BITS
  33. #define BUILDINFO_BUILD_TYPE "double"
  34. #else
  35. #define BUILDINFO_BUILD_TYPE "float"
  36. #endif
  37. #endif
  38. #define USER_PROLOG "$USER_PROLOG"
  39. #define BUILDINFO_BRANCH "$BRANCH"
  40. #define BUILDINFO_COMMIT_ID "$COMMIT_ID"
  41. #define BUILDINFO_RELEASE "$RELEASE"
  42. #define BUILDINFO_RELEASE_DTS "$RELEASE_DTS"
  43. #define BUILDINFO_MODULES "$MODULES"
  44. #define BUILDINFO_BUILD_DATE "$BUILD_DATE"
  45. #define NODE_VERSION_LONG \\
  46. USER_PROLOG "\n" \\
  47. "\tbranch: " BUILDINFO_BRANCH "\n" \\
  48. "\tcommit: " BUILDINFO_COMMIT_ID "\n" \\
  49. "\trelease: " BUILDINFO_RELEASE "\n" \\
  50. "\trelease DTS: " BUILDINFO_RELEASE_DTS "\n" \\
  51. "\tSSL: " BUILDINFO_SSL_STR "\n" \\
  52. "\tbuild type: " BUILDINFO_BUILD_TYPE "\n" \\
  53. "\tLFS: " BUILDINFO_TO_STR(BUILDINFO_LFS_SIZE) " bytes total capacity\n" \\
  54. "\tmodules: " BUILDINFO_MODULES "\n"
  55. EndOfMessage
  56. echo "#endif /* __BUILDINFO_H__ */" >> $TEMPFILE
  57. diff -q $TEMPFILE app/include/buildinfo.h || cp $TEMPFILE app/include/buildinfo.h
  58. rm $TEMPFILE