Sfoglia il codice sorgente

tools: Catch OSError which is raised when the tool is not available

Closes https://github.com/espressif/esp-idf/issues/7140
Roland Dobai 4 anni fa
parent
commit
d5d0c624d0
1 ha cambiato i file con 6 aggiunte e 3 eliminazioni
  1. 6 3
      tools/idf_tools.py

+ 6 - 3
tools/idf_tools.py

@@ -843,12 +843,15 @@ def get_python_env_path():
         with open(version_file_path, "r") as version_file:
             idf_version_str = version_file.read()
     else:
+        idf_version_str = ''
         try:
             idf_version_str = subprocess.check_output(['git', 'describe'],
                                                       cwd=global_idf_path, env=os.environ).decode()
+        except OSError:
+            # OSError should cover FileNotFoundError and WindowsError
+            warn('Git was not found')
         except subprocess.CalledProcessError as e:
-            warn('Git describe was unsuccessul: {}'.format(e))
-            idf_version_str = ''
+            warn('Git describe was unsuccessul: {}'.format(e.output))
     match = re.match(r'^v([0-9]+\.[0-9]+).*', idf_version_str)
     if match:
         idf_version = match.group(1)
@@ -1181,7 +1184,7 @@ def action_install_python_env(args):  # type: ignore
     if os.path.exists(virtualenv_python):
         try:
             subprocess.check_call([virtualenv_python, '--version'], stdout=sys.stdout, stderr=sys.stderr)
-        except subprocess.CalledProcessError:
+        except (OSError, subprocess.CalledProcessError):
             # At this point we can reinstall the virtual environment if it is non-functional. This can happen at least
             # when the Python interpreter was removed which was used to create the virtual environment.
             reinstall = True