Mercurial > hg
changeset 22990:a0e81aa94125
cmdserver: make server streams switchable
In 'unix' mode, server instance will be created per connection, and fin/fout
are set to socket files.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 27 Sep 2014 15:10:14 +0900 |
parents | dc8803ce3dfe |
children | a94594f5d52f |
files | mercurial/commandserver.py |
diffstat | 1 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commandserver.py Sat Sep 27 15:04:46 2014 +0900 +++ b/mercurial/commandserver.py Sat Sep 27 15:10:14 2014 +0900 @@ -126,10 +126,10 @@ class server(object): """ - Listens for commands on stdin, runs them and writes the output on a channel - based stream to stdout. + Listens for commands on fin, runs them and writes the output on a channel + based stream to fout. """ - def __init__(self, ui, repo): + def __init__(self, ui, repo, fin, fout): self.cwd = os.getcwd() logpath = ui.config("cmdserver", "log", None) @@ -137,7 +137,7 @@ global logfile if logpath == '-': # write log on a special 'd' (debug) channel - logfile = channeledoutput(sys.stdout, 'd') + logfile = channeledoutput(fout, 'd') else: logfile = open(logpath, 'a') @@ -151,12 +151,12 @@ self.ui = ui self.repo = self.repoui = None - self.cerr = channeledoutput(sys.stdout, 'e') - self.cout = channeledoutput(sys.stdout, 'o') - self.cin = channeledinput(sys.stdin, sys.stdout, 'I') - self.cresult = channeledoutput(sys.stdout, 'r') + self.cerr = channeledoutput(fout, 'e') + self.cout = channeledoutput(fout, 'o') + self.cin = channeledinput(fin, fout, 'I') + self.cresult = channeledoutput(fout, 'r') - self.client = sys.stdin + self.client = fin def _read(self, size): if not size: @@ -248,7 +248,7 @@ class pipeservice(object): def __init__(self, ui, repo, opts): - self.server = server(ui, repo) + self.server = server(ui, repo, sys.stdin, sys.stdout) def init(self): pass