#!/usr/bin/env bash echo -e "commit,date,loc_total,loc_code,loc_comments,text,bss,dec,bin" > target/sizes.csv trap 'echo -e "\nCancelled. Restoring repo."; git checkout --quiet --force master; exit' INT for commit in $(git rev-list master) do date=$(git show -s --format=%ci $commit) echo "Commit ${commit} at ${date}" git checkout $commit --quiet if [[ -f "examples/embassy-stm32/Cargo.toml" ]]; then pushd examples/embassy-stm32 > /dev/null out=$(cargo size --release --quiet | tail -n1) text=$(echo $out | awk '{print $1}') bss=$(echo $out | awk '{print $3}') dec=$(echo $out | awk '{print $4}') cargo objcopy --release --quiet -- -O binary target/size.bin out=$(wc -c target/size.bin) bin=$(echo $out | awk '{print $1}') popd > /dev/null fi code_stats=$(tokei --type Rust | tail -n2 | head -n1 | awk '{print $3","$4","$5}') echo -n "--> " echo -e "$commit,$date,$code_stats,$text,$bss,$dec,$bin" | tee -a target/sizes.csv done echo "Done" git checkout master --quiet