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