]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - default.nix
Add postHook to highlight nix messages
[perso/Immae/Config/Nix.git] / default.nix
1 with import <nixpkgs> {};
2 let
3 nixpkgs = import <nixpkgs> {};
4 postHook = ''
5 header() {
6 echo -ne "\033[1;36m"
7 echo -n "$1"
8 echo -e "\033[0m"
9 }
10
11 echoCmd() {
12 printf "\033[1;34m%s:\033[0m" "$1"
13 shift
14 printf ' %q' "$@"
15 echo
16 }
17 '';
18
19 fetchedGithub = path:
20 let
21 json = lib.importJSON path;
22 in rec {
23 version = json.tag;
24 name = "${json.meta.name}-${version}";
25 src = fetchFromGitHub json.github;
26 };
27
28 fetchedGit = path:
29 let
30 json = lib.importJSON path;
31 in rec {
32 version = json.tag;
33 name = "${json.meta.name}-${version}";
34 src = fetchgit json.git;
35 };
36
37 ledger = (nixpkgs.ledger.override { boost = boost166; }).overrideAttrs (oldAttrs:
38 fetchedGithub ./fetched/ledger.json // {
39 postInstall = "";
40 }
41 );
42
43 taskwarrior = nixpkgs.taskwarrior.overrideAttrs (oldAttrs: rec {
44 postInstall = ''${oldAttrs.postInstall}
45 mkdir -p "$out/share/vim/vimfiles/ftdetect"
46 mkdir -p "$out/share/vim/vimfiles/syntax"
47 ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/"
48 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/"
49 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/"
50 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/"
51 '';
52 });
53
54 vit = (nixpkgs.vit.override { inherit taskwarrior; }).overrideAttrs (oldAttrs:
55 fetchedGithub ./fetched/vit.json // {
56 buildInputs = oldAttrs.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
57 }
58 );
59
60 weboob = pythonPackages.weboob.overrideAttrs (oldAttrs: rec {
61 postInstall = ''${oldAttrs.postInstall or ""}
62 mkdir -p $out/share/bash-completion/completions/
63 cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
64 '';
65 });
66
67 slrn = nixpkgs.slrn.overrideAttrs (oldAttrs: rec {
68 version = "1.0.3a";
69 name = "slrn-${version}";
70 src = fetchurl {
71 url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
72 sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
73 };
74 configureFlags = oldAttrs.configureFlags ++ [ "--with-slrnpull" ];
75 });
76
77 ldapvi = nixpkgs.ldapvi.overrideAttrs (oldAttrs: fetchedGit ./fetched/ldapvi.json);
78
79 nixos = import ./nixos_tools.nix {};
80
81 pass = nixpkgs.pass.overrideAttrs (oldAttrs:
82 fetchedGit ./fetched/pass.json // {
83 patches = oldAttrs.patches ++ [ ./patches/pass-fix-pass-init.patch ];
84 }
85 );
86
87 profanity = (nixpkgs.profanity.override {
88 notifySupport = true;
89 inherit libnotify gpgme gdk_pixbuf;
90 python = python3;
91 }).overrideAttrs (oldAttrs: rec {
92 configureFlags = oldAttrs.configureFlags ++ [ "--enable-plugins" ];
93 });
94
95 weechat = nixpkgs.weechat.override {
96 configure = { availablePlugins, ... }: {
97 plugins = with availablePlugins; [
98 (python.withPackages (ps: with ps; [websocket_client emoji]))
99 perl
100 ];
101 };
102 };
103
104 buildPerlPackage = callPackage <nixpkgs/pkgs/development/perl-modules/generic> { };
105 note = buildPerlPackage rec {
106 name = "note-1.3.26";
107 src = fetchurl {
108 url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
109 sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq";
110 };
111 outputs = ["out" "man"];
112 buildInputs = [ perlPackages.YAML ];
113 meta = with stdenv.lib; {
114 description = "A perl script for maintaining notes";
115 homepage = http://www.daemon.de/NOTE;
116 license = licenses.gpl3;
117 maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ];
118 platforms = platforms.unix;
119 };
120 };
121
122 terminal_velocity = with python2Packages; buildPythonApplication rec {
123 pname = "terminal-velocity-git";
124 version = "0.2.0";
125
126 patches = [
127 # FIXME: update this patch when version changes
128 ./patches/terminal_velocity_fix_build.patch
129 ./patches/terminal_velocity_sort_found_notes.patch
130 ];
131
132 propagatedBuildInputs = [ chardet urwid sh pyyaml ];
133 buildInputs = [ m2r restructuredtext_lint pygments ];
134
135 src = fetchPypi {
136 inherit pname version;
137 sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9";
138 };
139 };
140
141 mtop = buildPerlPackage rec {
142 name = "mtop-${version}";
143 version = "0.6.6";
144 src = fetchurl {
145 url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz";
146 sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf";
147 };
148 outputs = ["out"];
149 buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ];
150
151 postInstall = ''
152 cd "$out"
153 preConfigure || true
154 '';
155 meta = with stdenv.lib; {
156 description = "MySQL top (monitor and examine slow queries)";
157 homepage = http://mtop.sourceforge.net/;
158 license = licenses.gpl3;
159 maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ];
160 platforms = platforms.unix;
161 };
162 };
163
164 tiv = buildPerlPackage rec {
165 name = "tiv-${version}";
166 version = "2015";
167 src = fetchurl {
168 url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz";
169 sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90";
170 };
171 outputs = ["out"];
172 buildInputs = [ perlPackages.PerlMagick ];
173 perlPreHookScript = ./hooks/tiv_builder.sh;
174 perlPreHook = ''
175 source ${perlPreHookScript}
176 '';
177 installPhase = ''
178 install -Dm755 tiv "$out/bin/tiv"
179 '';
180 };
181
182 # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
183 # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
184 in
185 {
186 inherit nix-prefetch-scripts;
187 inherit nix-generate-from-cpan;
188 inherit ledger;
189 inherit taskwarrior vit timewarrior;
190 inherit weboob;
191 inherit slrn;
192 inherit sc-im;
193 inherit ldapvi;
194 inherit pal;
195 inherit duplicity duply;
196 inherit pdftk;
197 inherit googler;
198 inherit jrnl;
199 inherit apg;
200 inherit newsboat;
201 inherit vcsh;
202 inherit xmr-stak;
203 inherit urlwatch;
204 inherit pass;
205 inherit ranger;
206 inherit profanity;
207 inherit weechat;
208 inherit note terminal_velocity;
209 inherit mtop;
210 inherit tiv;
211 #inherit nixos;
212 }