diff --git a/pio-scripts/auto_firmware_version.py b/pio-scripts/auto_firmware_version.py index f169f617..26e1bd65 100644 --- a/pio-scripts/auto_firmware_version.py +++ b/pio-scripts/auto_firmware_version.py @@ -3,33 +3,27 @@ # Copyright (C) 2022 Thomas Basler and others # import os -import pkg_resources Import("env") -required_pkgs = {'dulwich'} -installed_pkgs = {pkg.key for pkg in pkg_resources.working_set} -missing_pkgs = required_pkgs - installed_pkgs - -if missing_pkgs: +try: + from dulwich import porcelain +except ModuleNotFoundError: env.Execute('"$PYTHONEXE" -m pip install dulwich') - -from dulwich import porcelain + from dulwich import porcelain def updateFileIfChanged(filename, content): mustUpdate = True try: - fp = open(filename, "rb") - if fp.read() == content: - mustUpdate = False - fp.close() + with open(filename, "rb") as fp: + if fp.read() == content: + mustUpdate = False except: pass if mustUpdate: - fp = open(filename, "wb") - fp.write(content) - fp.close() + with open(filename, "wb") as fp: + fp.write(content) return mustUpdate