summaryrefslogtreecommitdiff
path: root/users/gkleen@bragi.nix
blob: df8909c55f90722248d4f19e0b25c2306b7c860f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
{
  packageOverrides = pkgs: rec {
    mpv = let mpv = pkgs.mpv.override { youtubeSupport = true; theoraSupport = true; }; in pkgs.stdenv.mkDerivation {
      name = "mpv-wrapper";
      src = mpv;
      unpackPhase = "true";
      buildInputs = [ pkgs.makeWrapper pkgs.rsync ];
      installPhase = ''
        mkdir -p $out
        rsync -a $src/ $out/
        chmod u+w $out/bin
        wrapProgram $out/bin/mpv \
          --set JACK_PROMISCUOUS_SERVER 1 \
          --run "umask 0"
      '';
    };
    jackmeter = let jackmeter = pkgs.jackmeter.override {}; in pkgs.stdenv.mkDerivation {
      name = "jackmeter-wrapper";
      src = jackmeter;
      unpackPhase = "true";
      buildInputs = [ pkgs.makeWrapper pkgs.rsync ];
      installPhase = ''
        mkdir -p $out
        rsync -a $src/ $out/
        chmod u+w $out/bin
        wrapProgram $out/bin/jack_meter \
          --set JACK_PROMISCUOUS_SERVER 1 \
          --run "umask 0"
      '';
    };
    myHaskellPackages = pkgs.recurseIntoAttrs (
      pkgs.haskellPackages.override {
        extension = self: super: let
          callPackage = pkgs.lib.callPackageWith ( pkgs // self );
        in {
          attoparsecExpr = callPackage ../custom/attoparsec-expr.nix {};
          shellMonad = callPackage ../custom/shell-monad.nix {};
          beuteltier = callPackage ../custom/beuteltier.nix {};
          opossum = callPackage ../custom/opossum.nix {};
          opossumWrapper = callPackage ../custom/opossum-wrapper.nix {};
          wombat = callPackage ../custom/wombat.nix {};
          wombatWrapper = pkgs.stdenv.mkDerivation {
            name = "wombat-wrapper";
            src = self.wombat;
            unpackPhase = "true";
            buildInputs = [ pkgs.makeWrapper pkgs.rsync ];
            installPhase = ''
              mkdir -p $out
              rsync -a $src/ $out/
              chmod u+w $out/bin
              wrapProgram $out/bin/wombat \
                --prefix PATH : ${pkgs.ffmpeg}/bin \
                --prefix PATH : ${pkgs.wget}/bin \
                --prefix PATH : ${pkgs.youtube-dl}/bin
            '';
          };
          filelock = callPackage ../custom/filelock.nix {};
          trivmix = callPackage ../custom/trivmix.nix {};
        };
      }
    );
    runOpossum = pkgs.callPackage ../custom/run-opossum_bragi.nix {
      wombat = myHaskellPackages.wombatWrapper;
      opossum = myHaskellPackages.opossumWrapper;
    };
    adjmix = let trivmix = myHaskellPackages.trivmix; in
      pkgs.stdenv.mkDerivation {
        name = "adjmix";
        buildCommand = ''
          mkdir -p $out/bin
          cp ${trivmix}/bin/adjmix $out/bin
        '';
      };
  };
}