From 54a9a117fc0153a261d57964bead82eae00eb0d7 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sun, 18 May 2025 15:41:10 +0200 Subject: [PATCH] make new VSC port pio script more failsafe (#23439) * no crash when VSC database is not found * don't stop when unknown OS is detected --- pio-tools/port-vsc.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/pio-tools/port-vsc.py b/pio-tools/port-vsc.py index 6a6550167..0ffdb8751 100644 --- a/pio-tools/port-vsc.py +++ b/pio-tools/port-vsc.py @@ -21,20 +21,22 @@ if os.environ.get("PLATFORMIO_CALLER") == "vscode": try: db_path = os.path.expanduser(os.path.expandvars(os_paths[os_name])) except KeyError: - raise RuntimeError("Unknown OS: " + os_name) + print("Unknown OS: " + os_name) - conn = sqlite3.connect(db_path) - cursor = conn.cursor() + # Only when the database is found we can go on + if os.path.exists(db_path): + conn = sqlite3.connect(db_path) + cursor = conn.cursor() - for key in ['pioarduino.pioarduino-ide', 'platformio.platformio-ide']: - cursor.execute("SELECT value FROM ItemTable WHERE key = ?", (key,)) - row = cursor.fetchone() - if row: - data = json.loads(row[0]) - projects = data.get("projects", {}) - project = projects.get(project_path) - if project and "customPort" in project: - print("USB port set in VSC:", project["customPort"]) - env["UPLOAD_PORT"] = project["customPort"] - break - conn.close() + for key in ['pioarduino.pioarduino-ide', 'platformio.platformio-ide']: + cursor.execute("SELECT value FROM ItemTable WHERE key = ?", (key,)) + row = cursor.fetchone() + if row: + data = json.loads(row[0]) + projects = data.get("projects", {}) + project = projects.get(project_path) + if project and "customPort" in project: + print("USB port set in VSC:", project["customPort"]) + env["UPLOAD_PORT"] = project["customPort"] + break + conn.close()