]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - default.nix
Add some tool applications
[perso/Immae/Config/Nix.git] / default.nix
index 5227b47df06d030de89ab71808b9a2a08f56c6f7..9dd553c1daeff173caec40288e0876149a1ffa63 100644 (file)
@@ -1,6 +1,21 @@
 with import <nixpkgs> {};
 let
   nixpkgs = import <nixpkgs> {};
+  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;
@@ -69,10 +84,130 @@ let
     }
   );
 
-  #weechat = callPackage nixpkgs.weechat { guileSupport = false; luaSupport = false; rubySupport = false; tclSupport = false; };
+  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 <nixpkgs/pkgs/development/perl-modules/generic> { };
+  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 ];
+  });
+
+  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;
@@ -90,5 +225,15 @@ in
     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;
   }