tests/dummyssh
author Raphaël Gomès <rgomes@octobus.net>
Thu, 09 Jun 2022 10:45:27 +0200
changeset 49345 44319aa4a2a4
parent 48875 6000f5b25c9b
permissions -rwxr-xr-x
hg-cpython: fallback when encountering an unknown matcher At this point in the process, nothing user-visible has happened, it is still safe to fallback. This can happen now that we're going to be using "container matchers" like unionmatcher and intersectionmatcher. This is easier and less error-prone than recursive checking beforehand since only the presence of a transformation case will allow the process to continue.

#!/usr/bin/env python3


import os
import shlex
import subprocess
import sys

os.chdir(os.getenv('TESTTMP'))

if sys.argv[1] != "user@dummy":
    sys.exit(-1)

os.environ["SSH_CLIENT"] = "%s 1 2" % os.environ.get('LOCALIP', '127.0.0.1')

log = open("dummylog", "ab")
log.write(b"Got arguments")
for i, arg in enumerate(sys.argv[1:]):
    log.write(b" %d:%s" % (i + 1, arg.encode('latin1')))
log.write(b"\n")
log.close()
hgcmd = sys.argv[2]
if os.name == 'nt':
    # hack to make simple unix single quote quoting work on windows
    hgcmd = hgcmd.replace("'", '"')
    cmds = shlex.split(hgcmd)
    if cmds[0].endswith('.py'):
        python_exe = os.environ['PYTHON']
        cmds.insert(0, python_exe)
    hgcmd = shlex.join(cmds)
    # shlex generate windows incompatible string...
    hgcmd = hgcmd.replace("'", '"')
r = subprocess.call(hgcmd, shell=True, close_fds=True)
sys.exit(bool(r))