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