MCPcopy Create free account
hub / github.com/Dizzy-K/AutoPT / _rewrite_scanner_command

Method _rewrite_scanner_command

tools/terminal.py:283–315  ·  view source on GitHub ↗
(self, command: str)

Source from the content-addressed store, hash-verified

281 return "".join(reversed(stack))
282
283 def _rewrite_scanner_command(self, command: str) -> str:
284 provider = self.scanner_provider
285 if provider is None:
286 return command
287
288 try:
289 parts = shlex.split(command)
290 except ValueError:
291 return command
292
293 if not parts:
294 return command
295
296 first_token = parts[0]
297 if Path(first_token).name != "xray" and first_token != "xray":
298 return command
299
300 executable = provider.executable.strip() or first_token
301 rewritten_parts = self._normalize_scanner_parts([executable, *provider.extra_args, *parts[1:]])
302 rewritten_command = shlex.join(rewritten_parts)
303
304 if provider.env:
305 env_prefix = " ".join(
306 f"{key}={shlex.quote(value)}" for key, value in sorted(provider.env.items())
307 )
308 rewritten_command = f"{env_prefix} {rewritten_command}"
309
310 if provider.working_directory:
311 rewritten_command = (
312 f"cd {shlex.quote(provider.working_directory)} && {rewritten_command}"
313 )
314
315 return rewritten_command
316
317 @staticmethod
318 def _normalize_scanner_parts(parts: list[str]) -> list[str]:

Callers 1

_normalize_commandMethod · 0.95

Calls 1

Tested by

no test coverage detected