1{
2 lib,
3 arrow,
4 buildPythonPackage,
5 fetchFromGitHub,
6 freetype,
7 glibcLocales,
8 libjpeg,
9 pillow,
10 pocket,
11 pyfiglet,
12 pysocks,
13 python,
14 python-dateutil,
15 requests,
16 twitter,
17 zlib,
18}:
19
20buildPythonPackage {
21 pname = "rainbowstream";
22 version = "1.5.5";
23 format = "setuptools";
24
25 src = fetchFromGitHub {
26 owner = "orakaro";
27 repo = "rainbowstream";
28 # Request for tagging, https://github.com/orakaro/rainbowstream/issues/314
29 rev = "96141fac10675e0775d703f65a59c4477a48c57e";
30 sha256 = "0j0qcc428lk9b3l0cr2j418gd6wd5k4160ham2zn2mmdmxn5bldg";
31 };
32
33 buildInputs = [
34 freetype
35 glibcLocales
36 libjpeg
37 zlib
38 ];
39
40 propagatedBuildInputs = [
41 arrow
42 pillow
43 pocket
44 pyfiglet
45 pysocks
46 python-dateutil
47 requests
48 twitter
49 ];
50
51 patches = [ ./image.patch ];
52
53 postPatch = ''
54 clib=$out/${python.sitePackages}/rainbowstream/image.so
55 substituteInPlace rainbowstream/c_image.py \
56 --replace @CLIB@ $clib
57 sed -i 's/requests.*"/requests"/' setup.py
58 '';
59
60 LC_ALL = "en_US.UTF-8";
61
62 postInstall = ''
63 mkdir -p $out/lib
64 cc -fPIC -shared -o $clib rainbowstream/image.c
65 for prog in "$out/bin/"*; do
66 wrapProgram "$prog" \
67 --prefix PYTHONPATH : "$PYTHONPATH"
68 done
69 '';
70
71 # Project has no tests
72 doCheck = false;
73
74 pythonImportsCheck = [ "rainbowstream" ];
75
76 meta = with lib; {
77 description = "Streaming command-line twitter client";
78 mainProgram = "rainbowstream";
79 homepage = "https://github.com/orakaro/rainbowstream";
80 license = licenses.mit;
81 maintainers = with maintainers; [ thoughtpolice ];
82 };
83}