toolmaker application
Project description
Introduction
This tool automates the build of Python tools according to a configuration file. The tools can be built with zapp, shiv, or pex.
Repositories
Binary distributions:
Source code:
Usage
Configuration
By default this tool looks for a configuration file toolmaker.cfg in the current working directory.
[toolmaker.tool.defaults]
tools_directory = ~/.local/bin/.toolmaker
[toolmaker.tool.zapp:deptree]
entry_point = deptree.cli:main
requirements =
deptree
[toolmaker.tool.pex:http]
entry_point = http.server
requirements =
[toolmaker.tool.shiv:shiv]
entry_point = shiv.cli:main
requirements =
shiv
Action
The action can be specified on the command line. Either one of:
--build, -b to build (already existing tools are skipped);
--rebuild, -r to rebuild (already existing tools are rebuilt);
--delete, -d to delete (tool target file is deleted if it exists, then its parent directory is deleted if it is empty).
The default action when no flag is specified is to build the tools.
Configuration
Place tools in current directory
[toolmaker.tool.defaults]
tools_directory =
tool_directory =
[toolmaker.tool.zapp:foo]
# ./foo
[toolmaker.tool.zapp:bar]
# ./bar
Place tools in specific directory
[toolmaker.tool.defaults]
tools_directory = /somewhere
tool_directory =
[toolmaker.tool.zapp:foo]
# /somewhere/foo
[toolmaker.tool.zapp:bar]
# /somewhere/bar
Place tools in subdirectories
[toolmaker.tool.defaults]
tools_directory = /somewhere
[toolmaker.tool.zapp:foo0]
# /somewhere/foo0/foo0
[toolmaker.tool.zapp:foo1]
tool_directory = foo0
# /somewhere/foo0/foo1
[toolmaker.tool.zapp:foo2]
# /somewhere/foo2/foo2
[toolmaker.tool.zapp:foo3]
tool_file = foo0
# /somewhere/foo3/foo0
Example to use with GNU stow
To use in combination with GNU Stow:
[toolmaker.tool.defaults]
tools_directory = ~/.local/bin/.toolmaker
[toolmaker.tool.zapp:foo0]
# ~/.local/bin/.toolmaker/foo0/foo0
[toolmaker.tool.zapp:foo1]
tool_directory = foo0
# ~/.local/bin/.toolmaker/foo0/foo1
[toolmaker.tool.zapp:foo2]
# ~/.local/bin/.toolmaker/foo2/foo2
[toolmaker.tool.zapp:foo3]
tool_file = foo0
# ~/.local/bin/.toolmaker/foo3/foo0
Details
Similar projects
Hacking
This project makes extensive use of tox, pytest, and GNU Make.
Development environment
Use following command to create a Python virtual environment with all necessary dependencies:
tox --recreate -e develop
This creates a Python virtual environment in the .tox/develop directory. It can be activated with the following command:
. .tox/develop/bin/activate
Run test suite
In a Python virtual environment run the following command:
make review
Outside of a Python virtual environment run the following command:
tox --recreate
Build and package
In a Python virtual environment run the following command:
make package
Outside of a Python virtual environment run the following command:
tox --recreate -e package
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for toolmaker-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45c3747c3a810d0db2fca693bb853ee5cd6b85a4cd1155a72752acc2c8a8cb4f |
|
MD5 | 89020c0f983b0c2ab3c89df0101e8362 |
|
BLAKE2b-256 | a40584cf2a54f7371765b19c2b2063ee098e0284b81ab6c4a5f23bebc091d4da |