fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / in / inxi / package.nix
blobd4c6bdbf960b99f8a6b23d36957e1811d2cc5edc
2   lib,
3   stdenv,
4   fetchFromGitea,
5   perl,
6   perlPackages,
7   makeWrapper,
8   ps,
9   dnsutils, # dig is recommended for multiple categories
10   withRecommends ? false, # Install (almost) all recommended tools (see --recommends)
11   withRecommendedSystemPrograms ? withRecommends,
12   util-linuxMinimal,
13   dmidecode,
14   file,
15   hddtemp,
16   iproute2,
17   ipmitool,
18   usbutils,
19   kmod,
20   lm_sensors,
21   smartmontools,
22   binutils,
23   tree,
24   upower,
25   pciutils,
26   withRecommendedDisplayInformationPrograms ? withRecommends,
27   mesa-demos,
28   xorg,
31 let
32   prefixPath = programs: "--prefix PATH ':' '${lib.makeBinPath programs}'";
33   recommendedSystemPrograms = lib.optionals withRecommendedSystemPrograms [
34     util-linuxMinimal
35     dmidecode
36     file
37     hddtemp
38     iproute2
39     ipmitool
40     usbutils
41     kmod
42     lm_sensors
43     smartmontools
44     binutils
45     tree
46     upower
47     pciutils
48   ];
49   recommendedDisplayInformationPrograms = lib.optionals withRecommendedDisplayInformationPrograms (
50     [ mesa-demos ]
51     ++ (with xorg; [
52       xdpyinfo
53       xprop
54       xrandr
55     ])
56   );
57   programs =
58     [
59       ps
60       dnsutils
61     ] # Core programs
62     ++ recommendedSystemPrograms
63     ++ recommendedDisplayInformationPrograms;
65 stdenv.mkDerivation rec {
66   pname = "inxi";
67   version = "3.3.35-1";
69   src = fetchFromGitea {
70     domain = "codeberg.org";
71     owner = "smxi";
72     repo = "inxi";
73     rev = version;
74     hash = "sha256-wWG/fs+tZIiFI+dcqfwXeh9RxT2zJDiAZoizhAAu60Q=";
75   };
77   nativeBuildInputs = [ makeWrapper ];
78   buildInputs = [ perl ];
80   installPhase = ''
81     mkdir -p $out/bin
82     cp inxi $out/bin/
83     wrapProgram $out/bin/inxi \
84       --set PERL5LIB "${perlPackages.makePerlPath (with perlPackages; [ CpanelJSONXS ])}" \
85       ${prefixPath programs}
86     mkdir -p $out/share/man/man1
87     cp inxi.1 $out/share/man/man1/
88   '';
90   meta = with lib; {
91     description = "Full featured CLI system information tool";
92     longDescription = ''
93       inxi is a command line system information script built for console and
94       IRC. It is also used a debugging tool for forum technical support to
95       quickly ascertain users' system configurations and hardware. inxi shows
96       system hardware, CPU, drivers, Xorg, Desktop, Kernel, gcc version(s),
97       Processes, RAM usage, and a wide variety of other useful information.
98     '';
99     homepage = "https://smxi.org/docs/inxi.htm";
100     changelog = "https://github.com/smxi/inxi/blob/${version}/inxi.changelog";
101     license = licenses.gpl3Plus;
102     platforms = platforms.unix;
103     maintainers = [ ];
104     mainProgram = "inxi";
105   };