base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / networking / ifwifi / default.nix
blob645000dffc73de841baeeb2653d4178cb82b8d5e
1 { lib, stdenv, fetchFromGitHub, rustPlatform, makeWrapper, networkmanager, iw, Security }:
3 rustPlatform.buildRustPackage rec {
4   pname = "ifwifi";
5   version = "1.2.0";
7   src = fetchFromGitHub {
8     owner = "araujobsd";
9     repo = "ifwifi";
10     rev = version;
11     sha256 = "sha256-DPMCwyKqGJrav0wASBky9bS1bvJ3xaGsDzsk1bKaH1U=";
12   };
14   cargoHash = "sha256-TL7ZsRbpRdYymJHuoCUCqe/U3Vacb9mtKFh85IOl+PA=";
16   nativeBuildInputs = [ makeWrapper ];
17   buildInputs = lib.optional stdenv.hostPlatform.isDarwin Security;
19   postInstall = ''
20     wrapProgram "$out/bin/ifwifi" \
21       --prefix PATH : "${lib.makeBinPath (
22         # `ifwifi` runtime dep
23         [ networkmanager ]
24         # `wifiscanner` crate's runtime deps
25         ++ (lib.optional stdenv.hostPlatform.isLinux iw)
26         # ++ (lib.optional stdenv.hostPlatform.isDarwin airport) # airport isn't packaged
27       )}"
28   '';
30   doCheck = true;
32   meta = with lib; {
33     description = "Simple wrapper over nmcli using wifiscanner made in rust";
34     mainProgram = "ifwifi";
35     longDescription = ''
36       In the author's words:
38       I felt bothered because I never remember the long and tedious command
39       line to setup my wifi interface. So, I wanted to develop something
40       using rust to simplify the usage of nmcli, and I met the wifiscanner
41       project that gave me almost everything I wanted to create this tool.
42     '';
43     homepage = "https://github.com/araujobsd/ifwifi";
44     license = with licenses; [ bsd2 ];
45     maintainers = with maintainers; [ blaggacao ];
46     # networkmanager doesn't work on darwin
47     # even though the `wifiscanner` crate would work
48     platforms = with platforms; linux; # ++ darwin;
49   };