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.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
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 |
|
BLAKE2b-256 | ad5e6dbe9fcab19295daa12873f32558e9d847f5afbac3ec6405483d0dbb2163 |