{ "info": { "author": "Thorgate", "author_email": "hi@thorgate.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2" ], "description": "# tg-hammer\n\n[![Build Status](https://travis-ci.org/thorgate/tg-hammer.svg?branch=master)](https://travis-ci.org/thorgate/tg-hammer)\n[![PyPI version](https://badge.fury.io/py/tg-hammer.svg)](https://badge.fury.io/py/tg-hammer)\n\nHelpers for fabric based deployments.\n\n## Quickstart\n\nInstall tg-hammer::\n\n pip install tg-hammer\n\n## Features\n\nSee the documentation for detailed information.\nhttps://tg-hammer.readthedocs.org\n\n### VCS\n\nHammer provides unified helper api for both git and Mercurial\nbased projects. It can automatically detect which version control\nsystem to use based on the current project (by inspecting project_root).\n\n### Services\n\nHammer contains management helpers for the following unix service daemon utilities:\n\n - upstart\n - systemd\n - supervisor\n\n## Testing\n\nHammer includes functional tests that are executed inside Docker containers. The file\n`run-tests.sh` executes three `docker-compose` commands that first brings up a slave server,\nthen a master server which executes the tests during building, and brings both of these down\nafter execution. The master acts as the developer machine and the slave as the server\nwhere deployments are run on.\n\nTo run the tests manually, first comment out the line:\n\n py.test\n\nand uncomment the line\n\n # tail -f /dev/null\n\ninside `docker-entrypoint-master.sh`. This will keep both the master and slave running when\nyou execute\n\n docker-compose up --build\n\nNow you can enter a `bash` shell inside the master by executing:\n\n docker exec -it tghammer_master_1 /bin/bash\n\nAt this point you can simply execute\n\n py.test\n\nto run the tests.\n\nEither method of running the tests will print tons of output and will (hopefully) result in all tests\npassing. Sadly it is not possible to use `py.test` capturing to reduce the amount of spam because\nthis program is not compatible with `fabric`'s internal capturing logic.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thorgate/tg-hammer", "keywords": "tg-hammer hammer fabric vcs git hg", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "tg-hammer", "package_url": "https://pypi.org/project/tg-hammer/", "platform": "", "project_url": "https://pypi.org/project/tg-hammer/", "project_urls": { "Homepage": "https://github.com/thorgate/tg-hammer" }, "release_url": "https://pypi.org/project/tg-hammer/0.6.8/", "requires_dist": null, "requires_python": "", "summary": "Helpers for fabric based deployments.", "version": "0.6.8" }, "last_serial": 5571994, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "31697a6966c3dc1d4ed3178c8218f29a", "sha256": "98cd9d3e5e4620f62b73f3f40c23eb25d195f06938cd84f68e0c8ffb176b44ae" }, "downloads": -1, "filename": "tg-hammer-0.0.1.tar.gz", "has_sig": false, "md5_digest": "31697a6966c3dc1d4ed3178c8218f29a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7618, "upload_time": "2015-12-14T07:12:56", "url": "https://files.pythonhosted.org/packages/a8/91/c77f97119d056f19c6c55fbb2b2cedea0be3d4acc9793fa161e11b04dd13/tg-hammer-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7c5b7711e9e8b31c92736f02fa3afc46", "sha256": "f0953df6be7c1f040419d7deb0b1fef3852d829e01926601716b9cb50ca9acf7" }, "downloads": -1, "filename": "tg_hammer-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "7c5b7711e9e8b31c92736f02fa3afc46", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10503, "upload_time": "2015-12-14T07:43:01", "url": "https://files.pythonhosted.org/packages/40/98/cef1dda13bdf5690efb99612b9ad89d13216739e3af9b747b0fd06c30671/tg_hammer-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8e2fac5642dc652ea4e1c3f7badab20", "sha256": "f5f5c26d0e8f6760b4737f161cc06d3d7533136900b2b505482e2d5d6b0809f4" }, "downloads": -1, "filename": "tg-hammer-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d8e2fac5642dc652ea4e1c3f7badab20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7786, "upload_time": "2015-12-14T07:42:55", "url": "https://files.pythonhosted.org/packages/aa/02/243eca73cc11c2272e0344c9713298fbbfbd4af658f76234b2c81129aa1c/tg-hammer-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "f51a6fa34447480a2bbac4a2ede36901", "sha256": "763b5ab9eb2cd399fe2365569835fc641c55272ec7ab3773acbb1cbc09119222" }, "downloads": -1, "filename": "tg_hammer-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "f51a6fa34447480a2bbac4a2ede36901", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10517, "upload_time": "2015-12-14T08:06:11", "url": "https://files.pythonhosted.org/packages/b2/05/be8a15c7ffb3eac9194e1ee901b592df5ced6fb0cc81a9da8f0001139752/tg_hammer-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02cf60c2a06778b28c65f1c1ccc741b6", "sha256": "edca89ec0266e20281efdd488db1f8f4377af16dbbb7541b518806627e729c17" }, "downloads": -1, "filename": "tg-hammer-0.0.3.tar.gz", "has_sig": false, "md5_digest": "02cf60c2a06778b28c65f1c1ccc741b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7818, "upload_time": "2015-12-14T08:06:03", "url": "https://files.pythonhosted.org/packages/a8/77/e91567caa12e60aef1d373ed29dca1ab39b9755d4bf2a4d65c26eaf8f3f8/tg-hammer-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "18f34f529fe9221019ebcff6ab679837", "sha256": "495ed5c05d42175d936a5fe99aef70076659a0eb0d32773cd3fdc20ccc1aacd1" }, "downloads": -1, "filename": "tg-hammer-0.0.4.tar.gz", "has_sig": false, "md5_digest": "18f34f529fe9221019ebcff6ab679837", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8065, "upload_time": "2016-01-04T22:35:36", "url": "https://files.pythonhosted.org/packages/63/0b/ab0245da468794c666f95c1d3a2173cb1e2c27fbb0a80c3c7ed434248ef9/tg-hammer-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "9addf7893f7c29169f843c414fb0f7c2", "sha256": "a403129ac9497409f9ae549266229914ae931ed0651c13fa8476ba1bfba5b46a" }, "downloads": -1, "filename": "tg-hammer-0.0.5.tar.gz", "has_sig": false, "md5_digest": "9addf7893f7c29169f843c414fb0f7c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8187, "upload_time": "2016-01-04T22:40:30", "url": "https://files.pythonhosted.org/packages/24/6b/43d5b06f95394ddf3401538ed8664a22af62128343b676edaba24948fddb/tg-hammer-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "1293b725c3ef8f83ed1931bbbf7f9a51", "sha256": "fbdd724b36f15eae46c7ebaadc32dd93fdbde923a059f1cae465415df84b0d20" }, "downloads": -1, "filename": "tg-hammer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1293b725c3ef8f83ed1931bbbf7f9a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8208, "upload_time": "2016-05-30T09:28:30", "url": "https://files.pythonhosted.org/packages/79/db/ef4af2ea85e51a99a50fef183428563b1de62aa5f1dcf5ce3e747224e19d/tg-hammer-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ba3fd108344763ba34e40c4d968b4031", "sha256": "979eb7c14b468c8c34b4bfb1f36f1d81e8fc3b6034dc1f0205be57dac4cd935a" }, "downloads": -1, "filename": "tg-hammer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ba3fd108344763ba34e40c4d968b4031", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9590, "upload_time": "2016-06-07T08:48:56", "url": "https://files.pythonhosted.org/packages/2d/1a/4d04288f553ec6a782b789b967bc70ad57e9a3cfcdd4c0a606541f25b16e/tg-hammer-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "5e29180890883d95e7907574148fdfe6", "sha256": "108ac6e242b85aff4a57cc022799b9fea0a1058fe70c957f4fded79cda417002" }, "downloads": -1, "filename": "tg-hammer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5e29180890883d95e7907574148fdfe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9999, "upload_time": "2016-06-09T12:01:10", "url": "https://files.pythonhosted.org/packages/e8/e9/be96cae82b41d00a3ab61541c4a7b466dc692f90826bb05c064ecd07a66a/tg-hammer-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "fa4d5ec10f235e8b07ae3644eb83568b", "sha256": "9a5b6a3d5f13a68995c7abfbe6a3a5106e1277e56a8e5b33c00ddab5d90d4b1d" }, "downloads": -1, "filename": "tg-hammer-0.2.2.tar.gz", "has_sig": false, "md5_digest": "fa4d5ec10f235e8b07ae3644eb83568b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9999, "upload_time": "2016-07-22T16:32:33", "url": "https://files.pythonhosted.org/packages/bf/ba/4bf01a73cf62e8c39d040e8ace6a7bb0d5bbb04d6d7e70a1e01d3066f9b9/tg-hammer-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c60e2231282ee205e366f1f639a16311", "sha256": "f96f8f6aa83b86276dd35c6c70a7f33e8eef1aeee924fa1c96cf3475744f4f30" }, "downloads": -1, "filename": "tg-hammer-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c60e2231282ee205e366f1f639a16311", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10255, "upload_time": "2016-09-23T06:26:05", "url": "https://files.pythonhosted.org/packages/6e/40/7bf1af0a586b4e9d7ed8d30d8f90d8fa5c92276d44578e25f03f2c8132dd/tg-hammer-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "bef9ecfb6b5096ae5ec12f13b8d2e794", "sha256": "a4eace171fa32483e5337e91e24223eeb83a5c9933352c9211f6b8cbae868d12" }, "downloads": -1, "filename": "tg-hammer-0.4.0.tar.gz", "has_sig": false, "md5_digest": "bef9ecfb6b5096ae5ec12f13b8d2e794", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10496, "upload_time": "2016-10-14T11:51:00", "url": "https://files.pythonhosted.org/packages/fe/69/c08ac0d6428f61fc4754892144cd9a1f9b3f10ee1b9aceb1411c4eeacc05/tg-hammer-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "0d20fadae78b69380fbb4847ec3356b0", "sha256": "eef4c24d60488b8a5b6e11dd0b1714f578fde2775f0a85b3e16186dbd5f552a7" }, "downloads": -1, "filename": "tg-hammer-0.4.1.tar.gz", "has_sig": false, "md5_digest": "0d20fadae78b69380fbb4847ec3356b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10499, "upload_time": "2016-10-19T08:32:54", "url": "https://files.pythonhosted.org/packages/ec/b5/cb106701d83fb9a015e0ab41a51d0ad20d1b02b581832376d13dc14c35bc/tg-hammer-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "1aaccd202e9cecb6175eaed6244413ef", "sha256": "6a4690b4f2ffc8f18b36c8ba0855004a56893b49ba173c52a8ad8f9a10c5d5e7" }, "downloads": -1, "filename": "tg-hammer-0.4.2.tar.gz", "has_sig": false, "md5_digest": "1aaccd202e9cecb6175eaed6244413ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11452, "upload_time": "2016-10-26T15:11:08", "url": "https://files.pythonhosted.org/packages/be/ac/25eb4a9ec9033ded57e2974678a6bc6cd5056c61a08be68a8334dbf29178/tg-hammer-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "90e14f33d36ed1244e3fe2597d7e1645", "sha256": "56e4a458f05bb6194db1482a83b59883c042ea8f6c66db379a083d4cc636e413" }, "downloads": -1, "filename": "tg-hammer-0.4.3.tar.gz", "has_sig": false, "md5_digest": "90e14f33d36ed1244e3fe2597d7e1645", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11443, "upload_time": "2016-10-28T09:00:41", "url": "https://files.pythonhosted.org/packages/1e/a8/e58fa247c6f660b164ff4905961f1aebcc890827330c69e6ed0c3b5016d2/tg-hammer-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c4ab5da4c4c243b0fb0007f5271394b9", "sha256": "5b2c7c6277f9f7553287343663885ec1f7e78f75987e1a246e46e1013b8c5598" }, "downloads": -1, "filename": "tg-hammer-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c4ab5da4c4c243b0fb0007f5271394b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11500, "upload_time": "2016-12-19T14:23:21", "url": "https://files.pythonhosted.org/packages/0f/b5/c1743f2e63b700ab925e7a4b26f29c492e83528c70564a829ccc06742678/tg-hammer-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "7d89b949c1ebf158b4a44e1d77b21401", "sha256": "899c91cd92fafc2f96d2f61af605fcb2b6a4580174d51b07199cfafc79cd70bb" }, "downloads": -1, "filename": "tg-hammer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "7d89b949c1ebf158b4a44e1d77b21401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11740, "upload_time": "2017-03-10T10:04:16", "url": "https://files.pythonhosted.org/packages/18/65/06af07316ad1087bc52033a9f3b76c24397b5a1d8bf3e295430db0302fef/tg-hammer-0.5.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "e842cf91bac0ba266c7a9fddcbc02bcb", "sha256": "96036af930c615bd5387a25b1dba259e5897a7ea598421ee0ee53d846986fccb" }, "downloads": -1, "filename": "tg-hammer-0.6.2.tar.gz", "has_sig": false, "md5_digest": "e842cf91bac0ba266c7a9fddcbc02bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13655, "upload_time": "2017-07-27T08:13:48", "url": "https://files.pythonhosted.org/packages/a3/c2/810c411d262630c557631cf6d7f3740ca245a52e66ae67de2d46261e2669/tg-hammer-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "d61b971d0b65280e04f7fa880a96d7dd", "sha256": "e4ba17a5f12470480a3cbe1a75546dc6fab46d19b3d3b3eacc78f9a173372517" }, "downloads": -1, "filename": "tg-hammer-0.6.3.tar.gz", "has_sig": false, "md5_digest": "d61b971d0b65280e04f7fa880a96d7dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13874, "upload_time": "2017-08-31T16:36:58", "url": "https://files.pythonhosted.org/packages/24/09/a27357aa3cc645266810d8e0a897c91e5d1293f69f94a5baf1bc6bb6781c/tg-hammer-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "da88b9531bbf2b29a39a6aa79e0ef720", "sha256": "74099adc5a56842e22e8ec67ceeffab77a48b57fbd30ec12268b8419fb47529a" }, "downloads": -1, "filename": "tg-hammer-0.6.4.tar.gz", "has_sig": false, "md5_digest": "da88b9531bbf2b29a39a6aa79e0ef720", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13922, "upload_time": "2017-09-18T11:17:08", "url": "https://files.pythonhosted.org/packages/c8/3a/7ea6ef5acbc7bf31190fc2274b3c829a7bfefd921fe72ef29a0d1b95887c/tg-hammer-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "bbad28b5d870340f12b8a7fa63dbf894", "sha256": "15ab0e3b9e091c3df4bb76e5ce4f7ad22277ed3786cdbb55bfebff09870763e5" }, "downloads": -1, "filename": "tg-hammer-0.6.5.tar.gz", "has_sig": false, "md5_digest": "bbad28b5d870340f12b8a7fa63dbf894", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14987, "upload_time": "2018-01-24T15:35:32", "url": "https://files.pythonhosted.org/packages/92/5e/a618ff7f4eeeff6f819ff7d7218d3ab89508859357b96e466449b1d288f4/tg-hammer-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "d0ac8f63e1881bd2f6745942841a9c2e", "sha256": "6b5b97f1c29f4f834bcfbbce27b7efdd96066d4467aa9e144886eed304e93c3f" }, "downloads": -1, "filename": "tg-hammer-0.6.6.tar.gz", "has_sig": false, "md5_digest": "d0ac8f63e1881bd2f6745942841a9c2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14992, "upload_time": "2018-07-17T15:35:48", "url": "https://files.pythonhosted.org/packages/14/30/8ab46c725d97ee0917a0a0ffc67274ca681cc6759da7dfd82275926975ed/tg-hammer-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "f758ed94f929c3b8e71f9b0df826114b", "sha256": "8c9ac5745d6ae1c7156f94fb43b67bedfb4281fa96c3bd16fe122ed371374216" }, "downloads": -1, "filename": "tg-hammer-0.6.7.tar.gz", "has_sig": false, "md5_digest": "f758ed94f929c3b8e71f9b0df826114b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14988, "upload_time": "2018-08-29T10:20:30", "url": "https://files.pythonhosted.org/packages/16/fc/ceaeb603c4067f9818ec3b17078496cbf9edb799a837a881fa3ea821bd5d/tg-hammer-0.6.7.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "3e583df867796bc975d2acb52633a7c3", "sha256": "cd6e6b0d3d19246a65bf7781b8438edbd2121108b374aac88adb7efb598c8f9b" }, "downloads": -1, "filename": "tg-hammer-0.6.8.tar.gz", "has_sig": false, "md5_digest": "3e583df867796bc975d2acb52633a7c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15192, "upload_time": "2019-07-23T11:27:52", "url": "https://files.pythonhosted.org/packages/b7/db/62789014b3edfeeba04ae81205eb5a17436a9db17e8f3a3ded5bdf18255f/tg-hammer-0.6.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3e583df867796bc975d2acb52633a7c3", "sha256": "cd6e6b0d3d19246a65bf7781b8438edbd2121108b374aac88adb7efb598c8f9b" }, "downloads": -1, "filename": "tg-hammer-0.6.8.tar.gz", "has_sig": false, "md5_digest": "3e583df867796bc975d2acb52633a7c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15192, "upload_time": "2019-07-23T11:27:52", "url": "https://files.pythonhosted.org/packages/b7/db/62789014b3edfeeba04ae81205eb5a17436a9db17e8f3a3ded5bdf18255f/tg-hammer-0.6.8.tar.gz" } ] }