author | Pierre-Yves David <pierre-yves.david@octobus.net> |
Thu, 26 Oct 2023 05:37:37 +0200 | |
changeset 51105 | af96fbb8f739 |
parent 48875 | 6000f5b25c9b |
permissions | -rwxr-xr-x |
45830
c102b704edb5
global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36121
diff
changeset
|
1 |
#!/usr/bin/env python3 |
14186 | 2 |
|
29159
26d4ce8ca2bd
py3: make tests/dummyssh use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19320
diff
changeset
|
3 |
|
26d4ce8ca2bd
py3: make tests/dummyssh use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19320
diff
changeset
|
4 |
import os |
47641
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
5 |
import shlex |
47640
119673fb37aa
dummyssh: use subprocess instead of os.call
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45830
diff
changeset
|
6 |
import subprocess |
14186 | 7 |
import sys |
8 |
||
9 |
os.chdir(os.getenv('TESTTMP')) |
|
10 |
||
11 |
if sys.argv[1] != "user@dummy": |
|
12 |
sys.exit(-1) |
|
13 |
||
31007 | 14 |
os.environ["SSH_CLIENT"] = "%s 1 2" % os.environ.get('LOCALIP', '127.0.0.1') |
14186 | 15 |
|
16 |
log = open("dummylog", "ab") |
|
35570
3e3f4c03876b
tests: add b'' to string literals where bytes are required
Pulkit Goyal <7895pulkit@gmail.com>
parents:
31007
diff
changeset
|
17 |
log.write(b"Got arguments") |
14186 | 18 |
for i, arg in enumerate(sys.argv[1:]): |
36121
3a763d7f40e1
py3: make dummyssh compatible with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35570
diff
changeset
|
19 |
log.write(b" %d:%s" % (i + 1, arg.encode('latin1'))) |
3a763d7f40e1
py3: make dummyssh compatible with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35570
diff
changeset
|
20 |
log.write(b"\n") |
14186 | 21 |
log.close() |
15768
cdf9c43445df
tests: make simple single quotes work with dummyssh on windows
Mads Kiilerich <mads@kiilerich.com>
parents:
14186
diff
changeset
|
22 |
hgcmd = sys.argv[2] |
cdf9c43445df
tests: make simple single quotes work with dummyssh on windows
Mads Kiilerich <mads@kiilerich.com>
parents:
14186
diff
changeset
|
23 |
if os.name == 'nt': |
cdf9c43445df
tests: make simple single quotes work with dummyssh on windows
Mads Kiilerich <mads@kiilerich.com>
parents:
14186
diff
changeset
|
24 |
# hack to make simple unix single quote quoting work on windows |
cdf9c43445df
tests: make simple single quotes work with dummyssh on windows
Mads Kiilerich <mads@kiilerich.com>
parents:
14186
diff
changeset
|
25 |
hgcmd = hgcmd.replace("'", '"') |
47641
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
26 |
cmds = shlex.split(hgcmd) |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
27 |
if cmds[0].endswith('.py'): |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
28 |
python_exe = os.environ['PYTHON'] |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
29 |
cmds.insert(0, python_exe) |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
30 |
hgcmd = shlex.join(cmds) |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
31 |
# shlex generate windows incompatible string... |
5d9f89cd4984
dummyssh: call python script with python
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47640
diff
changeset
|
32 |
hgcmd = hgcmd.replace("'", '"') |
47774
fb8389f227a0
dummyssh: make sure we don't inherit files descriptor to the children
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47641
diff
changeset
|
33 |
r = subprocess.call(hgcmd, shell=True, close_fds=True) |
14186 | 34 |
sys.exit(bool(r)) |