button.handlers

Modules

base
module button.handlers.base
dmd
module button.handlers.dmd
gcc
module button.handlers.gcc
recursive
module button.handlers.recursive
tracer
module button.handlers.tracer

Public Imports

button.handlers.base
public import button.handlers.base : base = execute;
button.handlers.recursive
public import button.handlers.recursive : recursive = execute;
button.handlers.dmd
public import button.handlers.dmd : dmd = execute;
button.handlers.gcc
public import button.handlers.gcc : gcc = execute;
button.handlers.tracer
public import button.handlers.tracer : tracer = execute;

Meta

License

MIT

Authors

Jason White

Description: Command handler package. A command handler takes in a command line, executes it, and returns a set of implicit inputs/outputs. Handlers can be called by other handlers.

This is useful for ad-hoc dependency detection. For example, to detect inputs/outputs when running DMD, we modify the command line so it writes them to a file which we then read in to determine the inputs/outputs.

If there is no handler, we default to system call tracing.