brmake 927 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. # (C) 2016, "Yann E. MORIN" <yann.morin.1998@free.fr>
  3. # License: WTFPL, https://spdx.org/licenses/WTFPL.html
  4. main() {
  5. local ret start d h m mf
  6. start=${SECONDS}
  7. if [ -n "$BR2_DOCKER" ]; then
  8. docker=("${0%/*}/docker-run")
  9. else
  10. docker=()
  11. fi
  12. ( exec 2>&1; "${docker[@]}" make "${@}"; ) \
  13. > >( while read -r line; do
  14. printf "%(%Y-%m-%dT%H:%M:%S)T %s\n" -1 "${line}"
  15. done \
  16. |tee -a br.log \
  17. |grep --colour=never -E '>>>'
  18. )
  19. ret=${?}
  20. d=$((SECONDS-start))
  21. printf "Done in "
  22. h=$((d/3600))
  23. d=$((d%3600))
  24. [ ${h} -eq 0 ] || { printf "%dh " ${h}; mf="02"; }
  25. m=$((d/60))
  26. d=$((d%60))
  27. [ ${m} -eq 0 ] || { printf "%${mf}dmin " ${m}; sf="02"; }
  28. printf "%${sf}ds" ${d}
  29. if [ ${ret} -ne 0 ]; then
  30. printf " (error code: %s)" ${ret}
  31. fi
  32. printf "\n"
  33. return ${ret}
  34. }
  35. main "${@}"