Mercurial > libervia-backend
comparison sat/tools/common/async_process.py @ 3660:e584ce33ef1d
tools (common/async_process): remove useless encoding + use full path for command:
- arguments don't need to be encoded anymore, `spawnProcess` handles str directly now
- use full path even for first argument: even if first argument should be only executable
name, it appears that using full path only in `command` is not enough (seen with Python
where system installation is used instead of the VirtualEnv one when full path is not
used as first argument).
(grafted from 25cbaf04772855cd8aead18771465a4f00f5fa03)
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 29 Jul 2021 22:51:01 +0200 |
parents | 04283582966f |
children | 799d4f6fa7ca |
comparison
equal
deleted
inserted
replaced
3659:d4b8f1e8f0b4 | 3660:e584ce33ef1d |
---|---|
112 """ | 112 """ |
113 stdin = kwargs.pop('stdin', None) | 113 stdin = kwargs.pop('stdin', None) |
114 if stdin is not None: | 114 if stdin is not None: |
115 stdin = stdin.encode('utf-8') | 115 stdin = stdin.encode('utf-8') |
116 verbose = kwargs.pop('verbose', False) | 116 verbose = kwargs.pop('verbose', False) |
117 args = [a.encode('utf-8') for a in args] | 117 args = list(args) |
118 kwargs = {k:v.encode('utf-8') for k,v in list(kwargs.items())} | |
119 d = defer.Deferred() | 118 d = defer.Deferred() |
120 prot = cls(d, stdin=stdin) | 119 prot = cls(d, stdin=stdin) |
121 if verbose: | 120 if verbose: |
122 prot.log = True | 121 prot.log = True |
123 if cls.command is None: | 122 if cls.command is None: |
129 if prot.name is None: | 128 if prot.name is None: |
130 name = os.path.splitext(os.path.basename(command))[0] | 129 name = os.path.splitext(os.path.basename(command))[0] |
131 prot.name = name | 130 prot.name = name |
132 else: | 131 else: |
133 command = cls.command | 132 command = cls.command |
134 cmd_args = [os.path.basename(command)] + args | 133 cmd_args = [command] + args |
135 reactor.spawnProcess(prot, | 134 reactor.spawnProcess(prot, |
136 command, | 135 command, |
137 cmd_args, | 136 cmd_args, |
138 **kwargs) | 137 **kwargs) |
139 return d | 138 return d |