about summary refs log tree commit diff
path: root/pkgs/by-name/eb/ebpf-usb
diff options
context:
space:
mode:
authorWill Lucas <mevatron@gmail.com>2024-01-06 21:45:14 -0600
committerWill Lucas <mevatron@gmail.com>2024-01-09 22:55:39 -0600
commitfbe398d402a0638450fbdb7556a9a712b2820a4d (patch)
treeb78b0622af552fa456b5cfbc67687b2cfcdeef37 /pkgs/by-name/eb/ebpf-usb
parentc55537aa04e2d5b8de4614b79782d3e5430c3ea7 (diff)
ebpf-usb: init at unstable-2022-04-03 after PR review feedback
Diffstat (limited to 'pkgs/by-name/eb/ebpf-usb')
-rw-r--r--pkgs/by-name/eb/ebpf-usb/package.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/by-name/eb/ebpf-usb/package.nix b/pkgs/by-name/eb/ebpf-usb/package.nix
new file mode 100644
index 0000000000000..a4da98ee7fb54
--- /dev/null
+++ b/pkgs/by-name/eb/ebpf-usb/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, bcc
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "ebpf-usb";
+  version = "unstable-2022-04-03";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "francisrstokes";
+    repo = "ebpf-usb";
+    rev = "3ab6f0d8c6ece51bbb5cc5e05daa4008eccd70e8";
+    hash = "sha256-n3ttFej9sroTqAOgyAejwKT+aMt/z7HlVPV6CVGPNUQ=";
+  };
+
+  makeWrapperArgs = [
+    "--set PYTHONUNBUFFERED 1"
+  ];
+
+  pythonPath = [ bcc ] ++ (with python3Packages; [
+    hexdump
+  ]);
+
+  postPatch = ''
+    substituteInPlace ebpf-usb.py \
+      --replace '#!/usr/bin/env -S python3 -u' '#!/usr/bin/env python3'
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 ebpf-usb.py $out/bin/ebpf-usb
+    runHook postInstall
+  '';
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Python script for USB monitoring using eBPF";
+    homepage = "https://github.com/francisrstokes/ebpf-usb";
+    license = lib.licenses.unfree;
+    maintainers = with maintainers; [ mevatron ];
+    mainProgram = "ebpf-usb";
+  };
+}