PyBuilder plugin for copying additional resources
Python
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/main/python/pybuilder_smart_copy_resources
.gitignore
LICENSE
MANIFEST.in
README.md
VERSION
build.py

README.md

PyBuilder SmartCopyResources plugin

PyBuilder plugin for copying additional resources to various destinations, e.g. to a dist directory altogether with the package.

How to use it

In your build.py:

use_plugin("pypi:pybuilder_smart_copy_resources")

Then you can use smart_copy_resources plugin as part of built-in package task. You do not have to call package task directly if use any task which requires it, for example, publish task.

To configure the additional resource files you want to copy, use the following in your build.py:

@init
def set_properties(project):
    project.set_property("smart_copy_resources_basedir", "./dist")
    project.set_property("smart_copy_resources", {
        "path/to/file.ext": "./",
        "all/files/here/*": "./other/files",
        "${name}-additional-files/*": "./additional-files",
    })

smart_copy_resources_basedir is a base directory where the resource files are searched for. Files defined as keys in the smart_copy_resources dictionary will be copied into the locations specified by corresponding values. The files can be specified as glob patterns. Sources and destinations may contain project properties placeholders, e.g. ${name} or ${version}.

You can also use the extended notation to alter the filenames:

    project.set_property("smart_copy_resources", {
        "path/to/file.ext": {
            "copy_as": "new_file.ext",
            "destination": ./dist,
        }
    })

Do NOT use glob patterns in this extended notation as all the files would be copied into the requested location with the new filename. Thus, only one file will be created in the destination in fact.