fix: handle hanging yarn binary in _pick_yarn_cmd
This commit is contained in:
1 parent
590bda7491
commit
9a939844cb
1 file changed
+11
-2
+11
-2
@@ -1991,10 +1991,19 @@ def _build_frontend(src_frontend: Path, dest_frontend: Path):
|
||||
# Check yarn in PATH
|
||||
yarn_bin = shutil.which("yarn")
|
||||
if yarn_bin:
|
||||
result = subprocess.run([yarn_bin, "--version"], capture_output=True, text=True, timeout=5)
|
||||
try:
|
||||
result = subprocess.run([yarn_bin, "--version"], capture_output=True, text=True, timeout=3)
|
||||
if DEBUG:
|
||||
print(f" debug pick: yarn_bin={yarn_bin}, version={result.stdout.strip()}, major={_get_yarn_major_version(['yarn'])}")
|
||||
print(f" debug pick: yarn_bin={yarn_bin}, version={result.stdout.strip()}")
|
||||
major = _get_yarn_major_version(["yarn"])
|
||||
except (subprocess.TimeoutExpired, Exception):
|
||||
if DEBUG:
|
||||
print(f" debug pick: yarn_bin={yarn_bin} HANGS, removing...")
|
||||
try:
|
||||
subprocess.run(["rm", "-f", yarn_bin], check=False)
|
||||
major = None
|
||||
except Exception:
|
||||
major = None
|
||||
if major and major >= 4:
|
||||
return ["yarn"]
|
||||
elif major:
|
||||
|
||||
Reference in new issue
Block a user