1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5 pciutils,
6 installShellFiles,
7}:
8python3Packages.buildPythonApplication rec {
9 pname = "hyfetch";
10 version = "1.99.0";
11 pyproject = true;
12
13 outputs = [
14 "out"
15 "man"
16 ];
17
18 src = fetchFromGitHub {
19 owner = "hykilpikonna";
20 repo = "hyfetch";
21 tag = version;
22 hash = "sha256-GL1/V+LgSXJ4b28PfinScDrJhU9VDa4pVi24zWEzbAk=";
23 };
24
25 build-system = [
26 python3Packages.setuptools
27 ];
28
29 dependencies = [
30 python3Packages.typing-extensions
31 ];
32
33 nativeBuildInputs = [
34 installShellFiles
35 ];
36
37 # No test available
38 doCheck = false;
39
40 pythonImportsCheck = [
41 "hyfetch"
42 ];
43
44 # NOTE: The HyFetch project maintains an updated version of neofetch renamed
45 # to "neowofetch" which is included in this package. However, the man page
46 # included is still named "neofetch", so to prevent conflicts and confusion
47 # we rename the file to "neowofetch" before installing it:
48 postInstall = ''
49 mv ./docs/neofetch.1 ./docs/neowofetch.1
50 installManPage ./docs/hyfetch.1 ./docs/neowofetch.1
51 '';
52
53 postFixup = ''
54 wrapProgram $out/bin/neowofetch \
55 --prefix PATH : ${lib.makeBinPath [ pciutils ]}
56 '';
57
58 meta = {
59 description = "Neofetch with pride flags <3";
60 longDescription = ''
61 HyFetch is a command-line system information tool fork of neofetch.
62 HyFetch displays information about your system next to your OS logo
63 in ASCII representation. The ASCII representation is then colored in
64 the pattern of the pride flag of your choice. The main purpose of
65 HyFetch is to be used in screenshots to show other users what
66 operating system or distribution you are running, what theme or
67 icon set you are using, etc.
68 '';
69 homepage = "https://github.com/hykilpikonna/HyFetch";
70 license = lib.licenses.mit;
71 mainProgram = "hyfetch";
72 maintainers = with lib.maintainers; [
73 yisuidenghua
74 isabelroses
75 nullcube
76 ];
77 };
78}