Fork of the espurna firmware for `mhsw` switches
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.8 KiB

  1. #!/usr/bin/env python
  2. from subprocess import call
  3. from platformio import util
  4. import os
  5. import time
  6. Import("env")
  7. # ------------------------------------------------------------------------------
  8. # Utils
  9. # ------------------------------------------------------------------------------
  10. class Color(object):
  11. BLACK = '\x1b[1;30m'
  12. RED = '\x1b[1;31m'
  13. GREEN = '\x1b[1;32m'
  14. YELLOW = '\x1b[1;33m'
  15. BLUE = '\x1b[1;34m'
  16. MAGENTA = '\x1b[1;35m'
  17. CYAN = '\x1b[1;36m'
  18. WHITE = '\x1b[1;37m'
  19. LIGHT_GREY = '\x1b[0;30m'
  20. LIGHT_RED = '\x1b[0;31m'
  21. LIGHT_GREEN = '\x1b[0;32m'
  22. LIGHT_YELLOW = '\x1b[0;33m'
  23. LIGHT_BLUE = '\x1b[0;34m'
  24. LIGHT_MAGENTA = '\x1b[0;35m'
  25. LIGHT_CYAN = '\x1b[0;36m'
  26. LIGHT_WHITE = '\x1b[0;37m'
  27. def clr(color, text):
  28. return color + str(text) + '\x1b[0m'
  29. # ------------------------------------------------------------------------------
  30. # Callbacks
  31. # ------------------------------------------------------------------------------
  32. def remove_float_support():
  33. flags = " ".join(env['LINKFLAGS'])
  34. flags = flags.replace("-u _printf_float", "")
  35. flags = flags.replace("-u _scanf_float", "")
  36. newflags = flags.split()
  37. env.Replace(
  38. LINKFLAGS = newflags
  39. )
  40. def check_size(source, target, env):
  41. time.sleep(2)
  42. size = target[0].get_size()
  43. print clr(Color.LIGHT_BLUE, "Binary size: %s bytes" % size)
  44. def build_webui():
  45. config = util.load_project_config()
  46. kv = dict(config.items("env:" + env.get('PIOENV')))
  47. if 'modules' in kv:
  48. os.environ['WEBUI_MODULES'] = kv["modules"]
  49. call(["gulp"])
  50. # ------------------------------------------------------------------------------
  51. # Hooks
  52. # ------------------------------------------------------------------------------
  53. remove_float_support()
  54. build_webui()
  55. env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", check_size)