summaryrefslogtreecommitdiff
path: root/xtask
diff options
context:
space:
mode:
Diffstat (limited to 'xtask')
-rw-r--r--xtask/Cargo.toml7
-rw-r--r--xtask/src/main.rs38
2 files changed, 45 insertions, 0 deletions
diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml
new file mode 100644
index 0000000..13979c3
--- /dev/null
+++ b/xtask/Cargo.toml
@@ -0,0 +1,7 @@
1[package]
2name = "xtask"
3version = "0.1.0"
4edition = "2021"
5
6[dependencies]
7anyhow = "1"
diff --git a/xtask/src/main.rs b/xtask/src/main.rs
new file mode 100644
index 0000000..1009eef
--- /dev/null
+++ b/xtask/src/main.rs
@@ -0,0 +1,38 @@
1use anyhow::Result;
2use std::process::Command;
3
4fn main() -> Result<()> {
5 let args: Vec<String> = std::env::args().collect();
6
7 if args.len() < 2 {
8 eprintln!("Usage: cargo xtask build-ebpf");
9 std::process::exit(1);
10 }
11
12 match args[1].as_str() {
13 "build-ebpf" => build_ebpf()?,
14 _ => eprintln!("Unknown command: {}", args[1]),
15 }
16
17 Ok(())
18}
19
20fn build_ebpf() -> Result<()> {
21 let status = Command::new("cargo")
22 .args(&[
23 "+nightly",
24 "build",
25 "--target=bpfel-unknown-none",
26 "--release",
27 "-Z",
28 "build-std=core",
29 "--manifest-path=packet-detector-ebpf/Cargo.toml",
30 ])
31 .status()?;
32
33 if !status.success() {
34 anyhow::bail!("Failed to build eBPF program");
35 }
36
37 Ok(())
38}