Like xargs, but accepts arguments from arbitrary processes, and executes eagerly as long as there are arguments available.
That is to say, xargsd [...] -- foobar, when it receives arguments a and b, will execute foobar a b. If arguments c through f arrive while foobar a b is executing, then foobar c d e f will get run as soon as the first invocation finishes.
Examples
-
A toy example, demonstrating the very basic functionality:
$ python -m xargsd --socket-file temp.sock -vvv -- echo & [1] 14917 $ submit() { python -m xargsd.client --socket-file temp.sock -- "$@"; } $ submit a INFO:root:executing ['echo', 'a'] a $ submit b c d INFO:root:executing ['echo', 'b', 'c', 'd'] b c d
(Note that the
INFO:lines and the following ones are printed byxargsd, not the client.) -
A slightly-less-toy example, which demonstrates how commands are batched up while a previous command is executing:
$ echo 'date; sleep "$@"' > date-and-sleep.sh $ python -m xargsd --socket-file temp.sock -vvv -- bash date-and-sleep.sh & [4] 15714 $ submit() { echo "submitting $@"; python -m xargsd.client --socket-file temp.sock -- "$@"; } $ submit 1; sleep 0.1; submit 0.99; sleep 0.1; submit 1.01; sleep 3 submitting 1 INFO:root:executing ['bash', 'date-and-sleep.sh', '1'] Sun May 12 09:53:13 PDT 2019 submitting 0.99 submitting 1.01 DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '1']: status 0 INFO:root:executing ['bash', 'date-and-sleep.sh', '0.99', '1.01'] Sun May 12 09:53:14 PDT 2019 DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '0.99', '1.01']: status 0
-
A completely serious example, using
watchmanto runxargsd.clientwhenever a file (whose name matches some pattern) changes:$ watchman watch . $ watchman -- trigger . pytest -p '.*\.py$' -X -p '(^|.*/)\.' -- bash -c 'python -m xargsd.client --socket-file .xargsd-pytest.sock -- .' $ python -m xargsd --unique --socket-file .xargsd-pytest.sock -vvv -- pytest --color=yes
Then save a
.pyfile and watch the daemon executepytest .
Release files for xargsd 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xargsd-0.1.3.tar.gz | 3.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xargsd-0.1.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 5.5 kB
Release files / xargsd-0.1.3.tar.gz
| Download URL | xargsd-0.1.3.tar.gz |
|---|---|
| Size | 3.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4da8a2efa2a48a30925ed1c47ee0cd4ad85d8f2e10885337f042b35cec3d4a36
|
|
BLAKE2b-256 checksum How to use checksums |
3cb2b7a487fb192a471ae5eaff2993194ed179a64cb087440862cc54a2b25a05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1
|
Release files / xargsd-0.1.3-py2.py3-none-any.whl
| Download URL | xargsd-0.1.3-py2.py3-none-any.whl |
|---|---|
| Size | 2.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
05c3232103b9c2560ea3f1cf2bc81641999477c30ba9e3f07127a4747e1e3ad5
|
|
BLAKE2b-256 checksum How to use checksums |
dc7351213c1ca9c72577b33b1202523fc73116e69a1fd5b771c1bd8eceb1664d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1
|