mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
Co-authored-by: Jarred-Sumner <Jarred-Sumner@users.noreply.github.com> Co-authored-by: Don Isaac <donald.isaac@gmail.com> Co-authored-by: DonIsaac <DonIsaac@users.noreply.github.com> Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
31 lines
1.3 KiB
Bash
Executable File
31 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This file is not run often, so we don't need to make it part of the build system.
|
|
# We do this because the event names have to be compile-time constants.
|
|
|
|
|
|
export TRACE_EVENTS=$(rg 'bun\.perf\.trace\("([^"]*)"\)' -t zig --json \
|
|
| jq -r 'select(.type == "match")' \
|
|
| jq -r '.data.submatches[].match.text' \
|
|
| cut -d'"' -f2 \
|
|
| sort \
|
|
| uniq)
|
|
|
|
echo "// Generated with scripts/generate-perf-trace-events.sh" > src/bun.js/bindings/generated_perf_trace_events.h
|
|
echo "// clang-format off" >> src/bun.js/bindings/generated_perf_trace_events.h
|
|
echo "#define FOR_EACH_TRACE_EVENT(macro) \\" >> src/bun.js/bindings/generated_perf_trace_events.h
|
|
i=0
|
|
for event in $TRACE_EVENTS; do
|
|
echo " macro($event, $((i++))) \\" >> src/bun.js/bindings/generated_perf_trace_events.h
|
|
done
|
|
echo " // end" >> src/bun.js/bindings/generated_perf_trace_events.h
|
|
|
|
echo "Generated src/bun.js/bindings/generated_perf_trace_events.h"
|
|
|
|
echo "// Generated with scripts/generate-perf-trace-events.sh" > src/generated_perf_trace_events.zig
|
|
echo "pub const PerfEvent = enum(i32) {" >> src/generated_perf_trace_events.zig
|
|
for event in $TRACE_EVENTS; do
|
|
echo " @\"$event\"," >> src/generated_perf_trace_events.zig
|
|
done
|
|
echo "};" >> src/generated_perf_trace_events.zig
|
|
|
|
echo "Generated src/generated_perf_trace_events.zig" |