From 11f3c033c8ccad04442242140d6c8d4b7c08cc79 Mon Sep 17 00:00:00 2001 From: Joseph Ligier Date: Mon, 10 Nov 2025 10:07:57 +0100 Subject: [PATCH] Implement go:embed --- {{project-name}}-go/.ebpf/toto | 0 {{project-name}}-go/main.go | 8 +++++++- {{project-name}}/src/main.rs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 {{project-name}}-go/.ebpf/toto diff --git a/{{project-name}}-go/.ebpf/toto b/{{project-name}}-go/.ebpf/toto new file mode 100644 index 0000000..e69de29 diff --git a/{{project-name}}-go/main.go b/{{project-name}}-go/main.go index 9a3a6e7..b360346 100644 --- a/{{project-name}}-go/main.go +++ b/{{project-name}}-go/main.go @@ -8,14 +8,20 @@ import ( "os" "os/signal" "syscall" + "bytes" "github.com/cilium/ebpf" "github.com/cilium/ebpf/link" "github.com/cilium/ebpf/ringbuf" + + _ "embed" ) const progName = "{{crate_name}}" +//go:embed .ebpf/{{project-name}} +var ebpfBytes []byte + func main() { if len(os.Args) < 2 { fmt.Printf("Usage: %s \n", os.Args[0]) @@ -23,7 +29,7 @@ func main() { } ifaceName := os.Args[1] - spec, err := ebpf.LoadCollectionSpec("/tmp/{{project-name}}") + spec, err := ebpf.LoadCollectionSpecFromReader(bytes.NewReader(ebpfBytes)) if err != nil { log.Fatalf("LoadCollectionSpec failed: %v", err) } diff --git a/{{project-name}}/src/main.rs b/{{project-name}}/src/main.rs index 8c2fe02..9b6f59f 100644 --- a/{{project-name}}/src/main.rs +++ b/{{project-name}}/src/main.rs @@ -15,7 +15,7 @@ fn main() -> anyhow::Result<()> { } let src = concat!(env!("OUT_DIR"), "/{{project-name}}"); - let dst = "/tmp/{{project-name}}"; + let dst = "{{project-name}}-go/.ebpf/{{project-name}}"; fs::copy(src, dst)?; Ok(())