Browse Source

Show true binary size

rfm69
Maxim Prokhorov 6 years ago
parent
commit
bad39b22ac
1 changed files with 29 additions and 8 deletions
  1. +29
    -8
      code/extra_scripts.py

+ 29
- 8
code/extra_scripts.py View File

@ -1,8 +1,12 @@
#!/usr/bin/env python #!/usr/bin/env python
from __future__ import print_function
import os
import sys
from subprocess import call from subprocess import call
import click
from platformio import util from platformio import util
import os
import time
Import("env") Import("env")
@ -31,6 +35,17 @@ class Color(object):
def clr(color, text): def clr(color, text):
return color + str(text) + '\x1b[0m' return color + str(text) + '\x1b[0m'
def print_warning(message, color=Color.LIGHT_YELLOW):
print(clr(color, message), file=sys.stderr)
def print_filler(fill, color=Color.WHITE, err=False):
width, _ = click.get_terminal_size()
if len(fill) > 1:
fill = fill[0]
out = sys.stderr if err else sys.stdout
print(clr(color, fill * width), file=out)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Callbacks # Callbacks
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@ -52,12 +67,18 @@ def cpp_check(source, target, env):
print("Finished cppcheck...\n") print("Finished cppcheck...\n")
def check_size(source, target, env): def check_size(source, target, env):
time.sleep(2)
size = target[0].get_size()
print clr(Color.LIGHT_BLUE, "Binary size: %s bytes" % size)
#if size > 512000:
# print clr(Color.LIGHT_RED, "File too large for OTA!")
# Exit(1)
(binary,) = target
path = binary.get_abspath()
size = os.stat(path).st_size
print(clr(Color.LIGHT_BLUE, "Binary size: {} bytes".format(size)))
# Warn 1MB variants about exceeding OTA size limit
flash_size = int(env.BoardConfig().get("upload.maximum_size", 0))
if (flash_size == 1048576) and (size >= 512000):
print_filler("*", color=Color.LIGHT_YELLOW, err=True)
print_warning("File is too large for OTA! Here you can find instructions on how to flash it:")
print_warning("https://github.com/xoseperez/espurna/wiki/TwoStepUpdates", color=Color.LIGHT_CYAN)
print_filler("*", color=Color.LIGHT_YELLOW, err=True)
def build_webui(env): def build_webui(env):
config = util.load_project_config() config = util.load_project_config()


Loading…
Cancel
Save