Add the git version to the banner

This commit is contained in:
Dave Hylands 2014-04-03 16:32:58 -07:00
parent 5bf565e353
commit bf7d690e36
3 changed files with 27 additions and 2 deletions

16
py/py-version.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/bash
git_hash="$(git rev-parse --short HEAD 2> /dev/null || echo unknown)"
git_files_are_clean=1
# Check if there are any modified files.
git diff --no-ext-diff --quiet --exit-code 2> /dev/null || git_files_are_clean=0
# Check if there are any staged files.
git diff-index --cached --quiet HEAD -- 2> /dev/null || git_files_are_clean=0
if [ "${git_files_are_clean}" != "1" ]; then
git_hash="${git_hash}-dirty"
fi
cat <<EOF
// This file was generated by py/py-version.sh
#define MICROPY_GIT_HASH "${git_hash}"
#define MICROPY_BUILD_DATE "$(date '+%Y-%m-%d')"
EOF

View file

@ -90,6 +90,14 @@ PY_O_BASENAME = \
# prepend the build destination prefix to the py object files
PY_O = $(addprefix $(PY_BUILD)/, $(PY_O_BASENAME))
# Anything that depends on FORCE will be considered out-of-date
FORCE:
.PHONY: FORCE
$(PY_BUILD)/py-version.h: FORCE
$(Q)$(PY_SRC)/py-version.sh > $@.tmp
$(Q)if [ -f "$@" ] && cmp -s $@ $@.tmp; then rm $@.tmp; else echo "Generating $@"; mv $@.tmp $@; fi
# qstr data
# Adding an order only dependency on $(PY_BUILD) causes $(PY_BUILD) to get
@ -104,7 +112,7 @@ $(PY_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(PY_SRC)/makeqst
# the right .o's to get recompiled if the generated.h file changes. Adding
# an order-only dependendency to all of the .o's will cause the generated .h
# to get built before we try to compile any of them.
$(PY_O): | $(PY_BUILD)/qstrdefs.generated.h
$(PY_O): | $(PY_BUILD)/qstrdefs.generated.h $(PY_BUILD)/py-version.h
# emitters

View file

@ -23,6 +23,7 @@
#include "pyexec.h"
#include "storage.h"
#include "usb.h"
#include "build/py/py-version.h"
pyexec_mode_kind_t pyexec_mode_kind = PYEXEC_MODE_FRIENDLY_REPL;
STATIC bool repl_display_debugging_info = 0;
@ -155,7 +156,7 @@ int pyexec_friendly_repl(void) {
#endif
friendly_repl_reset:
stdout_tx_str("Micro Python build <git hash> on 25/1/2014; " MICROPY_HW_BOARD_NAME " with STM32F405RG\r\n");
stdout_tx_str("Micro Python build " MICROPY_GIT_HASH " on " MICROPY_BUILD_DATE "; " MICROPY_HW_BOARD_NAME " with STM32F405RG\r\n");
stdout_tx_str("Type \"help()\" for more information.\r\n");
// to test ctrl-C