Browse Source
* Version compiled FW with hash Auto generates a macro to type out version info, local and github compilation now includes commit hash and timestamp in final uf2 files * Fix local builds makefile doesn't like the script returning the macro, directed to null for local builds as version.dtsi file accessibleV3.0
8 changed files with 92 additions and 7 deletions
@ -0,0 +1,57 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
# Get the date, first 4 chars of branch name and short commit hash |
||||||
|
date=$(date -u +"%Y%m%d") |
||||||
|
branch=${1:-$(git rev-parse --abbrev-ref HEAD | cut -c1-4)} |
||||||
|
commit=${2:-$(git rev-parse --short HEAD)} |
||||||
|
|
||||||
|
# Function to transform characters to ZMK key behaviours |
||||||
|
transform_char() { |
||||||
|
local char=$1 |
||||||
|
if [[ $char =~ [A-Za-z] ]]; then |
||||||
|
echo "<&kp ${char^^}>, " |
||||||
|
elif [[ $char =~ [0-9] ]]; then |
||||||
|
echo "<&kp N${char}>, " |
||||||
|
elif [ "$char" = "." ]; then |
||||||
|
echo "<&kp DOT>, " |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Iterate over the date and format characters |
||||||
|
formatted_date="" |
||||||
|
for ((i = 0; i < ${#date}; i++)); do |
||||||
|
formatted_date+=$(transform_char "${date:$i:1}") |
||||||
|
done |
||||||
|
|
||||||
|
# Insert separator between date and branch |
||||||
|
formatted_date+="<&kp MINUS>, " |
||||||
|
|
||||||
|
# Iterate over the branch and format characters |
||||||
|
formatted_branch="" |
||||||
|
for ((i = 0; i < ${#branch}; i++)); do |
||||||
|
formatted_branch+=$(transform_char "${branch:$i:1}") |
||||||
|
done |
||||||
|
|
||||||
|
# Insert separator between branch and commit hash |
||||||
|
formatted_branch+="<&kp MINUS>, " |
||||||
|
|
||||||
|
# Iterate over the commit hash and format characters |
||||||
|
formatted_commit="" |
||||||
|
for ((i = 0; i < ${#commit}; i++)); do |
||||||
|
formatted_commit+=$(transform_char "${commit:$i:1}") |
||||||
|
done |
||||||
|
|
||||||
|
# Combine the formatted string, add trailing carriage return |
||||||
|
formatted_result="$formatted_date$formatted_branch$formatted_commit" |
||||||
|
formatted_result+="<&kp RET>" |
||||||
|
|
||||||
|
echo $formatted_result |
||||||
|
# Create new macro to define version, overwrite previous one |
||||||
|
|
||||||
|
echo '#define VERSION_MACRO' > "config/version.dtsi" |
||||||
|
echo 'macro_ver: macro_ver {' >> "config/version.dtsi" |
||||||
|
echo 'compatible = "zmk,behavior-macro";' >> "config/version.dtsi" |
||||||
|
echo 'label = "macro_ver";' >> "config/version.dtsi" |
||||||
|
echo '#binding-cells = <0>;' >> "config/version.dtsi" |
||||||
|
echo "bindings = $formatted_result;" >> "config/version.dtsi" |
||||||
|
echo '};' >> "config/version.dtsi" |
||||||
Loading…
Reference in new issue