40 lines
1.3 KiB
Bash
Executable File
40 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Note: git describe doesn't work if no tag is available
|
|
git_tag="$(git describe --dirty --always)"
|
|
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
|
|
|
|
# Try to extract MicroPython version
|
|
if echo ${git_tag} | grep -q '^v[0-9]'; then
|
|
ver=$(echo ${git_tag} | cut -b 2- | cut -d - -f 1)
|
|
ver_major=$(echo ${ver} | cut -d . -f 1)
|
|
ver_minor=$(echo ${ver} | cut -d . -f 2)
|
|
ver_micro=$(echo ${ver} | cut -d . -f 3)
|
|
if [ -z ${ver_micro} ]; then
|
|
ver_micro="0"
|
|
fi
|
|
else
|
|
ver_major="0"
|
|
ver_minor="0"
|
|
ver_micro="1"
|
|
fi
|
|
|
|
cat <<EOF
|
|
// This file was generated by py/py-version.sh
|
|
#define MICROPY_GIT_TAG "${git_tag}"
|
|
#define MICROPY_GIT_HASH "${git_hash}"
|
|
#define MICROPY_BUILD_DATE "$(date '+%Y-%m-%d')"
|
|
#define MICROPY_VERSION_MAJOR (${ver_major})
|
|
#define MICROPY_VERSION_MINOR (${ver_minor})
|
|
#define MICROPY_VERSION_MICRO (${ver_micro})
|
|
#define MICROPY_VERSION_STRING "${ver_major}.${ver_minor}.${ver_micro}"
|
|
EOF
|