X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=default.nix;h=9dd553c1daeff173caec40288e0876149a1ffa63;hb=9106eaf4633b3500cac2d83df47363e3e894b404;hp=d8280272a0a5499b2040de76118c3a134dc36720;hpb=29120e770a57d04219fe4087210fe959348200a1;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/default.nix b/default.nix index d828027..9dd553c 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,21 @@ with import {}; let nixpkgs = import {}; + postHook = '' + header() { + echo -ne "\033[1;36m" + echo -n "$1" + echo -e "\033[0m" + } + + echoCmd() { + printf "\033[1;34m%s:\033[0m" "$1" + shift + printf ' %q' "$@" + echo + } + ''; + fetchedGithub = path: let json = lib.importJSON path; @@ -10,6 +25,15 @@ let src = fetchFromGitHub json.github; }; + fetchedGit = path: + let + json = lib.importJSON path; + in rec { + version = json.tag; + name = "${json.meta.name}-${version}"; + src = fetchgit json.git; + }; + ledger = (nixpkgs.ledger.override { boost = boost166; }).overrideAttrs (oldAttrs: fetchedGithub ./fetched/ledger.json // { postInstall = ""; @@ -50,20 +74,166 @@ let configureFlags = oldAttrs.configureFlags ++ [ "--with-slrnpull" ]; }); - ldapvi = nixpkgs.ldapvi.overrideAttrs (oldAttrs: rec { - name = "ldapvi-${version}"; - version = "f1d42ba-master"; - src = fetchgit (lib.importJSON ./ldapvi.json); + ldapvi = nixpkgs.ldapvi.overrideAttrs (oldAttrs: fetchedGit ./fetched/ldapvi.json); + + nixos = import ./nixos_tools.nix {}; + + pass = nixpkgs.pass.overrideAttrs (oldAttrs: + fetchedGit ./fetched/pass.json // { + patches = oldAttrs.patches ++ [ ./patches/pass-fix-pass-init.patch ]; + } + ); + + profanity = (nixpkgs.profanity.override { + notifySupport = true; + inherit libnotify gpgme gdk_pixbuf; + python = python3; + }).overrideAttrs (oldAttrs: rec { + configureFlags = oldAttrs.configureFlags ++ [ "--enable-plugins" ]; + }); + + weechat = nixpkgs.weechat.override { + configure = { availablePlugins, ... }: { + plugins = with availablePlugins; [ + (python.withPackages (ps: with ps; [websocket_client emoji])) + perl + ]; + }; + }; + + buildPerlPackage = callPackage { }; + note = buildPerlPackage rec { + name = "note-1.3.26"; + src = fetchurl { + url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz"; + sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq"; + }; + outputs = ["out" "man"]; + buildInputs = [ perlPackages.YAML ]; + meta = with stdenv.lib; { + description = "A perl script for maintaining notes"; + homepage = http://www.daemon.de/NOTE; + license = licenses.gpl3; + maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ]; + platforms = platforms.unix; + }; + }; + + terminal_velocity = with python2Packages; buildPythonApplication rec { + pname = "terminal-velocity-git"; + version = "0.2.0"; + + patches = [ + # FIXME: update this patch when version changes + ./patches/terminal_velocity_fix_build.patch + ./patches/terminal_velocity_sort_found_notes.patch + ]; + + propagatedBuildInputs = [ chardet urwid sh pyyaml ]; + buildInputs = [ m2r restructuredtext_lint pygments ]; + + src = fetchPypi { + inherit pname version; + sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9"; + }; + }; + + mtop = buildPerlPackage rec { + name = "mtop-${version}"; + version = "0.6.6"; + src = fetchurl { + url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz"; + sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf"; + }; + outputs = ["out"]; + buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ]; + + postInstall = '' + cd "$out" + preConfigure || true + ''; + meta = with stdenv.lib; { + description = "MySQL top (monitor and examine slow queries)"; + homepage = http://mtop.sourceforge.net/; + license = licenses.gpl3; + maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ]; + platforms = platforms.unix; + }; + }; + + tiv = buildPerlPackage rec { + name = "tiv-${version}"; + version = "2015"; + src = fetchurl { + url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz"; + sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90"; + }; + outputs = ["out"]; + buildInputs = [ perlPackages.PerlMagick ]; + perlPreHookScript = ./hooks/tiv_builder.sh; + perlPreHook = '' + source ${perlPreHookScript} + ''; + installPhase = '' + install -Dm755 tiv "$out/bin/tiv" + ''; + }; + + cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec { + configureFlags = [ + "--with-etc-dir=/etc/cnagios" + "--with-var-dir=/var/lib/naemon" + "--with-nagios-data=4" + ]; + + prePatch = '' + sed -i -e "s/-lcurses/-lncurses/" Makefile.in + ''; + installPhase = '' + install -dm755 $out/share/doc/cnagios + install -Dm644 cnagiosrc $out/share/doc/cnagios/ + install -Dm644 cnagios.help $out/share/doc/cnagios/ + install -Dm644 cnagios.pl $out/share/doc/cnagios/ + install -dm755 $out/bin + install -Dm755 cnagios $out/bin/ + ''; + propagatedBuildInputs = [ perl ncurses ]; }); - #weechat = callPackage nixpkgs.weechat { guileSupport = false; luaSupport = false; rubySupport = false; tclSupport = false; }; + nagios-cli = python2Packages.buildPythonApplication (fetchedGithub ./fetched/nagios-cli.json); + +# https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh +# https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks in { inherit nix-prefetch-scripts; + inherit nix-generate-from-cpan; inherit ledger; inherit taskwarrior vit timewarrior; inherit weboob; inherit slrn; inherit sc-im; inherit ldapvi; + inherit pal; + inherit duplicity duply; + inherit pdftk; + inherit googler; + inherit jrnl; + inherit apg; + inherit newsboat; + inherit vcsh; + inherit xmr-stak; + inherit urlwatch; + inherit pass; + inherit ranger; + inherit profanity; + inherit weechat irssi; + inherit note terminal_velocity; + inherit mtop; + inherit tiv; + inherit cnagios nagios-cli; + inherit abook khard khal; + inherit graphicsmagick; + inherit youtube-dl; + #inherit nixos; }