start/setup/update.sh: refuse to run on a Windows-hosted shell

A Windows user running the bash helper scripts (WSL, or Git Bash /
MSYS2 / MinGW / Cygwin) used to fail deep in the venv/PC-SC logic - under
WSL the Linux guest cannot reach the Windows PC/SC readers, and a
mingw/msys shell has the wrong (bin/) venv layout.  Each helper now
detects Windows (WSL via /proc/version, mingw/msys/cygwin via uname -s)
up front and exits 2 with a pointer at the matching .bat script.  Users
who deliberately want the WSL/Cygwin flow can run the underlying commands
directly, without the helpers.

Bumps VERSION to 3.40.4 and the SW cache to simple-v490.
This commit is contained in:
catarrh committed 2026-11-04 19:12:41 +03:00
1 parent 9db3fd4262
commit c4b64788b0
10 files changed
+73 -4

No files matched your search

+13
View File
@@ -4,6 +4,19 @@ set -e
# pysim-simple-server setup script
# Creates a venv and installs pysim and its dependencies.
# Windows guard: setup.sh is the native Linux/macOS helper. Under WSL the
# Linux guest cannot reach the Windows PC/SC readers, and a Git Bash / MSYS2 /
# MinGW / Cygwin shell has the wrong (bin/) venv layout - use setup.bat, which
# drives the Windows Python and the built-in PC/SC stack. A deliberate
# WSL/Cygwin flow can run the underlying pip/venv commands without this script.
if grep -qi microsoft /proc/version 2>/dev/null || \
uname -s 2>/dev/null | grep -qiE 'MINGW|MSYS|CYGWIN'; then
echo "Error: setup.sh is the Linux/macOS helper and cannot run on Windows"
echo "(WSL / MSYS2 / MinGW / Cygwin detected)."
echo "Use setup.bat from a Windows command prompt (cmd.exe / PowerShell) instead."
exit 2
fi
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
VENV_DIR="$SCRIPT_DIR/.venv"