contrib/win32/hg.bat
author Matt Harbison <matt_harbison@yahoo.com>
Fri, 09 Apr 2021 11:32:19 -0400
changeset 46885 fc8a5c9ecee0
parent 23934 975c4fc4a512
permissions -rw-r--r--
win32: enable legacy I/O mode to fix missing pager output on Windows with py3 The equivalent interpreter option is set by wrapper.exe, but this *.bat file is what gets installed in a venv. Without this mode, any command that spins up a pager has no output, unless the pager is explicitly disabled. The variable is set inside the `setlocal` scope to keep it from leaking into the environment after the bat file exits. We should probably still figure out how to ship a compiled hg.exe when installing with `pip`, because the binary does other things like enable long filename support. But this avoids the dangerous and confusing lack of output in the meantime. Differential Revision: https://phab.mercurial-scm.org/D10354
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6513
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     1
@echo off
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     2
rem Windows Driver script for Mercurial
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     3
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     4
setlocal
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     5
set HG=%~f0
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
     6
46885
fc8a5c9ecee0 win32: enable legacy I/O mode to fix missing pager output on Windows with py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 23934
diff changeset
     7
set PYTHONLEGACYWINDOWSSTDIO=1
fc8a5c9ecee0 win32: enable legacy I/O mode to fix missing pager output on Windows with py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 23934
diff changeset
     8
19091
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
     9
rem Use a full path to Python (relative to this script) if it exists,
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    10
rem as the standard Python install does not put python.exe on the PATH...
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    11
rem Otherwise, expect that python.exe can be found on the PATH.
6513
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
    12
rem %~dp0 is the directory of this script
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
    13
19091
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    14
if exist "%~dp0..\python.exe" (
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    15
    "%~dp0..\python" "%~dp0hg" %*
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    16
) else (
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    17
    python "%~dp0hg" %*
f01a351db791 win32: use explicit path to "python.exe" only if it exists
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 12653
diff changeset
    18
)
6513
66e87c11447d Add a batch file driver for Windows
Paul Moore <p.f.moore@gmail.com>
parents:
diff changeset
    19
endlocal
23934
975c4fc4a512 hg.bat: return exit code explicitly for indirect invocation
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19091
diff changeset
    20
975c4fc4a512 hg.bat: return exit code explicitly for indirect invocation
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19091
diff changeset
    21
exit /b %ERRORLEVEL%