A catch-all compile-tool wrapper
Project description
blight
blight is a framework for wrapping and instrumenting build tools.
Usage
$ pip3 install blight
$ eval $(blight-env --guess-wrapped)
$ export BLIGHT_ACTIONS="Record"
$ export BLIGHT_ACTION_RECORD="output=/tmp/demo.jsonl"
$ cd /your/project && make
$ cat /tmp/demo.jsonl
Goals
- Wrapping
CC,CXX,CPP,LD,AS,AR, andSTRIP. - Providing a visitor-style API for each of the above, pre- and post-execution.
- Providing a nice set of default actions.
- Being as non-invasive as possible.
Anti-goals
- Using
LD_PRELOADto capture everyexecin a build system, a la Bear. - Supporting
cl.exe. - Detailed support for non C/C++ languages.
Contributing a new action
New blight actions are easy to write. For example, the following prints a message before every ld
invocation:
# src/blight/actions/printld.py
from blight.action import LDAction
class PrintLD(LDAction):
def before_run(self, tool):
print(f"ld was run with: {tool.args}")
# src/blight/actions/__init__.py
# bring PrintLD into blight.actions so that `BLIGHT_ACTIONS` can find it
from printld import PrintLD # noqa: F401
$ eval $(blight-env --guess-wrapped)
$ export BLIGHT_ACTIONS="PrintLD"
$ make
Check out blight's API documentation for more details, including the kinds of available actions.
The name?
Build systems and tools that instrument build systems are a blight on my productivity.
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 Distribution
blight-0.0.33.tar.gz
(29.1 kB
view details)
File details
Details for the file blight-0.0.33.tar.gz.
File metadata
- Download URL: blight-0.0.33.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a350097962bfab50a072616be97929ea8813623384ff64afb86568f21e7a2c0
|
|
| MD5 |
567eb6ff4e015198d6b43a649f5b770a
|
|
| BLAKE2b-256 |
34f12e88df421936d38faa2682f96b3d1a965f6dcc9058ec18c2db81ecc59281
|