diff --git a/README.md b/README.md index 0bd7849..a3932d8 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ `prec` is a Linux command execution observability tool where `precd` uses eBPF to continuously collect process execution events as JSON Lines and `prec` lets you quickly search and inspect those records from the CLI. +Implementation note: + +- Go packages under `internal/` are private implementation details and are not a supported public import API + ## Why use it - Does not rely on shell history or `LD_PRELOAD` diff --git a/cmd/prec/main.go b/cmd/prec/main.go index 7527621..cee89ed 100644 --- a/cmd/prec/main.go +++ b/cmd/prec/main.go @@ -7,7 +7,7 @@ import ( "fmt" "os" - "github.com/jfut/prec/pkg/cli" + "github.com/jfut/prec/internal/cli" ) // Build metadata fields are injected by linker flags at build time. diff --git a/cmd/precd/main.go b/cmd/precd/main.go index a2d6289..ccf1f0f 100644 --- a/cmd/precd/main.go +++ b/cmd/precd/main.go @@ -13,9 +13,9 @@ import ( "github.com/alecthomas/kong" - "github.com/jfut/prec/pkg/collector" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/logger" + "github.com/jfut/prec/internal/collector" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/logger" ) // Build metadata fields are injected by linker flags at build time. diff --git a/pkg/cli/app.go b/internal/cli/app.go similarity index 98% rename from pkg/cli/app.go rename to internal/cli/app.go index 0c8bfb0..f1602ed 100644 --- a/pkg/cli/app.go +++ b/internal/cli/app.go @@ -11,8 +11,8 @@ import ( "github.com/alecthomas/kong" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/query" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/query" ) type listFilter struct { diff --git a/pkg/cli/app_test.go b/internal/cli/app_test.go similarity index 99% rename from pkg/cli/app_test.go rename to internal/cli/app_test.go index eb68386..7cf9371 100644 --- a/pkg/cli/app_test.go +++ b/internal/cli/app_test.go @@ -15,7 +15,7 @@ import ( "github.com/alecthomas/kong" - "github.com/jfut/prec/pkg/config" + "github.com/jfut/prec/internal/config" ) func TestValidateModeFlags(t *testing.T) { diff --git a/pkg/cli/constants.go b/internal/cli/constants.go similarity index 100% rename from pkg/cli/constants.go rename to internal/cli/constants.go diff --git a/pkg/cli/event_collection.go b/internal/cli/event_collection.go similarity index 99% rename from pkg/cli/event_collection.go rename to internal/cli/event_collection.go index bb25795..a5174c6 100644 --- a/pkg/cli/event_collection.go +++ b/internal/cli/event_collection.go @@ -15,7 +15,7 @@ import ( "github.com/klauspost/compress/gzip" "github.com/klauspost/compress/zstd" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func collectFilteredEvents(logPaths []string, limit int, lf listFilter) ([]events.CommandEvent, error) { diff --git a/pkg/cli/event_collection_test.go b/internal/cli/event_collection_test.go similarity index 99% rename from pkg/cli/event_collection_test.go rename to internal/cli/event_collection_test.go index 39ca6e5..a20d005 100644 --- a/pkg/cli/event_collection_test.go +++ b/internal/cli/event_collection_test.go @@ -7,7 +7,7 @@ import ( "path/filepath" "testing" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func TestCollectFilteredEventsAcrossRotatedLogs(t *testing.T) { diff --git a/pkg/cli/event_merge.go b/internal/cli/event_merge.go similarity index 98% rename from pkg/cli/event_merge.go rename to internal/cli/event_merge.go index 2e8ac81..836a6f6 100644 --- a/pkg/cli/event_merge.go +++ b/internal/cli/event_merge.go @@ -3,7 +3,7 @@ package cli -import "github.com/jfut/prec/pkg/events" +import "github.com/jfut/prec/internal/events" type commandJoinState struct { pending map[string]events.CommandEvent diff --git a/pkg/cli/event_merge_test.go b/internal/cli/event_merge_test.go similarity index 99% rename from pkg/cli/event_merge_test.go rename to internal/cli/event_merge_test.go index 6e74080..71c3a74 100644 --- a/pkg/cli/event_merge_test.go +++ b/internal/cli/event_merge_test.go @@ -6,7 +6,7 @@ package cli import ( "testing" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func TestMergeEventsForListJoinsStartEnd(t *testing.T) { diff --git a/pkg/cli/log_paths.go b/internal/cli/log_paths.go similarity index 100% rename from pkg/cli/log_paths.go rename to internal/cli/log_paths.go diff --git a/pkg/cli/log_paths_test.go b/internal/cli/log_paths_test.go similarity index 100% rename from pkg/cli/log_paths_test.go rename to internal/cli/log_paths_test.go diff --git a/pkg/cli/log_reader.go b/internal/cli/log_reader.go similarity index 100% rename from pkg/cli/log_reader.go rename to internal/cli/log_reader.go diff --git a/pkg/cli/log_reader_test.go b/internal/cli/log_reader_test.go similarity index 98% rename from pkg/cli/log_reader_test.go rename to internal/cli/log_reader_test.go index 8c1dfd4..1581637 100644 --- a/pkg/cli/log_reader_test.go +++ b/internal/cli/log_reader_test.go @@ -10,8 +10,8 @@ import ( "sync" "testing" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" ) func TestOpenLogReaderDetectsCompressionByMagic(t *testing.T) { diff --git a/pkg/cli/output_formatter.go b/internal/cli/output_formatter.go similarity index 99% rename from pkg/cli/output_formatter.go rename to internal/cli/output_formatter.go index 00e56ac..9127775 100644 --- a/pkg/cli/output_formatter.go +++ b/internal/cli/output_formatter.go @@ -13,7 +13,7 @@ import ( "strings" "time" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) // outputFormatter hides per-format encoding details from list/follow flows. diff --git a/pkg/cli/output_formatter_test.go b/internal/cli/output_formatter_test.go similarity index 99% rename from pkg/cli/output_formatter_test.go rename to internal/cli/output_formatter_test.go index c1975e1..87022b8 100644 --- a/pkg/cli/output_formatter_test.go +++ b/internal/cli/output_formatter_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func TestFormatEventSimple(t *testing.T) { diff --git a/pkg/cli/query_filter.go b/internal/cli/query_filter.go similarity index 89% rename from pkg/cli/query_filter.go rename to internal/cli/query_filter.go index e3b31ca..11ee8c1 100644 --- a/pkg/cli/query_filter.go +++ b/internal/cli/query_filter.go @@ -4,8 +4,8 @@ package cli import ( - "github.com/jfut/prec/pkg/events" - "github.com/jfut/prec/pkg/query" + "github.com/jfut/prec/internal/events" + "github.com/jfut/prec/internal/query" ) func buildQueryFilter(specs []string) (listFilter, error) { diff --git a/pkg/cli/query_filter_test.go b/internal/cli/query_filter_test.go similarity index 99% rename from pkg/cli/query_filter_test.go rename to internal/cli/query_filter_test.go index cea3833..4431b6f 100644 --- a/pkg/cli/query_filter_test.go +++ b/internal/cli/query_filter_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func TestBuildQueryFilterValid(t *testing.T) { diff --git a/pkg/cli/tail.go b/internal/cli/tail.go similarity index 99% rename from pkg/cli/tail.go rename to internal/cli/tail.go index 25064df..0421216 100644 --- a/pkg/cli/tail.go +++ b/internal/cli/tail.go @@ -13,7 +13,7 @@ import ( "strings" "time" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func runList(logPaths []string, limit int, lf listFilter, opt outputOptions) int { diff --git a/pkg/cli/test_helpers_test.go b/internal/cli/test_helpers_test.go similarity index 99% rename from pkg/cli/test_helpers_test.go rename to internal/cli/test_helpers_test.go index b3e7a45..89e8501 100644 --- a/pkg/cli/test_helpers_test.go +++ b/internal/cli/test_helpers_test.go @@ -15,7 +15,7 @@ import ( "github.com/klauspost/compress/zstd" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) func intPtr(v int) *int { diff --git a/pkg/collector/collector_linux.go b/internal/collector/collector_linux.go similarity index 99% rename from pkg/collector/collector_linux.go rename to internal/collector/collector_linux.go index ac3a3db..d9a42a8 100644 --- a/pkg/collector/collector_linux.go +++ b/internal/collector/collector_linux.go @@ -24,10 +24,10 @@ import ( "github.com/cilium/ebpf/rlimit" "golang.org/x/sys/unix" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" - "github.com/jfut/prec/pkg/filter" - "github.com/jfut/prec/pkg/logger" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" + "github.com/jfut/prec/internal/filter" + "github.com/jfut/prec/internal/logger" ) const ( diff --git a/pkg/collector/collector_linux_test.go b/internal/collector/collector_linux_test.go similarity index 98% rename from pkg/collector/collector_linux_test.go rename to internal/collector/collector_linux_test.go index c8e2ee6..dd75c89 100644 --- a/pkg/collector/collector_linux_test.go +++ b/internal/collector/collector_linux_test.go @@ -16,9 +16,9 @@ import ( "testing" "github.com/cilium/ebpf/asm" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" - "github.com/jfut/prec/pkg/logger" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" + "github.com/jfut/prec/internal/logger" ) func TestParseOffsetFromFormat(t *testing.T) { diff --git a/pkg/config/config.go b/internal/config/config.go similarity index 100% rename from pkg/config/config.go rename to internal/config/config.go diff --git a/pkg/config/config_test.go b/internal/config/config_test.go similarity index 100% rename from pkg/config/config_test.go rename to internal/config/config_test.go diff --git a/pkg/events/event.go b/internal/events/event.go similarity index 100% rename from pkg/events/event.go rename to internal/events/event.go diff --git a/pkg/events/event_json.go b/internal/events/event_json.go similarity index 100% rename from pkg/events/event_json.go rename to internal/events/event_json.go diff --git a/pkg/events/event_test.go b/internal/events/event_test.go similarity index 100% rename from pkg/events/event_test.go rename to internal/events/event_test.go diff --git a/pkg/events/source.go b/internal/events/source.go similarity index 100% rename from pkg/events/source.go rename to internal/events/source.go diff --git a/pkg/events/source_test.go b/internal/events/source_test.go similarity index 100% rename from pkg/events/source_test.go rename to internal/events/source_test.go diff --git a/pkg/filter/filter.go b/internal/filter/filter.go similarity index 93% rename from pkg/filter/filter.go rename to internal/filter/filter.go index 1e167ef..16c8ac8 100644 --- a/pkg/filter/filter.go +++ b/internal/filter/filter.go @@ -7,9 +7,9 @@ import ( "fmt" "strings" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" - "github.com/jfut/prec/pkg/query" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" + "github.com/jfut/prec/internal/query" ) type compiledRule struct { diff --git a/pkg/filter/filter_test.go b/internal/filter/filter_test.go similarity index 96% rename from pkg/filter/filter_test.go rename to internal/filter/filter_test.go index 4213d5e..3d3d060 100644 --- a/pkg/filter/filter_test.go +++ b/internal/filter/filter_test.go @@ -6,8 +6,8 @@ package filter import ( "testing" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" ) func TestMatcherRulesFirstMatchWins(t *testing.T) { diff --git a/pkg/logger/jsonl.go b/internal/logger/jsonl.go similarity index 98% rename from pkg/logger/jsonl.go rename to internal/logger/jsonl.go index 082bec4..3176eb6 100644 --- a/pkg/logger/jsonl.go +++ b/internal/logger/jsonl.go @@ -16,8 +16,8 @@ import ( "github.com/klauspost/compress/gzip" "github.com/klauspost/compress/zstd" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" ) // JSONLWriter appends events line by line to a root-owned log file. diff --git a/pkg/logger/jsonl_test.go b/internal/logger/jsonl_test.go similarity index 97% rename from pkg/logger/jsonl_test.go rename to internal/logger/jsonl_test.go index 38986d8..f4be4aa 100644 --- a/pkg/logger/jsonl_test.go +++ b/internal/logger/jsonl_test.go @@ -15,8 +15,8 @@ import ( "github.com/klauspost/compress/gzip" "github.com/klauspost/compress/zstd" - "github.com/jfut/prec/pkg/config" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/config" + "github.com/jfut/prec/internal/events" ) func TestJSONLWriterReopenSwitchesOutputFile(t *testing.T) { diff --git a/pkg/query/filter.go b/internal/query/filter.go similarity index 99% rename from pkg/query/filter.go rename to internal/query/filter.go index 98ac16a..29abd31 100644 --- a/pkg/query/filter.go +++ b/internal/query/filter.go @@ -12,7 +12,7 @@ import ( "sync" "time" - "github.com/jfut/prec/pkg/events" + "github.com/jfut/prec/internal/events" ) var operators = []string{"!~=", ">=", "<=", "!=", "~=", ">", "<", "="} diff --git a/justfile b/justfile index 39ccabc..98d347a 100644 --- a/justfile +++ b/justfile @@ -45,7 +45,7 @@ deps: # fmt: - gofmt -w ./cmd ./pkg + gofmt -w . lint: golangci-lint run ./...