fix: handle hanging yarn binary in _pick_yarn_cmd

This commit is contained in:
iamninja committed 2026-10-05 15:49:46 +05:00
1 parent 590bda7491
commit 9a939844cb
1 file changed
+13 -4
+13 -4
View File
@@ -1991,10 +1991,19 @@ def _build_frontend(src_frontend: Path, dest_frontend: Path):
# Check yarn in PATH # Check yarn in PATH
yarn_bin = shutil.which("yarn") yarn_bin = shutil.which("yarn")
if yarn_bin: if yarn_bin:
result = subprocess.run([yarn_bin, "--version"], capture_output=True, text=True, timeout=5) try:
if DEBUG: result = subprocess.run([yarn_bin, "--version"], capture_output=True, text=True, timeout=3)
print(f" debug pick: yarn_bin={yarn_bin}, version={result.stdout.strip()}, major={_get_yarn_major_version(['yarn'])}") if DEBUG:
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: if major and major >= 4:
return ["yarn"] return ["yarn"]
elif major: elif major: