Check if files have a proper copyright header.
Project description
Copycheck
=========
Copyright 2016 Janus Friis Nielsen.
This file is part of *copycheck*.
.. image:: https://circleci.com/gh/janusdn/copycheck/tree/master.svg?style=shield&circle-token=4112427381753afc2f073a61fba23263d1f86d13
:target: https://circleci.com/gh/janusdn/copycheck/tree/master
Introduction
------------
*Copycheck* inspects the beginning of all files reports any file without a copyright
header.
The recognition of copyright headers is very rudimentary. *Copycheck* scans the
10 first lines for occurrences of the word "copyright" in any casing.
Installation
------------
*copycheck* is available for install through `PyPI`_:
.. code-block:: bash
$ pip install copycheck
*copycheck* can also be installed from source with:
.. code-block:: bash
$ python setup.py install
.. _`PyPI`: http://pypi.python.org/pypi/copycheck
.. _`setuptools`: https://pypi.python.org/pypi/setuptools
Usage
-----
The tool will show a description of usage when given the
`--help` option:
.. code-block:: bash
$ copycheck --help
usage: copycheck [-h] [-v] [--debug DEBUG] {check} ...
Check source files for missing copyright headers
positional arguments:
{check} sub-commands
check check for missing copyright headers
optional arguments:
-h, --help show this help message and exit
-v, --verbose Enable verbose output
--debug DEBUG Enable debug output
Check all files in current directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check .
Check all files in a directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory
Check all files in a number of directories
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory path/to/another/directory /and/so/on/..
Ignore files
~~~~~~~~~~~~
You can put a files called `.copycheckignore` in the base directory of your
project.
The syntax of the files is Git wildmatch. The same as used in .gitignore.
Get files sorted
~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory | sort
Add copyright header
~~~~~~~~~~~~~~~~~~~~
Add copyright header to all Python files available from current directory"
.. code-block:: bash
$ copycheck check . | sort | grep "\.py" | xargs -L1 sed -i '' '1i\
# Copyright 2016 (c) Janus Friis Nielsen, all rights reserved. \
\
'
License
-------
*copycheck* is licensed under the `Mozilla Public License Version 2.0`_. See
`LICENSE`_ or the `FAQ`_ for more information.
In summary, you may use *copycheck* with any closed or open source project
without affecting the license of the larger work so long as you:
- give credit where credit is due,
- and release any custom changes made to *copycheck*.
.. _`Mozilla Public License Version 2.0`: http://www.mozilla.org/MPL/2.0
.. _`LICENSE`: LICENSE
.. _`FAQ`: http://www.mozilla.org/MPL/2.0/FAQ.html
Source
------
The source code for *copycheck* is available from the GitHub repo
`janusdn/copycheck`_.
.. _`janusdn/copycheck`: https://github.com/janusdn/copycheck
Contributing
------------
When contributing changes remember to update the `CHANGELOG.rst`.
Building copycheck
------------------
Make sure you have a Python 3.5 environment with the requirements.
E.g. use pyenv:
.. code-block:: bash
$ pyenv virtualenv 3.5.0 copycheck-venv
$ pyenv activate copycheck-venv
Make sure pip is up-to-date:
.. code-block:: bash
$ pip install --upgrade pip
Install requirements:
.. code-block:: bash
$ pip install --upgrade -r requirements.txt
Build the wheel:
.. code-block:: bash
$ make
Development
~~~~~~~~~~~
Use the following command to install the package in the local
environment during development.
.. code-block:: bash
$ pip install -e .
This allows you to change the code and test *copycheck*
directly.
Releasing
---------
Do the following to release a new version:
1. Commit changes
2. Push changes
3. Merge with master
4. Update local master
5. Find the next release version, e.g. 6.6.6
6. Create new branch with name core/release-6.6.6
7. Bump version in __about__.py
8. Run `./release.sh 6.6.6`
Upload to Pypi
--------------
First, perform a test upload to verify everything is nice and dandy.
Then perform the real upload.
Make sure the following environment variables have been properly defined:
.. code-block:: bash
$ export PYPI_TEST_USERNAME="<username>"
$ export PYPI_TEST_PASSWORD="<your_test_password>"
$ export PYPI_USERNAME="<your_password>"
$ export PYPI_PASSWORD="<username>"
Test upload to pypi
~~~~~~~~~~~~~~~~~~~
You may need to register on the Pypi test server. This can be done here:
.. code-block:: bash
$ https://testpypi.python.org/pypi
Register:
.. code-block:: bash
$ twine register -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whl
Upload
.. code-block:: bash
$ twine upload -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whl
Goto:
.. code-block:: bash
$ https://testpypi.python.org/pypi/Copycheck/6.6.6
An check that everything looks nice.
You can check the HTML by running:
.. code-block:: bash
$ python setup.py --long-description | rst2html.py --no-raw > output.html
Test if it installs (do it in a different environment):
.. code-block:: bash
$ pip install -i https://testpypi.python.org/pypi copycheck
Real upload to Pypi
~~~~~~~~~~~~~~~~~~~
Upload
.. code-block:: bash
$ twine upload -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} -r https://pypi.python.org/pypi dist/copycheck-6.6.6-py3-none-any.whl
Goto:
.. code-block:: bash
$ https://pypi.python.org/pypi/copycheck/6.6.6
And check that everything looks nice.
Thanks
------
A bug thank you goes to the author of the *pathspec* package. Using *pathspec*
made it a lot easier to build this tool.
Change Log
==========
All notable changes to the copycheck tool will be
documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
See http://keepachangelog.com for information on how to update this file.
[Unreleased]
------------
[1.0.3]
-------
Fixed
~~~~~
- Typos and formatting in README
[1.0.2]
-------
Fixed
~~~~~
- Typos and formatting in README
[1.0.1]
-------
Added
~~~~~
- Initial version
[1.0.0]
-------
Added
~~~~~
- Initial version
Changed
~~~~~~~
- No changes
Deprecated
~~~~~~~~~~
- No changes
Removed
~~~~~~~
- No changes
Fixed
~~~~~
- No changes
Security
~~~~~~~~
- No changes
=========
Copyright 2016 Janus Friis Nielsen.
This file is part of *copycheck*.
.. image:: https://circleci.com/gh/janusdn/copycheck/tree/master.svg?style=shield&circle-token=4112427381753afc2f073a61fba23263d1f86d13
:target: https://circleci.com/gh/janusdn/copycheck/tree/master
Introduction
------------
*Copycheck* inspects the beginning of all files reports any file without a copyright
header.
The recognition of copyright headers is very rudimentary. *Copycheck* scans the
10 first lines for occurrences of the word "copyright" in any casing.
Installation
------------
*copycheck* is available for install through `PyPI`_:
.. code-block:: bash
$ pip install copycheck
*copycheck* can also be installed from source with:
.. code-block:: bash
$ python setup.py install
.. _`PyPI`: http://pypi.python.org/pypi/copycheck
.. _`setuptools`: https://pypi.python.org/pypi/setuptools
Usage
-----
The tool will show a description of usage when given the
`--help` option:
.. code-block:: bash
$ copycheck --help
usage: copycheck [-h] [-v] [--debug DEBUG] {check} ...
Check source files for missing copyright headers
positional arguments:
{check} sub-commands
check check for missing copyright headers
optional arguments:
-h, --help show this help message and exit
-v, --verbose Enable verbose output
--debug DEBUG Enable debug output
Check all files in current directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check .
Check all files in a directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory
Check all files in a number of directories
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory path/to/another/directory /and/so/on/..
Ignore files
~~~~~~~~~~~~
You can put a files called `.copycheckignore` in the base directory of your
project.
The syntax of the files is Git wildmatch. The same as used in .gitignore.
Get files sorted
~~~~~~~~~~~~~~~~
.. code-block:: bash
$ copycheck check path/to/directory | sort
Add copyright header
~~~~~~~~~~~~~~~~~~~~
Add copyright header to all Python files available from current directory"
.. code-block:: bash
$ copycheck check . | sort | grep "\.py" | xargs -L1 sed -i '' '1i\
# Copyright 2016 (c) Janus Friis Nielsen, all rights reserved. \
\
'
License
-------
*copycheck* is licensed under the `Mozilla Public License Version 2.0`_. See
`LICENSE`_ or the `FAQ`_ for more information.
In summary, you may use *copycheck* with any closed or open source project
without affecting the license of the larger work so long as you:
- give credit where credit is due,
- and release any custom changes made to *copycheck*.
.. _`Mozilla Public License Version 2.0`: http://www.mozilla.org/MPL/2.0
.. _`LICENSE`: LICENSE
.. _`FAQ`: http://www.mozilla.org/MPL/2.0/FAQ.html
Source
------
The source code for *copycheck* is available from the GitHub repo
`janusdn/copycheck`_.
.. _`janusdn/copycheck`: https://github.com/janusdn/copycheck
Contributing
------------
When contributing changes remember to update the `CHANGELOG.rst`.
Building copycheck
------------------
Make sure you have a Python 3.5 environment with the requirements.
E.g. use pyenv:
.. code-block:: bash
$ pyenv virtualenv 3.5.0 copycheck-venv
$ pyenv activate copycheck-venv
Make sure pip is up-to-date:
.. code-block:: bash
$ pip install --upgrade pip
Install requirements:
.. code-block:: bash
$ pip install --upgrade -r requirements.txt
Build the wheel:
.. code-block:: bash
$ make
Development
~~~~~~~~~~~
Use the following command to install the package in the local
environment during development.
.. code-block:: bash
$ pip install -e .
This allows you to change the code and test *copycheck*
directly.
Releasing
---------
Do the following to release a new version:
1. Commit changes
2. Push changes
3. Merge with master
4. Update local master
5. Find the next release version, e.g. 6.6.6
6. Create new branch with name core/release-6.6.6
7. Bump version in __about__.py
8. Run `./release.sh 6.6.6`
Upload to Pypi
--------------
First, perform a test upload to verify everything is nice and dandy.
Then perform the real upload.
Make sure the following environment variables have been properly defined:
.. code-block:: bash
$ export PYPI_TEST_USERNAME="<username>"
$ export PYPI_TEST_PASSWORD="<your_test_password>"
$ export PYPI_USERNAME="<your_password>"
$ export PYPI_PASSWORD="<username>"
Test upload to pypi
~~~~~~~~~~~~~~~~~~~
You may need to register on the Pypi test server. This can be done here:
.. code-block:: bash
$ https://testpypi.python.org/pypi
Register:
.. code-block:: bash
$ twine register -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whl
Upload
.. code-block:: bash
$ twine upload -u ${PYPI_TEST_USERNAME} -p ${PYPI_TEST_PASSWORD} -r https://testpypi.python.org/pypi dist/Copycheck-6.6.6-py3-none-any.whl
Goto:
.. code-block:: bash
$ https://testpypi.python.org/pypi/Copycheck/6.6.6
An check that everything looks nice.
You can check the HTML by running:
.. code-block:: bash
$ python setup.py --long-description | rst2html.py --no-raw > output.html
Test if it installs (do it in a different environment):
.. code-block:: bash
$ pip install -i https://testpypi.python.org/pypi copycheck
Real upload to Pypi
~~~~~~~~~~~~~~~~~~~
Upload
.. code-block:: bash
$ twine upload -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} -r https://pypi.python.org/pypi dist/copycheck-6.6.6-py3-none-any.whl
Goto:
.. code-block:: bash
$ https://pypi.python.org/pypi/copycheck/6.6.6
And check that everything looks nice.
Thanks
------
A bug thank you goes to the author of the *pathspec* package. Using *pathspec*
made it a lot easier to build this tool.
Change Log
==========
All notable changes to the copycheck tool will be
documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
See http://keepachangelog.com for information on how to update this file.
[Unreleased]
------------
[1.0.3]
-------
Fixed
~~~~~
- Typos and formatting in README
[1.0.2]
-------
Fixed
~~~~~
- Typos and formatting in README
[1.0.1]
-------
Added
~~~~~
- Initial version
[1.0.0]
-------
Added
~~~~~
- Initial version
Changed
~~~~~~~
- No changes
Deprecated
~~~~~~~~~~
- No changes
Removed
~~~~~~~
- No changes
Fixed
~~~~~
- No changes
Security
~~~~~~~~
- No changes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Built Distribution
copycheck-1.0.3-py3-none-any.whl
(10.8 kB
view hashes)
Close
Hashes for copycheck-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc0a282622ed3fc956962d57ebc15b507bc7852ff07c0a05215d7342fcd0b362 |
|
MD5 | 4552aaa8f8af017957146becdc59d64c |
|
BLAKE2-256 | ad5e6dbe9fcab19295daa12873f32558e9d847f5afbac3ec6405483d0dbb2163 |