{ "info": { "author": "Matthew Tardiff", "author_email": "mattrix@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "Bashup |Version| |Build| |Coverage| |Health|\n============================================\n\n|Compatibility| |Implementations| |Format| |Downloads|\n\nA (toy) language that compiles to bash.\nYou can think of bashup as just a little syntactic sugar sprinkled on top of bash;\nany valid bash script is also a valid bashup script.\n\n *Just a spoonful of sugar makes the bashisms go down...*\n\n\n.. code:: bash\n\n #!/bin/bash\n\n @fn hi greeting='Hello', target {\n echo \"${greeting}, ${target}!\"\n }\n\n hi --target='World'\n\n\nInstallation:\n\n.. code:: shell\n\n $ pip install bashup\n\n\nCompile and run the above example:\n\n.. code:: shell\n\n $ bashup -i above_example.bashup -o above_example.sh\n $ bash above_example.sh\n Hello, World!\n\n\nOr just run it directly:\n\n.. code:: shell\n\n $ bashup -r above_example.bashup\n Hello, World!\n\n\nCompiled code (``above_example.sh``):\n\n.. code:: bash\n\n #!/bin/bash\n\n #\n # usage: hi [--greeting=] --target= [ARGS]\n #\n hi() {\n local greeting='Hello'\n local target\n local target__set=0\n local args=()\n\n while (( $# )); do\n if [[ \"${1}\" == --greeting=* ]]; then\n greeting=${1#--greeting=}\n elif [[ \"${1}\" == --target=* ]]; then\n target=${1#--target=}\n target__set=1\n else\n args+=(\"${1}\")\n fi\n shift\n done\n\n if ! (( target__set )); then\n echo \"[ERROR] The --target parameter must be given.\"\n return 1\n fi\n\n __hi \"${greeting}\" \"${target}\" \"${args[@]}\"\n }\n\n __hi() {\n local greeting=${1}\n local target=${2}\n shift 2\n\n echo \"${greeting}, ${target}!\"\n }\n\n hi --target='World'\n\n\nSupported Bash Versions\n-----------------------\n\nThe generated bash code works with bash 3.1 and above (tested against 3.1 to 4.3).\n\n\nNifty Features\n--------------\n\nBashup tries its best to match the indentation of its compiled code against your hand-written bash.\nFor example:\n\n.. code:: bash\n\n @fn hi greeting='Hello', target {\n echo \"${greeting}, ${target}!\"\n }\n\n...compiles to:\n\n.. code:: bash\n\n #\n # usage: hi [--greeting=] --target= [ARGS]\n #\n hi() {\n local greeting='Hello'\n local target\n local target__set=0\n local args=()\n\n while (( $# )); do\n if [[ \"${1}\" == --greeting=* ]; then\n greeting=${1#--greeting=}\n ...\n\n\nPlanned Improvements\n--------------------\n\nSee `this document for planned features`_.\n\n\nChangelog\n---------\n\n**2.0.2**\n\n- Fixed PyPI release.\n\n\n**2.0.1**\n\n- Fixed - |Issue9|__\n\n\n**2.0.0**\n\n- Fixed - |Issue7|__\n\n\n**1.1.2**\n\n- Badges now use shields.io.\n- Fixed - |Issue5|__\n\n\n**1.1.1**\n\n- Tweaked the README.\n\n\n**1.1.0**\n\n- Fixed - |Issue2|__\n- Feature - |Issue3|__\n- Fixed - |Issue4|__\n\n\n**1.0.0**\n\n- Initial release, supports ``@fn`` syntax.\n\n\n.. Badges\n\n.. |Build| image:: https://travis-ci.org/themattrix/bashup.svg?branch=master\n :target: https://travis-ci.org/themattrix/bashup\n.. |Coverage| image:: https://img.shields.io/coveralls/themattrix/bashup.svg\n :target: https://coveralls.io/r/themattrix/bashup\n.. |Health| image:: https://codeclimate.com/github/themattrix/bashup/badges/gpa.svg\n :target: https://codeclimate.com/github/themattrix/bashup\n.. |Version| image:: https://img.shields.io/pypi/v/bashup.svg\n :target: https://pypi.python.org/pypi/bashup\n.. |Downloads| image:: https://img.shields.io/pypi/dm/bashup.svg\n :target: https://pypi.python.org/pypi/bashup\n.. |Compatibility| image:: https://img.shields.io/pypi/pyversions/bashup.svg\n :target: https://pypi.python.org/pypi/bashup\n.. |Implementations| image:: https://img.shields.io/pypi/implementation/bashup.svg\n :target: https://pypi.python.org/pypi/bashup\n.. |Format| image:: https://img.shields.io/pypi/format/bashup.svg\n :target: https://pypi.python.org/pypi/bashup\n\n\n.. Other Links\n\n.. _this document for planned features: TODO.rst\n\n\n.. Issues\n\n.. |Issue9| replace:: Issue #9: \"Misc updates\"\n__ https://github.com/themattrix/bashup/issues/9\n\n.. |Issue7| replace:: Issue #7: \"Named arguments in functions should use --arg=value instead of --arg value\"\n__ https://github.com/themattrix/bashup/issues/7\n\n.. |Issue5| replace:: Issue #5: \"Make compatible with latest \"themattrix/tox\" Docker baseimage.\"\n__ https://github.com/themattrix/bashup/issues/5\n\n.. |Issue2| replace:: Issue #2: \"Run generated bash code against multiple versions of bash.\"\n__ https://github.com/themattrix/bashup/issues/2\n\n.. |Issue3| replace:: Issue #3: \"Allow running of bashup scripts directly.\"\n__ https://github.com/themattrix/bashup/issues/3\n\n.. |Issue4| replace:: Issue #4: \"Last positional parameter to @fn may not be passed to generated function.\"\n__ https://github.com/themattrix/bashup/issues/4\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/themattrix/bashup", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bashup", "package_url": "https://pypi.org/project/bashup/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/bashup/", "project_urls": { "Homepage": "https://github.com/themattrix/bashup" }, "release_url": "https://pypi.org/project/bashup/2.0.2/", "requires_dist": [ "docopt", "Jinja2", "pyparsing", "temporary (>=3,<4)" ], "requires_python": "", "summary": "A (toy) language that compiles to bash.", "version": "2.0.2" }, "last_serial": 2144001, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0237e34840da04de5c27474e05ed2af1", "sha256": "02eee2a65f2f1c958880d4160e74341411c355362fe3a0971d7d1fbb38c99edd" }, "downloads": -1, "filename": "bashup-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0237e34840da04de5c27474e05ed2af1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8999, "upload_time": "2015-04-15T18:54:22", "url": "https://files.pythonhosted.org/packages/44/44/bc1e80b35e7adb80ae7633c665ba82ac4a053376a77fc8da9632c5d6a3e3/bashup-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cf605695bbf823925f309c5fce7380b", "sha256": "66e58499e9cd6f6c22ffac036dd4eaeca58764861f0254c310d55ddab4e666f2" }, "downloads": -1, "filename": "bashup-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5cf605695bbf823925f309c5fce7380b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6029, "upload_time": "2015-04-15T18:54:19", "url": "https://files.pythonhosted.org/packages/2f/71/aa45f5bd00e88ec724f7c48a6b90a57eadd945529dad106b3f24740eba70/bashup-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "f80bd3a4043cfa42f98cfa2297e3ef21", "sha256": "7dbafcb515adc74cafec67854df6a7d18b78afec1684f1b0a5958bb79ef219a6" }, "downloads": -1, "filename": "bashup-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f80bd3a4043cfa42f98cfa2297e3ef21", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9349, "upload_time": "2015-04-17T00:08:39", "url": "https://files.pythonhosted.org/packages/29/81/603bad94a5376a46d8a4f62b0872f0770455846f6075693cfba49b905f7a/bashup-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "040e345a7259c69f276300af9bec90da", "sha256": "88763e3cc683a6f0f5e0a94d3a89423b8f690381a57a36493e158eecd9babf57" }, "downloads": -1, "filename": "bashup-1.1.0.tar.gz", "has_sig": false, "md5_digest": "040e345a7259c69f276300af9bec90da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6648, "upload_time": "2015-04-17T00:08:36", "url": "https://files.pythonhosted.org/packages/31/bd/ead8224ef5251a54a9886d849501df4569f93e07585a8f9d730003ed0f33/bashup-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "2272b3559759130ee1834b84f6bf2787", "sha256": "a7ebed1dd042fe33a47901eeabc7e7da9eaafd19a614edab5c82a88d22297a66" }, "downloads": -1, "filename": "bashup-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2272b3559759130ee1834b84f6bf2787", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9346, "upload_time": "2015-04-17T00:18:02", "url": "https://files.pythonhosted.org/packages/6d/1b/baf0e6b47cfc65dd0d27a6c588adb61809bd006bac78b466ef8158038678/bashup-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f2624797db7bb0e899410855c2a88b6", "sha256": "8bafa81729269e8f56e5251b9569112f66046937fb252f91490489d4bea495a4" }, "downloads": -1, "filename": "bashup-1.1.1.tar.gz", "has_sig": false, "md5_digest": "9f2624797db7bb0e899410855c2a88b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6746, "upload_time": "2015-04-17T00:17:59", "url": "https://files.pythonhosted.org/packages/5e/4a/ef946b2fb27d264b7a44c2beec5adda4686dc812adb55d5d8d0c9b64c46a/bashup-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "35dd6cc9b192207b20a4fdd02a34aaa1", "sha256": "f648fc0af02a410e63ba900fc6b7c7e23866f501cdbf87d46a284cd82f53e89b" }, "downloads": -1, "filename": "bashup-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "35dd6cc9b192207b20a4fdd02a34aaa1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9362, "upload_time": "2016-01-02T21:31:59", "url": "https://files.pythonhosted.org/packages/3d/e1/2647530a42be21b1b625dd2e86a9b910036d48dfb34de85a4a3343914585/bashup-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2995b3df26281525948a100068cee2ca", "sha256": "3dd162a78cebc46ad99934860e325a784b54c0665a3e3c83e93b6f726b3121a2" }, "downloads": -1, "filename": "bashup-1.1.2.tar.gz", "has_sig": false, "md5_digest": "2995b3df26281525948a100068cee2ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6868, "upload_time": "2016-01-02T21:32:11", "url": "https://files.pythonhosted.org/packages/b8/e9/5388ac17d580576e721e8acbf0ec629e40b78e1739d54da263a092afd146/bashup-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "d70a6a87e29c4584e883299fee01eeb9", "sha256": "ad7d532181651a256a73ffd84a3c6774a1c613a43aab46023d8247e711ac6c89" }, "downloads": -1, "filename": "bashup-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d70a6a87e29c4584e883299fee01eeb9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9330, "upload_time": "2016-01-03T19:06:07", "url": "https://files.pythonhosted.org/packages/ed/25/e49c276d06baecc57e392dd29353d2a53b6871ed56a60abc6dbcd1e3d34d/bashup-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cab180fd9416e23fc07048cdb72cb091", "sha256": "2d6e11e37e5ced7d5bac10d566920d2e788c7923ca66d978646d37dc02d7338c" }, "downloads": -1, "filename": "bashup-2.0.0.tar.gz", "has_sig": false, "md5_digest": "cab180fd9416e23fc07048cdb72cb091", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6895, "upload_time": "2016-01-03T19:06:15", "url": "https://files.pythonhosted.org/packages/87/2b/8afba81089b156d6a98649f10109690ef6751760c5d5ccbaa3a113f0f426/bashup-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c83f8c3c100aadce384bb6a5c94166e1", "sha256": "ad965eae5dab3c138a6bc500a2136688d2b07200cd5c5e839cae43a8ebd08809" }, "downloads": -1, "filename": "bashup-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c83f8c3c100aadce384bb6a5c94166e1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7780, "upload_time": "2016-05-31T15:41:51", "url": "https://files.pythonhosted.org/packages/7f/5a/90689a769c7b9e9fecc6402a2cb054eafa59cd26168796dc1b60098787bd/bashup-2.0.1-py2.py3-none-any.whl" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "bac1bcc78bb28e6b5c4c81c9d41dd4d2", "sha256": "3ffa2b723f78e5eda159bea8a67ebb99215600df299b8a03b86cffa9aff5506a" }, "downloads": -1, "filename": "bashup-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bac1bcc78bb28e6b5c4c81c9d41dd4d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7777, "upload_time": "2016-06-01T02:42:13", "url": "https://files.pythonhosted.org/packages/4b/a5/87d43661f2c273ca5e7e92190dc90fc403db91fe2fd65bdf26adf3ef4923/bashup-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d2da082551bb42d9d3fa894ba5160a7", "sha256": "b433fda415e76f8ac0c86fbb5389f5b67cccccbaaf301a39b6ed191c2dfd6c7e" }, "downloads": -1, "filename": "bashup-2.0.2.tar.gz", "has_sig": false, "md5_digest": "4d2da082551bb42d9d3fa894ba5160a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6642, "upload_time": "2016-06-01T02:42:36", "url": "https://files.pythonhosted.org/packages/31/1d/8aee7145db8d5bc19016c407dd7e2d6fc3f9dc162f7c5d821b8b9c07d25f/bashup-2.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bac1bcc78bb28e6b5c4c81c9d41dd4d2", "sha256": "3ffa2b723f78e5eda159bea8a67ebb99215600df299b8a03b86cffa9aff5506a" }, "downloads": -1, "filename": "bashup-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bac1bcc78bb28e6b5c4c81c9d41dd4d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7777, "upload_time": "2016-06-01T02:42:13", "url": "https://files.pythonhosted.org/packages/4b/a5/87d43661f2c273ca5e7e92190dc90fc403db91fe2fd65bdf26adf3ef4923/bashup-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d2da082551bb42d9d3fa894ba5160a7", "sha256": "b433fda415e76f8ac0c86fbb5389f5b67cccccbaaf301a39b6ed191c2dfd6c7e" }, "downloads": -1, "filename": "bashup-2.0.2.tar.gz", "has_sig": false, "md5_digest": "4d2da082551bb42d9d3fa894ba5160a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6642, "upload_time": "2016-06-01T02:42:36", "url": "https://files.pythonhosted.org/packages/31/1d/8aee7145db8d5bc19016c407dd7e2d6fc3f9dc162f7c5d821b8b9c07d25f/bashup-2.0.2.tar.gz" } ] }