{ "info": { "author": "Steinn Eldjarn Sigurdarson", "author_email": "steinnes@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# ebenv\n[![CircleCI](https://circleci.com/gh/steinnes/ebenv.svg?style=svg)](https://circleci.com/gh/steinnes/ebenv)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/ebenv.svg)](https://pypi.org/project/ebenv/)\n[![PyPI Version](https://img.shields.io/pypi/v/ebenv.svg)](https://pypi.org/project/ebenv/)\nAWS Elastic Beanstalk environment extractor/utility\n\nThis is a command line utility to manage environment variables from \n[AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/details/) app\nenvironments, to either re-use the same configuration locally or to import\ninto another environment.\n\nCurrently two methods of extraction are supported, and one method to copy/sync\nvariables between environments:\n\n## env\n\n`env` dumps environment variables in a key=value format, example:\n\n```\n$ ebenv env app-name app-env-name\nAWS_ACCESS_KEY_ID=abcdefghijklmnopqrstvwuxyz\nBUGSNAG_API_KEY=deadbeefdeadbeefdeadbeef\nPARAM1=value\nPARAM2=value\n...\n\n$ ebenv env app-name app-env-name > envfile\n$ docker run --rm -it --env-file=envfile app/name\n...\n```\n\n\n## envdir\n\n`envdir` dumps environment variables into an *envdir* as used by tools such as\ndjb's [envdir](https://cr.yp.to/daemontools/envdir.html), runit's\n[chpst](http://smarden.org/runit/chpst.8.html), or one of the other clones,\nexample:\n\n```\n$ ebenv envdir app-name app-env-name\nfound 4 vars, will write to '.env/*' [y/N]: n\nExiting..\n```\n\n`envdir` will prompt before writing any files or creating the directory, and\na `--target_dir` option can be specified:\n\n```\n$ ebenv envdir app-name app-env-name --target_dir=.ebenv-copy\nfound 4 vars, will write to '.ebenv-copy/*' [y/N]: y\n.ebenv-copy did not exists, creating\n\n$ ls .ebenv-copy/\nAWS_ACCESS_KEY_ID BUGSNAG_API_KEY PARAM1 PARAM2\n\n```\n\nA simple `grep` can verify that the env files contain the desired data:\n```\n$ grep . .ebenv-copy/*\n.ebenv-copy/AWS_ACCESS_KEY_ID:abcdefghijklmnopqrstvwuxyz\n.ebenv-copy/BUGSNAG_API_KEY:deadbeefdeadbeefdeadbeef\n.ebenv-copy/PARAM1:value\n.ebenv-copy/PARAM2:value\n```\n\n## copy\n\n`copy` copies the environment variables from one environment within an EB app\nto another environment in the same app. Can optionally be used to remove vars\nfrom the destination environment, that are not found in the source environment.\n\n```\n$ ebenv copy app-name app-env-name new-app-env-name \nSource environment 'app-env-name' has 22 options\nPerforming environment update...\nDone, please check your EB web console to see the environment update progress\n```\n\nRight now `copy` will overwrite any values in the destination environment for\nkeys found in the source environment. If you specify the `--remove` option,\nit will remove any keys in the destination environment not found in the source\nenvironment.\n\n```\n$ ebenv copy app-name app-env-name new-app-env-name\nSource environment 'app-env-name' has 22 options\nWill remove 2 options from destination environment 'new-app-env-name'\n...\n```\n\nThis command is potentially very dangerous and destructive at this point,\nespecially if `--remove` is used. Use with care.\n\n# Setup\n\n```\n$ make\nvirtualenv venv\nNew python executable in /Users/ses/w/ebenv/venv/bin/python2.7\nAlso creating executable in /Users/ses/w/ebenv/venv/bin/python\nInstalling setuptools, pip, wheel...done.\nvenv/bin/python setup.py develop\n...\n```\n\nNow `ebenv` is installed and available in the local `venv`, and can be used\neither by activating the virtualenv (`source venv/bin/activate`) or by running\nit directly from the venv: `venv/bin/ebenv`.\n\n\n# Dependencies\n\n`ebenv` depends on `boto3` and relies on boto3 being able to find standard AWS\ncredentials either via `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` env vars\nin the local shell, or from `~/.aws/(config|credentials)`.\n\n\n# Future\n\nWrite more options for `copy`, it might be useful to prompt for every \ndetected change, to allow finer-grained copying of variables. Maybe a\n`--dryrun` switch to show the intended deltas.\n\nOther useful commands might include a way to set an environment based\non an `env` file or an `envdir`, basically the opposite of those two\ncommands in the utility right now.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/steinnes/ebenv", "keywords": "aws,elasticbeanstalk,environment", "license": "", "maintainer": "", "maintainer_email": "", "name": "ebenv", "package_url": "https://pypi.org/project/ebenv/", "platform": "", "project_url": "https://pypi.org/project/ebenv/", "project_urls": { "Homepage": "https://github.com/steinnes/ebenv" }, "release_url": "https://pypi.org/project/ebenv/0.3.1/", "requires_dist": null, "requires_python": "", "summary": "AWS Elastic Beanstalk environment dumper/extractor.", "version": "0.3.1" }, "last_serial": 5456813, "releases": { "0.1": [], "0.2": [ { "comment_text": "", "digests": { "md5": "a24ab89772da68081b6b0b4b3d8bf872", "sha256": "6d45e64f74b56e937b80fafdc1803b3655c1c9ea221293452f5bb9f691e98f89" }, "downloads": -1, "filename": "ebenv-0.2.tar.gz", "has_sig": false, "md5_digest": "a24ab89772da68081b6b0b4b3d8bf872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 961, "upload_time": "2016-02-15T18:12:30", "url": "https://files.pythonhosted.org/packages/6d/3b/af935ab40d465d9504b9a5c587e8bace9da5f949c48ae45beb9c0519ee04/ebenv-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "013636d5bfc042d4b96678b0295d582b", "sha256": "6f1837f32b3142d9ce1efe465ec191b00fe284193b2d96c2ca7c5f78943b900e" }, "downloads": -1, "filename": "ebenv-0.2.1.tar.gz", "has_sig": false, "md5_digest": "013636d5bfc042d4b96678b0295d582b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1023, "upload_time": "2016-02-17T15:59:50", "url": "https://files.pythonhosted.org/packages/6a/16/4b0035d1d65f3b86dc24711c02c6bc44ce8a8f65c01534cb8cf00a964a5a/ebenv-0.2.1.tar.gz" } ], "0.2.2": [], "0.2.6": [ { "comment_text": "", "digests": { "md5": "ad9a65aac6046704407d586c6b21b7b8", "sha256": "247e9ba0ccdc52fbafb1e405fc39ca12af61e3b1bb8e35f659f51251bfca7ad9" }, "downloads": -1, "filename": "ebenv-0.2.6.tar.gz", "has_sig": false, "md5_digest": "ad9a65aac6046704407d586c6b21b7b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2304, "upload_time": "2016-02-18T12:00:44", "url": "https://files.pythonhosted.org/packages/ed/73/413cc0490394c33061105e21a6c67acd8c020a6bee244a436930d914b4d6/ebenv-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "f4fc7540ef0405892bef7b9c2405a096", "sha256": "f41f7b78f9fdb3b3650a7c5e669f4ac52f31c51fa232ed3d3cc461fdcf1355e9" }, "downloads": -1, "filename": "ebenv-0.2.7.tar.gz", "has_sig": false, "md5_digest": "f4fc7540ef0405892bef7b9c2405a096", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2313, "upload_time": "2016-09-22T11:28:21", "url": "https://files.pythonhosted.org/packages/72/7f/a467ccff9a0303a975b8ea105e3305255c0e43ff2bc337ecd88f58fc974a/ebenv-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "cdce6274ffcc1e34b6967247d66ccdf2", "sha256": "468037f319e1aec6555ffa0f136a42791fe8b98c07bc27c03d3005f5c395e4aa" }, "downloads": -1, "filename": "ebenv-0.2.8-py2-none-any.whl", "has_sig": false, "md5_digest": "cdce6274ffcc1e34b6967247d66ccdf2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3527, "upload_time": "2017-02-23T17:22:12", "url": "https://files.pythonhosted.org/packages/ca/fb/7c9565cf03d3b1038b08e7aaf8ef97b4f31338f584ec2d5f7bf09d1b3c42/ebenv-0.2.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58ae3eb5b2fa0ca9949f6a36543f3ee5", "sha256": "4a32a39cae010b76462d8cf8291adf46508b248815cdb738d18862c19b3892cf" }, "downloads": -1, "filename": "ebenv-0.2.8.tar.gz", "has_sig": false, "md5_digest": "58ae3eb5b2fa0ca9949f6a36543f3ee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3311, "upload_time": "2017-02-23T17:22:11", "url": "https://files.pythonhosted.org/packages/cf/13/469a1855e813422cb9ae0a64ac15f11346cafb020aae3ee171e91f630170/ebenv-0.2.8.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "4d39eec96649affb36a8d459ba9dc845", "sha256": "8638a067971315af9a553cc04ab0046fe9bf419578dd22fa4bffaa90e6a5d6bf" }, "downloads": -1, "filename": "ebenv-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4d39eec96649affb36a8d459ba9dc845", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3951, "upload_time": "2019-06-27T12:54:40", "url": "https://files.pythonhosted.org/packages/c1/bb/9717abb992792db19c961bffa889eeff8e2dd0e9724b51759eb14b937345/ebenv-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0d9caa958d003478bf0f0762abf486e", "sha256": "d88b5463bf9c7f423904d70a03c61b704c82a14b3a27132a4328ae0a90eb2065" }, "downloads": -1, "filename": "ebenv-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a0d9caa958d003478bf0f0762abf486e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5017, "upload_time": "2019-06-27T12:54:37", "url": "https://files.pythonhosted.org/packages/78/41/1ddf3bfcb53effcfa464e6b78a5578ab8825bc440a735b1ca3fcec84700e/ebenv-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4bf72f483761972959778470ebbfd574", "sha256": "9b517c35706a7e4609470d312363a27b0fec7101942ebd24ebf2b261ac80c92f" }, "downloads": -1, "filename": "ebenv-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4bf72f483761972959778470ebbfd574", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5600, "upload_time": "2019-06-27T13:02:56", "url": "https://files.pythonhosted.org/packages/e2/d5/cdd0ab4bb0fddd392d2c1f8b86a21e1ed65054e2327d19ea6540e961d9b1/ebenv-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e31035f5d4550ec496f32cae0976268b", "sha256": "02bb1ba8a291eaf1600d82ba7c768b4bb893957e98f2d5c4de0f0418fabeba11" }, "downloads": -1, "filename": "ebenv-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e31035f5d4550ec496f32cae0976268b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5524, "upload_time": "2019-06-27T13:02:54", "url": "https://files.pythonhosted.org/packages/c3/aa/41a72ed5864831898b293e12ad03f0606452988174cc99d3761500a2024c/ebenv-0.3.1.tar.gz" } ], "0.3.1rc0": [ { "comment_text": "", "digests": { "md5": "2fde64d78649ac0ba17625696416e41f", "sha256": "e8338564e0c981291f992208b489f452a813f56f22a3fed63f509585bea5f84f" }, "downloads": -1, "filename": "ebenv-0.3.1rc0-py2-none-any.whl", "has_sig": false, "md5_digest": "2fde64d78649ac0ba17625696416e41f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5640, "upload_time": "2019-06-27T12:59:30", "url": "https://files.pythonhosted.org/packages/b8/e3/039e3598a8e031f20134845eff8236c4975f5c0103a2d6c49df27e8c87a3/ebenv-0.3.1rc0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f080079b9622fc32192ce4c49be4e6e", "sha256": "2cb2e4b99654150874e307d68d00953af6f7461c52f37c3fc302c6440377d112" }, "downloads": -1, "filename": "ebenv-0.3.1rc0.tar.gz", "has_sig": false, "md5_digest": "1f080079b9622fc32192ce4c49be4e6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5530, "upload_time": "2019-06-27T12:59:27", "url": "https://files.pythonhosted.org/packages/09/56/5d3e80c7d81ec6dff09bafc64b1f5833b5bbd441e3cbfb8b8d22a8a80f3c/ebenv-0.3.1rc0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4bf72f483761972959778470ebbfd574", "sha256": "9b517c35706a7e4609470d312363a27b0fec7101942ebd24ebf2b261ac80c92f" }, "downloads": -1, "filename": "ebenv-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4bf72f483761972959778470ebbfd574", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5600, "upload_time": "2019-06-27T13:02:56", "url": "https://files.pythonhosted.org/packages/e2/d5/cdd0ab4bb0fddd392d2c1f8b86a21e1ed65054e2327d19ea6540e961d9b1/ebenv-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e31035f5d4550ec496f32cae0976268b", "sha256": "02bb1ba8a291eaf1600d82ba7c768b4bb893957e98f2d5c4de0f0418fabeba11" }, "downloads": -1, "filename": "ebenv-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e31035f5d4550ec496f32cae0976268b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5524, "upload_time": "2019-06-27T13:02:54", "url": "https://files.pythonhosted.org/packages/c3/aa/41a72ed5864831898b293e12ad03f0606452988174cc99d3761500a2024c/ebenv-0.3.1.tar.gz" } ] }