Skip to main content

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.

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.

Files for toolmaker, version 0.0.4
Filename, size File type Python version Upload date Hashes
Filename, size toolmaker-0.0.4-py3-none-any.whl (10.4 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size toolmaker-0.0.4.tar.gz (10.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page