blight
Erase all data on a block device
TLDR
Set display brightness to 50%
Show current display brightness
Print maximum display brightness
Increase display brightness in %
Decrease display brightness with internal units
SYNOPSIS
blight [OPTIONS] -- COMMAND [ARGS...]
PARAMETERS
-o FILE, --output FILE
Specify the output file path for collected build data.
--json
Output the collected data in JSON format.
-v, --verbose
Increase verbosity of blight's own messages.
--trace-exec
Enable tracing of execve (program execution) system calls.
--trace-open
Enable tracing of open (file access) system calls.
--trace-stat
Enable tracing of stat (file metadata) system calls.
--all-syscalls
Trace all supported system calls (default behavior).
--only-exec
Only trace execve system calls, disabling others.
--ignore-exec PATTERN
Do not trace executions matching the given pattern.
--ignore-open PATTERN
Do not trace file opens matching the given pattern.
--ignore-stat PATTERN
Do not trace file stats matching the given pattern.
--config FILE
Load configuration from the specified file.
--no-default-config
Prevent loading of default configuration files.
-h, --help
Display a help message and exit.
--version
Display version information and exit.
--
Separator that indicates all subsequent arguments belong to the COMMAND being instrumented.
DESCRIPTION
blight is a powerful Linux command-line tool designed for comprehensive analysis and instrumentation of software build processes. It acts as a wrapper around existing build commands (e.g., make, cmake), intercepting system calls such as execve, open, and stat to meticulously record all file accesses, command executions, and inter-process communications that occur during a build. This detailed logging provides invaluable insights into a project's build graph, exact dependencies, and potential inefficiencies. The collected data can be used for various purposes, including optimizing build times, ensuring build reproducibility, identifying redundant operations, or enhancing software supply chain security by understanding exactly what resources are touched during compilation and linking. Its primary goal is to provide a granular view into the "black box" of complex software builds, transforming implicit behaviors into explicit, analyzable data.
CAVEATS
blight relies on system call interposition (e.g., using ptrace or LD_PRELOAD), which can introduce performance overhead to the build process. It may also encounter compatibility issues with certain sandboxing environments, container runtimes, or highly optimized build configurations. It's primarily designed for tracing build processes and might not be suitable for general-purpose system call tracing.
USAGE MODEL
blight is typically invoked by prefixing your standard build command. For example, to trace a make build, you would run blight -- make all
.
The collected data, often in JSON format, can then be processed by other tools for visualization, analysis, or dependency graph generation.
HISTORY
Developed by the blight-build organization, blight emerged to address the growing need for deeper introspection into complex software build systems. Its development focuses on providing a robust, cross-platform solution for capturing granular build data, which is crucial for modern software development practices like supply chain security, build reproducibility initiatives, and build performance optimization. It leverages OS-specific mechanisms (like ptrace on Linux or library interposition) to achieve its tracing capabilities.