diff --git a/pio-tools/gzip-firmware.py b/pio-tools/gzip-firmware.py index 19c323300..e03418262 100644 --- a/pio-tools/gzip-firmware.py +++ b/pio-tools/gzip-firmware.py @@ -20,10 +20,6 @@ def map_gzip(source, target, env): with map_file.open("rb") as fp: with gzip.open(gzip_file, "wb", compresslevel=9) as f: shutil.copyfileobj(fp, f) - if env["PIOPLATFORM"] == "espressif32": - # Print Metrics for firmware using "map" file - import tasmota_metrics - env.Execute("$PYTHONEXE -m tasmota_metrics " + str(map_file.resolve())) # remove map file if map_file.is_file(): diff --git a/pio-tools/metrics-firmware.py b/pio-tools/metrics-firmware.py new file mode 100644 index 000000000..d9fb7a9ad --- /dev/null +++ b/pio-tools/metrics-firmware.py @@ -0,0 +1,9 @@ +Import("env") + +import tasmotapiolib +def firm_metrics(source, target, env): + if env["PIOPLATFORM"] == "espressif32": + import tasmota_metrics + env.Execute("$PYTHONEXE -m tasmota_metrics " + str(tasmotapiolib.get_source_map_path(env).resolve())) + +env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin",firm_metrics) \ No newline at end of file diff --git a/pio-tools/name-firmware.py b/pio-tools/name-firmware.py index 47366990d..6162500da 100644 --- a/pio-tools/name-firmware.py +++ b/pio-tools/name-firmware.py @@ -25,7 +25,10 @@ def bin_map_copy(source, target, env): # copy firmware.bin and map to final destination shutil.copy(firsttarget, bin_file) - shutil.move(tasmotapiolib.get_source_map_path(env), map_file) if env["PIOPLATFORM"] == "espressif32": + # the map file is needed later for fimrmware-metrics.py + shutil.copy(tasmotapiolib.get_source_map_path(env), map_file) shutil.copy(factory, one_bin_file) + else: + shutil.move(tasmotapiolib.get_source_map_path(env), map_file) env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", bin_map_copy) diff --git a/platformio.ini b/platformio.ini index b04fef1ab..83d80aa24 100644 --- a/platformio.ini +++ b/platformio.ini @@ -73,6 +73,7 @@ extra_scripts = pre:pio-tools/pre_source_dir.py [esp_defaults] extra_scripts = post:pio-tools/name-firmware.py post:pio-tools/gzip-firmware.py + post:pio-tools/metrics-firmware.py post:pio-tools/custom_target.py ; post:pio-tools/obj-dump.py ${scripts_defaults.extra_scripts}