{ "info": { "author": "Johann Petrak", "author_email": "johann.petrak@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Topic :: Software Development", "Topic :: Software Development :: Code Generators" ], "description": "# licenseheaders\n\n[![PyPi version](https://img.shields.io/pypi/v/licenseheaders.svg)](https://pypi.python.org/pypi/licenseheaders/)\n[![Python compatibility](https://img.shields.io/pypi/pyversions/licenseheaders.svg)](https://pypi.python.org/pypi/licenseheaders/)\n\nA tool to update, change or add license headers to all files of any of \nthe supported types (see below) in or below some directory.\n\n## Usage\n\n```\nusage: licenseheaders [-h] [-V] [-v] [-d DIR] [-t TMPL] [-y YEARS] [-o OWNER]\n [-n PROJECTNAME] [-u PROJECTURL] [--enc ENCODING]\n [--safesubst]\n\nPython license header updater\n\noptional arguments:\n -h, --help show this help message and exit\n -V, --version show program's version number and exit\n -v, --verbose increases log verbosity (can be specified multiple\n times)\n -d DIR, --dir DIR The directory to recursively process (default: .).\n -b Backup all files that get modified to a copy with added extension .bak\n -t TMPL, --tmpl TMPL Template name or file to use.\n -y YEARS, --years YEARS\n Year or year range to use.\n -o OWNER, --owner OWNER\n Name of copyright owner to use.\n -n PROJECTNAME, --projname PROJECTNAME\n Name of project to use.\n -u PROJECTURL, --projurl PROJECTURL\n Url of project to use.\n --enc ENCODING Encoding of program files (default: utf-8)\n --safesubst Do not raise error if template variables cannot be\n substituted.\n\nKnown extensions: ['.java', '.scala', '.groovy', '.jape', '.js', '.sh', '.csh', '.py', '.pl', '.pl', '.py', '.xml', '.sql', '.c', '.cc', '.cpp', 'c++', '.h', '.hpp', '.rb', '.cs', '.vb', '.erl', '.src', '.config', '.schema']\n\nIf -t/--tmpl is specified, that header is added to (or existing header replaced for) all source files of known type\nIf -t/--tmpl is not specified byt -y/--years is specified, all years in existing header files\n are replaced with the years specified\n\nExamples:\n # add a lgpl-v3 header and set the variables for year, owner, project and url to the given values\n # process all files in the current directory and below\n licenseheaders -t lgpl-v3 -y 2012-2014 -o ThisNiceCompany -n ProjectName -u http://the.projectname.com\n # only update the year in all existing headers\n # process all files in the current directory and below\n licenseheaders -y 2012-2015\n # only update the year in all existing headers, process the given directory\n licenseheaders -y 2012-2015 -d /dir/where/to/start/\n```\n\nIf licenseheaders is installed as a package (from pypi for instance), one can interact with it as a command line tool:\n\n```\npython -m licenseheaders -t lgpl3 -c \"Eager Hacker\"\n```\n\nor directly:\n\n```\nlicenseheaders -t lgpl3 -c \"Eager Hacker\"\n```\n\n\n# Installation\n\nDownload ``licenseheaders.py`` from ``http://github.com/johann-petrak/licenseheaders`` or :\n\n```\npip install licenseheaders\n```\n\n## Template names and files\n\nThis library comes with a number of predefined templates. If a template name is specified\nwhich when matched against all predefined template names matches exactly one as a substring,\nthen that template is used. Otherwise the name is expected to be the path of file.\n\nIf a template does not contain any variables of the form `${varname}` it is used as is.\nOtherwise the program will try to replace the variable from one of the following \nsources:\n\n- an environment variable with the same name but the prefix `LICENSE_HEADERS_` added\n- the command line option that can be used to set the variable (see usage)\n\n\n## Supported file types and how they are processed\n\njava:\n- extensions .java, .scala, .groovy, .jape, .js\n- also used for Javascript\n- only headers that use Java block comments are recognised as existing headers\n- the template text will be wrapped in block comments\n\nscript:\n- extensions .sh, .csh\n\nperl:\n- extension .pl\n\npython:\n- extension .py\n\nxml:\n- extension .xml\n\nsql:\n- extension .sql\n\nc:\n- extensions .c, .cc, .cpp, .c++, .h, .hpp\n\nruby:\n- extension .rb\n\ncsharp:\n- extension .cs\n\nvisualbasic:\n- extension .vb\n\nerlang:\n- extensions .erl, .src, .config, .schema\n\n## License\n\nLicensed under the term of `MIT License`. See file [LICENSE.txt](LICENSE.txt).\n\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": "http://github.com/johann-petrak/licenseheaders", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "licenseheaders", "package_url": "https://pypi.org/project/licenseheaders/", "platform": "", "project_url": "https://pypi.org/project/licenseheaders/", "project_urls": { "Homepage": "http://github.com/johann-petrak/licenseheaders" }, "release_url": "https://pypi.org/project/licenseheaders/0.7/", "requires_dist": [ "regex" ], "requires_python": ">=3.5", "summary": "Add or change license headers for all files in a directory", "version": "0.7" }, "last_serial": 5480779, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "dc1941f3b196b897eaf5950a0e23ac17", "sha256": "d48bd2fa20cece7d20667d5dd3d2e75870f6e849e377ce989e62e565d85e5b69" }, "downloads": -1, "filename": "licenseheaders-0.4-py3.6.egg", "has_sig": false, "md5_digest": "dc1941f3b196b897eaf5950a0e23ac17", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 27004, "upload_time": "2019-04-24T13:07:05", "url": "https://files.pythonhosted.org/packages/4d/18/df817207c12a8e17d7daa3f6acd9482a5b5b1ff48ae82b2da616c7fc3e61/licenseheaders-0.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f40c8306a25c3cc8a94ae59d4ca2cab4", "sha256": "13332118a528e165c40e9261a2d251a66cdb22c3bed94baf01a73f6a47c6b95f" }, "downloads": -1, "filename": "licenseheaders-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f40c8306a25c3cc8a94ae59d4ca2cab4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 22529, "upload_time": "2019-04-24T13:07:01", "url": "https://files.pythonhosted.org/packages/44/53/48af72c20a071192f9e00adf4a1f2426e29c24f96ac9a8024d6704fb0b69/licenseheaders-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a25c6e02d0fb4a7abdafe9394af3eb79", "sha256": "8cc8868012ad69e3e078aaf4241717156e71658b649bc823fb68caa0ce130bef" }, "downloads": -1, "filename": "licenseheaders-0.4.tar.gz", "has_sig": false, "md5_digest": "a25c6e02d0fb4a7abdafe9394af3eb79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9747, "upload_time": "2019-04-24T13:07:06", "url": "https://files.pythonhosted.org/packages/2e/78/c222c30451066b8e1419619c4ab25ca56e4e3da9900bdd49335427df337f/licenseheaders-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "56c2c11434ebe72c0612b251e6d828f0", "sha256": "b7c1f21d13e4458bf963a09947925366ab54354a9462dfa7a260092ac3c60744" }, "downloads": -1, "filename": "licenseheaders-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "56c2c11434ebe72c0612b251e6d828f0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,!=2.*", "size": 22632, "upload_time": "2019-04-24T13:42:50", "url": "https://files.pythonhosted.org/packages/08/75/0179b623ecb329f4f114cfeba9ce590776b7a0641bc92a805aac9e1d8b28/licenseheaders-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "653ad70f681f9cf55ccf37dba8c1a3ff", "sha256": "b50205f8d62b5fef273a63a47b0c7f772c5caaecd815768d3dbd12490d8d516f" }, "downloads": -1, "filename": "licenseheaders-0.5.tar.gz", "has_sig": false, "md5_digest": "653ad70f681f9cf55ccf37dba8c1a3ff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,!=2.*", "size": 9656, "upload_time": "2019-04-24T13:42:52", "url": "https://files.pythonhosted.org/packages/db/fd/d796ceeb7098014a38b02757b18f7e0e11424a4cb7ffd9f31745fd231106/licenseheaders-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "001775445173233cb6da6d8571b9ec43", "sha256": "e4ab500cbf30ceb0c4900fd46cb33275cc93dff432f3087befebe4c3f5b3bb65" }, "downloads": -1, "filename": "licenseheaders-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "001775445173233cb6da6d8571b9ec43", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12349, "upload_time": "2019-05-05T10:29:53", "url": "https://files.pythonhosted.org/packages/52/70/0e3513032e0adc35e0bd05f66682fa9271838d92d1b4f6c751dac60a7668/licenseheaders-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "786c8d2e6e0db8281e1f31832d03fd2e", "sha256": "907dd3c052c909922c059b8ffd4722a71eb48c140f0271bd97c81126a8d2fa75" }, "downloads": -1, "filename": "licenseheaders-0.6.tar.gz", "has_sig": false, "md5_digest": "786c8d2e6e0db8281e1f31832d03fd2e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9490, "upload_time": "2019-05-05T10:29:55", "url": "https://files.pythonhosted.org/packages/bc/6d/8b3bd8ba08e3dfc4ab4103fc9874d57e69e490427a1a4fc9d72d7314d7bc/licenseheaders-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "4bdf77ef40dd6c269e3e4b2322bd7365", "sha256": "82896cf31e8942d3508342e97d3dc3105a7f9ebd05fe582d02c5c60fa332897f" }, "downloads": -1, "filename": "licenseheaders-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "4bdf77ef40dd6c269e3e4b2322bd7365", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 22947, "upload_time": "2019-07-03T11:03:47", "url": "https://files.pythonhosted.org/packages/6b/de/353c83e7c28668a9744df470c6ceb05aef466ae4bff7433a3cc7c09d8f36/licenseheaders-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fca4303e9df9b0675ec738f9db4ea1e", "sha256": "cbe8548510d9247509d57e329c2416b0b85f8e2f05fbe7636d093d63585b3672" }, "downloads": -1, "filename": "licenseheaders-0.7.tar.gz", "has_sig": false, "md5_digest": "1fca4303e9df9b0675ec738f9db4ea1e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9786, "upload_time": "2019-07-03T11:03:49", "url": "https://files.pythonhosted.org/packages/d8/45/017fb29d6bd6fcc33cd4d3edcac77a304d7a052b1044999484bb5730ca9c/licenseheaders-0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4bdf77ef40dd6c269e3e4b2322bd7365", "sha256": "82896cf31e8942d3508342e97d3dc3105a7f9ebd05fe582d02c5c60fa332897f" }, "downloads": -1, "filename": "licenseheaders-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "4bdf77ef40dd6c269e3e4b2322bd7365", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 22947, "upload_time": "2019-07-03T11:03:47", "url": "https://files.pythonhosted.org/packages/6b/de/353c83e7c28668a9744df470c6ceb05aef466ae4bff7433a3cc7c09d8f36/licenseheaders-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fca4303e9df9b0675ec738f9db4ea1e", "sha256": "cbe8548510d9247509d57e329c2416b0b85f8e2f05fbe7636d093d63585b3672" }, "downloads": -1, "filename": "licenseheaders-0.7.tar.gz", "has_sig": false, "md5_digest": "1fca4303e9df9b0675ec738f9db4ea1e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9786, "upload_time": "2019-07-03T11:03:49", "url": "https://files.pythonhosted.org/packages/d8/45/017fb29d6bd6fcc33cd4d3edcac77a304d7a052b1044999484bb5730ca9c/licenseheaders-0.7.tar.gz" } ] }