We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
System hooks with spaces in entry are not runnable
It's pretty reasonable to have a system hook that looks like this:

```
-   id: foo
    name: foo
    entry: python -m bar
    language: system
```

Currently this fails:

```
$ pre-commit run foo --all-files
foo...................................................Failed

xargs: python -m bar: No such file or directory
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pre_commit/languages/system.py`
Content:
```
1 ENVIRONMENT_DIR = None
2 
3 
4 def install_environment(repo_cmd_runner):
5     """Installation for system type is a noop."""
6 
7 
8 def run_hook(repo_cmd_runner, hook, file_args):
9     return repo_cmd_runner.run(
10         ['xargs', hook['entry']] + hook['args'],
11         # TODO: this is duplicated in pre_commit/languages/helpers.py
12         stdin='\n'.join(list(file_args) + ['']),
13         retcode=None,
14     )
15
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pre_commit/languages/system.py b/pre_commit/languages/system.py
--- a/pre_commit/languages/system.py
+++ b/pre_commit/languages/system.py
@@ -1,3 +1,6 @@
+import shlex
+
+
 ENVIRONMENT_DIR = None
 
 
@@ -7,7 +10,7 @@
 
 def run_hook(repo_cmd_runner, hook, file_args):
     return repo_cmd_runner.run(
-        ['xargs', hook['entry']] + hook['args'],
+        ['xargs'] + shlex.split(hook['entry']) + hook['args'],
         # TODO: this is duplicated in pre_commit/languages/helpers.py
         stdin='\n'.join(list(file_args) + ['']),
         retcode=None,

{"golden_diff": "diff --git a/pre_commit/languages/system.py b/pre_commit/languages/system.py\n--- a/pre_commit/languages/system.py\n+++ b/pre_commit/languages/system.py\n@@ -1,3 +1,6 @@\n+import shlex\n+\n+\n ENVIRONMENT_DIR = None\n \n \n@@ -7,7 +10,7 @@\n \n def run_hook(repo_cmd_runner, hook, file_args):\n     return repo_cmd_runner.run(\n-        ['xargs', hook['entry']] + hook['args'],\n+        ['xargs'] + shlex.split(hook['entry']) + hook['args'],\n         # TODO: this is duplicated in pre_commit/languages/helpers.py\n         stdin='\\n'.join(list(file_args) + ['']),\n         retcode=None,\n", "issue": "System hooks with spaces in entry are not runnable\nIt's pretty reasonable to have a system hook that looks like this:\n\n```\n-   id: foo\n    name: foo\n    entry: python -m bar\n    language: system\n```\n\nCurrently this fails:\n\n```\n$ pre-commit run foo --all-files\nfoo...................................................Failed\n\nxargs: python -m bar: No such file or directory\n```\n\n", "before_files": [{"content": "ENVIRONMENT_DIR = None\n\n\ndef install_environment(repo_cmd_runner):\n    \"\"\"Installation for system type is a noop.\"\"\"\n\n\ndef run_hook(repo_cmd_runner, hook, file_args):\n    return repo_cmd_runner.run(\n        ['xargs', hook['entry']] + hook['args'],\n        # TODO: this is duplicated in pre_commit/languages/helpers.py\n        stdin='\\n'.join(list(file_args) + ['']),\n        retcode=None,\n    )\n", "path": "pre_commit/languages/system.py"}], "after_files": [{"content": "import shlex\n\n\nENVIRONMENT_DIR = None\n\n\ndef install_environment(repo_cmd_runner):\n    \"\"\"Installation for system type is a noop.\"\"\"\n\n\ndef run_hook(repo_cmd_runner, hook, file_args):\n    return repo_cmd_runner.run(\n        ['xargs'] + shlex.split(hook['entry']) + hook['args'],\n        # TODO: this is duplicated in pre_commit/languages/helpers.py\n        stdin='\\n'.join(list(file_args) + ['']),\n        retcode=None,\n    )\n", "path": "pre_commit/languages/system.py"}]}