fedora-csb-system-manager
1{
2 buildGoModule,
3 lib,
4 makeWrapper,
5 libnotify,
6}:
7
8buildGoModule {
9 pname = "claude-hooks";
10 version = "0.1.0";
11 src = ./.;
12
13 vendorHash = "sha256-bdpAteulG3045jPdEpjcT4yGlnxLKDMlK7lk9WVRTKc=";
14
15 nativeBuildInputs = [ makeWrapper ];
16
17 # Build all binaries
18 subPackages = [
19 "cmd/capture-tool-output"
20 "cmd/initialize-session"
21 "cmd/update-terminal-title"
22 "cmd/validate-docs"
23 "cmd/save-session"
24 "cmd/session-stats"
25 ];
26
27 # Rename binaries to have consistent prefix and wrap with dependencies
28 postInstall = ''
29 mv $out/bin/capture-tool-output $out/bin/claude-hooks-capture-tool-output
30 mv $out/bin/initialize-session $out/bin/claude-hooks-initialize-session
31 mv $out/bin/update-terminal-title $out/bin/claude-hooks-update-terminal-title
32 mv $out/bin/validate-docs $out/bin/claude-hooks-validate-docs
33 mv $out/bin/save-session $out/bin/claude-hooks-save-session
34 mv $out/bin/session-stats $out/bin/claude-hooks-session-stats
35
36 # Wrap save-session to include notify-send in PATH
37 wrapProgram $out/bin/claude-hooks-save-session \
38 --prefix PATH : ${lib.makeBinPath [ libnotify ]}
39 '';
40
41 meta = {
42 description = "Claude Code hooks for session management, tool output capture, and documentation validation";
43 license = lib.licenses.mit;
44 platforms = lib.platforms.unix;
45 mainProgram = "claude-hooks-capture-tool-output";
46 };
47}