package.nix (1283B)
1 { 2 lib, 3 stdenv, 4 buildGoModule, 5 fetchFromGitHub, 6 installShellFiles, 7 libpcap, 8 }: 9 10 buildGoModule (finalAttrs: { 11 pname = "shifu"; 12 version = "0.91.0"; 13 14 __structuredAttrs = true; 15 16 src = fetchFromGitHub { 17 owner = "Edgenesis"; 18 repo = "shifu"; 19 tag = "v${finalAttrs.version}"; 20 hash = "sha256-YLXT10FCNpS8SubvQjECLIA7mK/DaKjCH+6hA6cpVtg="; 21 }; 22 23 vendorHash = "sha256-oKn4RnNbDYMJHY2TmAeBlbI10+80taE3+JiO+cfSSjU="; 24 25 nativeBuildInputs = [ installShellFiles ]; 26 27 buildInputs = [ libpcap ]; 28 29 subPackages = [ 30 "cmd/deviceshifu/cmdhttp" 31 "cmd/deviceshifu/cmdmqtt" 32 "cmd/deviceshifu/cmdopcua" 33 "cmd/deviceshifu/cmdsocket" 34 "cmd/httpstub/powershellstub" 35 "cmd/httpstub/sshstub" 36 "cmd/shifuctl" 37 "cmd/telemetryservice" 38 ]; 39 40 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' 41 installShellCompletion --cmd shifuctl \ 42 --bash <($out/bin/shifuctl completion bash) \ 43 --fish <($out/bin/shifuctl completion fish) \ 44 --zsh <($out/bin/shifuctl completion zsh) 45 ''; 46 47 meta = { 48 description = "Kubernetes-native IoT gateway"; 49 homepage = "https://shifu.dev/"; 50 license = lib.licenses.asl20; 51 maintainers = [ lib.maintainers.sikmir ]; 52 mainProgram = "shifuctl"; 53 }; 54 })
