1{ lib
2, rustPlatform
3, fetchFromGitHub
4, installShellFiles
5, stdenv
6, darwin
7, bottom
8, testers
9}:
10
11rustPlatform.buildRustPackage rec {
12 pname = "bottom";
13 version = "0.9.6";
14
15 src = fetchFromGitHub {
16 owner = "ClementTsang";
17 repo = pname;
18 rev = version;
19 hash = "sha256-czOYEZevZD7GfExmqwB7vhLXl6+etag1PjZFA2G9aGA=";
20 };
21
22 cargoHash = "sha256-RDOGf1jujZikcRXRtL71BUGgmZyt7vQOTk1LkKpXDuo=";
23
24 nativeBuildInputs = [ installShellFiles ];
25
26 buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
27 darwin.apple_sdk_11_0.frameworks.Foundation
28 ];
29
30 doCheck = false;
31
32 postInstall = ''
33 installManPage target/tmp/bottom/manpage/btm.1
34 installShellCompletion \
35 target/tmp/bottom/completion/btm.{bash,fish} \
36 --zsh target/tmp/bottom/completion/_btm
37 '';
38
39 BTM_GENERATE = true;
40
41 passthru.tests.version = testers.testVersion {
42 package = bottom;
43 };
44
45 meta = with lib; {
46 description = "A cross-platform graphical process/system monitor with a customizable interface";
47 homepage = "https://github.com/ClementTsang/bottom";
48 changelog = "https://github.com/ClementTsang/bottom/blob/${version}/CHANGELOG.md";
49 license = licenses.mit;
50 maintainers = with maintainers; [ berbiche figsoda ];
51 mainProgram = "btm";
52 };
53}