{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "## plz-cmd\n\n[![Build Status](https://travis-ci.org/m3brown/plz.svg?branch=master)](https://travis-ci.org/m3brown/plz)\n[![Coverage Status](https://coveralls.io/repos/github/m3brown/plz/badge.svg?branch=master)](https://coveralls.io/github/m3brown/plz?branch=master)\n\nA shell command to execute standard/repeatable commands in a git repo\n\n### Installation\n\nInstall plz at the system level so that it only has to be installed once.\n\n```bash\npip install plz-cmd\n\n# sudo may be required on your machine\nsudo pip install plz-cmd\n```\n\nIt can also be installed inside a virtualenv. However, this means you'll have\nto install plz-cmd for each each virtualenv in use.\n\n```bash\nvirtualenv venv\n. venv/bin/activate\n\npip install plz-cmd\n```\n\n### Example\n\nplz looks for a `.plz.yaml` file either in the current directory or in the root\nof the git repo you're currently in. This file can (and should) be checked into\nversion control.\n\nFor a .plz.yaml file located in the git root directory, commands run will be\nexecuted relative to that directory, not the current directory.\n\nSuppose we have the following `.plz.yaml` file:\n\n```yaml\n- id: run\n name: runserver\n cmd: ./manage.py runserver\n- id: test\n name: test code\n cmd:\n - ./manage.py test\n - yarn test\n- id: setup\n name: setup apps\n cmd:\n - pipenv install\n - pipenv run ./manage.py migrate\n - yarn install\n- id: ls\n cmd: ls\n```\n\nThe following commands would be available:\n\n```bash\nplz run\nplz test\nplz setup\n```\n\n### Globbing\n\nplz supports asterisk expansion. For example, the cmd `ls *.py` will work as expected.\n\n### Runtime arguments\n\nplz supports passing custom arguments when running the plz command. For example:\n\n```\n# bind to port 8001 instead of the default 8000\nplz run 127.0.0.1:8001\n```\n\nAny passed arguments will be tested to see if they are file paths relative to\nthe current directory when running the command. Using this repo as an example:\n\n```\nbash$ ls .*.yaml\n.plz.yaml .pre-commit-config.yaml\n\nbash$ cd plz\n\nbash$ plz ls ../.*.yaml\n\n[INFO] Using config: /path/plz/.plz.yaml\n\n===============================================================================\nRunning command: ls\n===============================================================================\n\n.plz.yaml\n.pre-commit-config.yaml\n\n[INFO] Process complete, return code: 0\n\nbash$ plz ls __*.py\n\n[INFO] Using config: /path/plz/.plz.yaml\n\n===============================================================================\nRunning command: ls\n===============================================================================\n\nplz/__init__.py\n\n[INFO] Process complete, return code: 0\n```\n\n### Development\n\nSetting up for development is easy when plz is already installed!\n\n```\ngit clone https://github.com/m3brown/plz\ncd plz\nplz setup\nplz test\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "plz-cmd", "package_url": "https://pypi.org/project/plz-cmd/", "platform": "", "project_url": "https://pypi.org/project/plz-cmd/", "project_urls": null, "release_url": "https://pypi.org/project/plz-cmd/0.5.2/", "requires_dist": [ "PyYAML (>=3.0)", "colorama (>=0.3.0)", "sh (>=1.12.14)" ], "requires_python": "", "summary": "command line app for running configurable shell commands", "version": "0.5.2" }, "last_serial": 5226787, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8342dc95b73d9e53c04ce02157dedbd3", "sha256": "0e161cc87131ffba4072a13349bd3b62a4a4b5e181b52e1387dd0ba8df252e5f" }, "downloads": -1, "filename": "plz_cmd-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8342dc95b73d9e53c04ce02157dedbd3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3559, "upload_time": "2018-07-03T15:14:53", "url": "https://files.pythonhosted.org/packages/4e/54/32e3457d2308c0879eb630bf518c27a1b585215c28906373e7a117546c97/plz_cmd-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bcfeed406597bd11932cc854fa354e9", "sha256": "2588d588daff8db6752693bcb1c89f44adfdd8131090b6c398e468df53a03e5c" }, "downloads": -1, "filename": "plz-cmd-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3bcfeed406597bd11932cc854fa354e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3741, "upload_time": "2018-07-03T15:14:55", "url": "https://files.pythonhosted.org/packages/82/e4/d28c46bf8666919b81d34fb641e7ef689983da244a8bd15a2f451e883ef5/plz-cmd-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "01f6a8efb8ff1269539f4a7494d01115", "sha256": "738b3576da1efe4ddc1bdfd082247e4967ddedd832fe2939748bc8aa09d581b9" }, "downloads": -1, "filename": "plz_cmd-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "01f6a8efb8ff1269539f4a7494d01115", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3557, "upload_time": "2018-07-03T15:19:45", "url": "https://files.pythonhosted.org/packages/ba/d5/d1d5c492fe1a5958edc53d8ab65e78476cdae76588b6a3826e814ff100ed/plz_cmd-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ab4df81ad14c02d90ad4dde4edbb312", "sha256": "7e9c8f30716dd7e9b33aacd169923aa4ad970d9402d8a1f7493f4855a4c644d2" }, "downloads": -1, "filename": "plz-cmd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7ab4df81ad14c02d90ad4dde4edbb312", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3735, "upload_time": "2018-07-03T15:19:47", "url": "https://files.pythonhosted.org/packages/bc/9c/75ad1339042edd077e9e4114ddc1931ad37f764e1af92794e3f44372c6f0/plz-cmd-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e752a1074734e7b3e0eb80bead53eabc", "sha256": "c3896e17fe7f5f7014dbd6e47f08d5a900a1fc33d65e4a077796c4e59a72d699" }, "downloads": -1, "filename": "plz_cmd-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e752a1074734e7b3e0eb80bead53eabc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5770, "upload_time": "2018-07-20T11:13:14", "url": "https://files.pythonhosted.org/packages/0a/17/d1c0df24c818f287ab7effaf670fc87a0c90899169f7719e35dcc94303c7/plz_cmd-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df122d0f25c436d59de382f9bf5da2fc", "sha256": "1d39ab6a055cc2ae2eef62f5bd201484eee0687a2e7dd868b21562676ae4897c" }, "downloads": -1, "filename": "plz-cmd-0.2.0.tar.gz", "has_sig": false, "md5_digest": "df122d0f25c436d59de382f9bf5da2fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4383, "upload_time": "2018-07-20T11:13:15", "url": "https://files.pythonhosted.org/packages/07/9e/23b3999eb76f5534d927660fed98e4cd9b7ac3a261293be813429c50c9b4/plz-cmd-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c5f683711e5bde587b19780ebc2d38a2", "sha256": "16ab20f886ed9dafec92e0fc842141726799bd04ca475dc2621e386910ae80db" }, "downloads": -1, "filename": "plz_cmd-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c5f683711e5bde587b19780ebc2d38a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5898, "upload_time": "2018-07-20T12:17:03", "url": "https://files.pythonhosted.org/packages/a3/77/747e43908a07538685627eaacb0bd064ab7e7f3a80c26eee84d10d017f08/plz_cmd-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00735103c6e9f87bf1bb1e0f3c651686", "sha256": "a8f5c3ff6135de4c720f62ac73ab5225b59790b2befc198191bca73f2af37332" }, "downloads": -1, "filename": "plz-cmd-0.3.0.tar.gz", "has_sig": false, "md5_digest": "00735103c6e9f87bf1bb1e0f3c651686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4537, "upload_time": "2018-07-20T12:17:04", "url": "https://files.pythonhosted.org/packages/18/e6/79ae342b9c8de6a84255899eb6c80bb62742a9bb7910ff7374f9b2afb8cc/plz-cmd-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "22d6abb516bfbb63402d1b9bcb2339ae", "sha256": "0511616b8d606215c58d85a72d6d893410b1bf15494e4cd9144a10339fa914d6" }, "downloads": -1, "filename": "plz_cmd-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "22d6abb516bfbb63402d1b9bcb2339ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6439, "upload_time": "2018-08-10T01:30:14", "url": "https://files.pythonhosted.org/packages/08/28/a51a7f53ecb82202e2aeec434f26380b3e71ddf0ccf921f3d5695c4d5750/plz_cmd-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88ec0469027b487b4a122e66fa38faa4", "sha256": "3ab5a49843ec3bf88b442e0467c937d90b7352b8b0092127550191af34617f30" }, "downloads": -1, "filename": "plz-cmd-0.4.0.tar.gz", "has_sig": false, "md5_digest": "88ec0469027b487b4a122e66fa38faa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5095, "upload_time": "2018-08-10T01:30:15", "url": "https://files.pythonhosted.org/packages/f9/5f/db274ca8778473371407ad933edfea48ef1b8329e57326b40b30381965cb/plz-cmd-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "258cd34d120480cccfe31e2a257de7b0", "sha256": "e1d6471705f22dcb249a0d1da9a48d90bac3eb49d1bd321a477db41347325fbf" }, "downloads": -1, "filename": "plz_cmd-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "258cd34d120480cccfe31e2a257de7b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6344, "upload_time": "2018-08-12T16:01:43", "url": "https://files.pythonhosted.org/packages/dc/5c/70f05483490aafbc49a5f6a3473c7191b521a620b88c19180116b7f34cf1/plz_cmd-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da742c807979aa83db967c69da18670c", "sha256": "82855dac9b0b8950c7fa163765b5454dfbafb4c78e0f3f1ed159185537a958d8" }, "downloads": -1, "filename": "plz-cmd-0.5.0.tar.gz", "has_sig": false, "md5_digest": "da742c807979aa83db967c69da18670c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5034, "upload_time": "2018-08-12T16:01:44", "url": "https://files.pythonhosted.org/packages/19/d7/fc3fb74db41fddcedcfab01e35a85bb39d3c5a4acfac0e447e257b1d5fcf/plz-cmd-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "8972e8a68da78b9b929d78f78533e0e1", "sha256": "1e656731aee18db1285c6cc9e767e72377a5b7017f7d4e5f6321ecc8c501910e" }, "downloads": -1, "filename": "plz_cmd-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8972e8a68da78b9b929d78f78533e0e1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7179, "upload_time": "2019-03-23T22:31:14", "url": "https://files.pythonhosted.org/packages/d9/ce/d26877bdcb6f686791483270babd9d5b8df54f3a63fda7830eac1c7910e3/plz_cmd-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af33f6306008b0d83b76b49420860f92", "sha256": "0789548bf4fb640690e7008db6a51a162bdde299cc26a5779f13bbfc68d9dd4a" }, "downloads": -1, "filename": "plz-cmd-0.5.1.tar.gz", "has_sig": false, "md5_digest": "af33f6306008b0d83b76b49420860f92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5043, "upload_time": "2019-03-23T22:31:16", "url": "https://files.pythonhosted.org/packages/96/d7/bd1763557eb99608fd9baae51da5fdaca642a4ce837e9c9ffd4bf75e0700/plz-cmd-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "266f5175d86cd24ee854aa14d42b74ca", "sha256": "3b4e677eb205f7777677a5deba38e84fc7023d0cca80232adf40da18bdc83ba2" }, "downloads": -1, "filename": "plz_cmd-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "266f5175d86cd24ee854aa14d42b74ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7181, "upload_time": "2019-05-04T22:45:48", "url": "https://files.pythonhosted.org/packages/4c/38/e7080ace8b21acf5ff094e014afc9aaf5347806a5e16ab20d665fc2de7c6/plz_cmd-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73e2dd00550619cbafd12b0b1d005260", "sha256": "93903f10a7a2800c25fca3624bea4c8fae498777f087c3e01727df03bd778d14" }, "downloads": -1, "filename": "plz-cmd-0.5.2.tar.gz", "has_sig": false, "md5_digest": "73e2dd00550619cbafd12b0b1d005260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5026, "upload_time": "2019-05-04T22:45:50", "url": "https://files.pythonhosted.org/packages/18/c5/cdbd8c27339ee7224a478ae5664579fd62d8494aaa1e4a87b84022f7914a/plz-cmd-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "266f5175d86cd24ee854aa14d42b74ca", "sha256": "3b4e677eb205f7777677a5deba38e84fc7023d0cca80232adf40da18bdc83ba2" }, "downloads": -1, "filename": "plz_cmd-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "266f5175d86cd24ee854aa14d42b74ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7181, "upload_time": "2019-05-04T22:45:48", "url": "https://files.pythonhosted.org/packages/4c/38/e7080ace8b21acf5ff094e014afc9aaf5347806a5e16ab20d665fc2de7c6/plz_cmd-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73e2dd00550619cbafd12b0b1d005260", "sha256": "93903f10a7a2800c25fca3624bea4c8fae498777f087c3e01727df03bd778d14" }, "downloads": -1, "filename": "plz-cmd-0.5.2.tar.gz", "has_sig": false, "md5_digest": "73e2dd00550619cbafd12b0b1d005260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5026, "upload_time": "2019-05-04T22:45:50", "url": "https://files.pythonhosted.org/packages/18/c5/cdbd8c27339ee7224a478ae5664579fd62d8494aaa1e4a87b84022f7914a/plz-cmd-0.5.2.tar.gz" } ] }