{ "info": { "author": "mega-mac-slice", "author_email": "megamacslice@protonmail.com", "bugtrack_url": null, "classifiers": [], "description": "# stacky [![pipeline status](https://gitlab.com/mega-mac-slice/stacky/badges/master/pipeline.svg)](https://gitlab.com/mega-mac-slice/stacky/commits/master)\n\nA service management tool for local development.\n\n## Requirements\n- `python 3`\n- `pipenv`\n\n## Installation\n### Development\n```bash\ngit clone git@gitlab.com:mega-mac-slice/stacky.git\ncd stacky\nmake install\n\nstacky --help\n```\n### Brew\n```bash\nbrew tap mega-mac-slice/tap && brew install stacky\n```\n\n## Configuration \nA \"Stacky File\" is a json file in a project directory typically named _.stacky.json_ that looks like:\n```json\n{\n \"name\": \"dev-application\",\n \"commands\": {\n \"start\": \"make start\",\n \"status\": \"make status\"\n },\n \"stack\": [\n \"git@gitlab.com:mega-mac-slice/dev-postgres.git\",\n \"git@gitlab.com:mega-mac-slice/dev-redis.git\",\n \"git@gitlab.com:mega-mac-slice/dev-elasticsearch.git\"\n ],\n \"extra\": {\n \"kafka\": [\n \"git@gitlab.com:mega-mac-slice/dev-fast-data-dev.git\"\n ]\n }\n}\n```\nWhere we defined some commands for the project itself and also the project's dependencies on postgres, redis and elasticsearch.\n\n## Usage\n### Start\n```bash\nstacky start\n```\nThis will do the following:\n- Iterate through each dependency defined in stack and retrieve it if it doesn't already exist locally.\n- For each dependency, check if it also has a .stacky.json and retrieve those dependencies defined in stack locally.\n- For each dependency, check it's status and start it if needed.\n\nWith our example .stacky.json we would begin with:\n```text\ndev-application \\\n .stacky.json\n Makefile\n```\nAnd after running `stacky start` would have the dependencies checked out locally adjacent to the project.\n```text\ndev-application \\\n .stacky.json\n Makefile\ndev-postgres \\\n .stacky.json\ndev-redis \\\n .stacky.json\ndev-elasticsearch \\ \n .stacky.json\n```\n\n### Status\n```bash\nstacky status\n```\nThis will iterate through the dependencies and check it's status. Letting you know if the stack for your application is running.\n```bash\n> stacky status\n[INFO] dev-application - ok\n[INFO] dev-postgres - ok\n[INFO] dev-redis - ok\n[INFO] dev-elasticsearch - ok\n```\n\n### Stop\n```text\nstacky stop\n```\nThis will iterate through the dependencies and stop them.\n```bash\n> stacky stop\n[INFO] stopping | dev-elasticsearch\n[INFO] stopping | dev-redis\n[INFO] stopping | dev-postgres\n```\n\n### Run\n```bash\nstacky run command-name\n```\nAdditional commands can be defined in _commands_ and invoked with run.\n```bash\n> stacky run reset\n[INFO] dev-postgres - ok\n[INFO] dev-redis - ok\n[INFO] dev-elasticsearch - ok\n```\nWith the following possible results:\n- `ok` - command existed and ran successfully.\n- `fail` - command existed and ran unsuccessfully.\n- `skip` - command did not exist.\n\n### Paths\n```text\nstacky paths\n```\nProvides porcelain output of dependency paths intended for usage with external tools.\n```bash\n> stacky paths\n/dev/src/dev-elasticsearch\n/dev/src/dev-redis\n/dev/src/dev-postgres\n\n> stacky paths | xargs rm -rf\n```\n\n\n## Command Lifecycle\n### install - TODO\n### start\n### status\n### stop\n\n## Supported Dependencies\n### git ssh/https\n### local \n### http/https - TODO", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/mega-mac-slice/stacky", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "mms-stacky", "package_url": "https://pypi.org/project/mms-stacky/", "platform": "", "project_url": "https://pypi.org/project/mms-stacky/", "project_urls": { "Homepage": "https://gitlab.com/mega-mac-slice/stacky" }, "release_url": "https://pypi.org/project/mms-stacky/0.0.5/", "requires_dist": null, "requires_python": "", "summary": "A service management tool for local development.", "version": "0.0.5" }, "last_serial": 5317932, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "02ba56a52cb7223aaeeb41a5ae835efa", "sha256": "09e50260858064254ae40cc46fdaac165b9416b27725358cf74327c7842cfe3a" }, "downloads": -1, "filename": "mms-stacky-0.0.5.tar.gz", "has_sig": false, "md5_digest": "02ba56a52cb7223aaeeb41a5ae835efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7108, "upload_time": "2019-05-26T04:58:47", "url": "https://files.pythonhosted.org/packages/5f/d1/f2ef1d2aabc84d27f0c884182de540b384d2d8762e4465527c6417517872/mms-stacky-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "02ba56a52cb7223aaeeb41a5ae835efa", "sha256": "09e50260858064254ae40cc46fdaac165b9416b27725358cf74327c7842cfe3a" }, "downloads": -1, "filename": "mms-stacky-0.0.5.tar.gz", "has_sig": false, "md5_digest": "02ba56a52cb7223aaeeb41a5ae835efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7108, "upload_time": "2019-05-26T04:58:47", "url": "https://files.pythonhosted.org/packages/5f/d1/f2ef1d2aabc84d27f0c884182de540b384d2d8762e4465527c6417517872/mms-stacky-0.0.5.tar.gz" } ] }