tests/testlib/sigpipe-worker.py
author Anton Shestakov <av6@dwimlabs.net>
Thu, 05 Oct 2023 14:47:42 -0300
branchstable
changeset 50990 758e40b9a8af
parent 48875 6000f5b25c9b
permissions -rwxr-xr-x
httppeer: fix static-http: scheme autodetection (issue6833) Since statichttprepo.make_peer() assumes path is a urlutil.path object (by accessing path.loc), we no longer can just provide a bytestring there. See also 5f71fff8dc74 and cfe8d88a453e.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47618
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
#!/usr/bin/env python3
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
#
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
# This is literally `cat` but in python, one char at a time.
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
#
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
# see sigpipe-remote.py for details.
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
import io
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
import os
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
import sys
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
if isinstance(sys.stdout.buffer, io.BufferedWriter):
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
    print('SIGPIPE-WORKER: script need unbuffered output', file=sys.stderr)
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
    sys.exit(255)
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
while True:
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
    c = os.read(sys.stdin.fileno(), 1)
27ff81547d35 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
    os.write(sys.stdout.fileno(), c)