{ "info": { "author": "Luper Rouch", "author_email": "luper.rouch@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "multiwait\n=========\n\nmultiwait allows to run a command after conditions have been fulfilled. For\nexample you can use it to start a program after Redis has finished loading its\ndataset into memory, or after a lock file has disappeared.\n\nThe settings are given in a YAML file, for example:\n\n.. code:: yaml\n\n defaults:\n timeout: 60\n\n conditions:\n - redis-dataset-loaded\n - file-absent:\n path: /path/to/lockfile\n warmup: 10\n test_interval: 1\n - file-present:\n path: /path/to/socket\n timeout: 15\n\nThen you point the ``multiwait`` command to the settings and the command you\nwant to run::\n\n $ multiwait --settings /path/to/settings.yaml echo foo\n\nHere ``echo foo`` will only be run once Redis has finished loading its dataset\nin memory, the ``/path/to/lockfile`` has disappeared, and ``/path/to/socket``\nexists.\n\nYou can also specify simple conditions directly from the command line::\n\n $ multiwait --cond file-absent:path=/path/to/lockfile,timeout=3 echo foo\n\nThe command will replace the ``multiwait`` process, keeping the same PID, so\nit's safe for use in process managers.\n\nIf no command is specified, check all conditions and exit with a non-zero\nreturn code if one of them fails.\n\nConditions\n==========\n\nThe conditions to fulfill before running the commands are described in the\n``conditions`` key of the settings file. It must be a list containing\nconditions definitions. Each entry must contain an object with the condition\nname as the single key, and arguments to the definition. As a shortcut you can\nalso write the condition name alone if doesn't take arguments or you just want\nto use the defaults; in the example above ``redis-dataset-loaded`` is a\nshortcut for ``redis-dataset-loaded: {}``.\n\nAll conditions at least accept the following arguments:\n\ntimeout\n Maximum execution time for the condition, in seconds before giving up. The\n default is no timeout.\n\nwarmup\n Sleep for this amount of time before starting testing for the condition.\n The default is no warm-up time.\n\ntest_interval\n An interval in seconds between two tests. The default is 0.1 second.\n\nGlobal default arguments can be specified in the ``defaults`` top-level key in\nthe settings file. They are overridden by the conditions-specific; in the\nexample above all conditions have a 60 seconds timeout, except ``file-present``\nwhich has a 15 seconds timeout.\n\nBuilt-in conditions\n-------------------\n\nredis-dataset-loaded\n\n Wait until Redis has finished loading its dataset in memory. Requires the\n `redis `_ package.\n\n * ``host``: the host of the Redis server (default: \"localhost\")\n * ``port``: the port number of the Redis server (default: 6379)\n * ``password``: the password used to connect to the Redis server (default:\n no password)\n * ``ignore_connection_errors``: ignore connection errors (default: True)\n\nfile-present\n\n Wait until a file is present on the filesystem.\n\n * ``path`` (required): the path of the file\n\nfile-absent\n\n Wait until a file is not present on the filesystem.\n\n * ``path`` (required): the path of the file\n\nx11-running\n\n Wait until the X11 system is running.\n\n * ``default_display``: for systems not using Xauthority cookies, try to\n connect to this display (default: \":0\")\n\n\nNews\n====\n\n0.1\n---\n\nFirst release, mostly untested, don't use it ;)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/flupke/multiwait", "keywords": "", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "multiwait", "package_url": "https://pypi.org/project/multiwait/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/multiwait/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/flupke/multiwait" }, "release_url": "https://pypi.org/project/multiwait/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Wait for stuff to happen before running a command", "version": "0.2.1" }, "last_serial": 1400622, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2a7290f706273838fdba4ee01189645d", "sha256": "7a8339d5166dcbff0bc09e981bd1ad95c5d75bae7344452ea78ea5e7241852de" }, "downloads": -1, "filename": "multiwait-0.1.tar.gz", "has_sig": false, "md5_digest": "2a7290f706273838fdba4ee01189645d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6459, "upload_time": "2014-08-19T12:39:38", "url": "https://files.pythonhosted.org/packages/d1/86/e31335ddbcdfabb8db80b145e8754835b1f5c1d170b4fc6741a4f66d85db/multiwait-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "af6f33a189c50e86f5231c272f120159", "sha256": "f38ec2cc5f8c1f5f0ab0096f6687b0ace7a6c3ad33517432691cc52b2ecbe556" }, "downloads": -1, "filename": "multiwait-0.1.1.tar.gz", "has_sig": false, "md5_digest": "af6f33a189c50e86f5231c272f120159", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6412, "upload_time": "2014-08-19T19:55:11", "url": "https://files.pythonhosted.org/packages/67/10/e75405a73879f34b43f2893666818e117af70210a9767e980a5720ef6b08/multiwait-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "12f7fe4c7f63db11dd3de70570d6e626", "sha256": "e8503309448985f8622181262e360412dc0f36ab1f1244554037a1770348c6c2" }, "downloads": -1, "filename": "multiwait-0.1.2.tar.gz", "has_sig": false, "md5_digest": "12f7fe4c7f63db11dd3de70570d6e626", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6430, "upload_time": "2014-10-14T09:03:54", "url": "https://files.pythonhosted.org/packages/f7/45/1ee8eafa2685e5900dc95a6b4be4fea5b2ae7bcfcf483e3a0243c8739259/multiwait-0.1.2.tar.gz" } ], "0.2": [], "0.2.1": [ { "comment_text": "", "digests": { "md5": "408862acb44268f4df42d860edbbb241", "sha256": "f3f4fa2ff8930f3861308ca87fb44355c666c2172a8c74ffe4e66f7a3c78619f" }, "downloads": -1, "filename": "multiwait-0.2.1.tar.gz", "has_sig": false, "md5_digest": "408862acb44268f4df42d860edbbb241", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8459, "upload_time": "2015-01-28T21:27:51", "url": "https://files.pythonhosted.org/packages/fa/f3/cdbce9afe04542ef1f3f15ac6858d061bf11b1f4f237d70ffc0a5cabf597/multiwait-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "408862acb44268f4df42d860edbbb241", "sha256": "f3f4fa2ff8930f3861308ca87fb44355c666c2172a8c74ffe4e66f7a3c78619f" }, "downloads": -1, "filename": "multiwait-0.2.1.tar.gz", "has_sig": false, "md5_digest": "408862acb44268f4df42d860edbbb241", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8459, "upload_time": "2015-01-28T21:27:51", "url": "https://files.pythonhosted.org/packages/fa/f3/cdbce9afe04542ef1f3f15ac6858d061bf11b1f4f237d70ffc0a5cabf597/multiwait-0.2.1.tar.gz" } ] }