packages feed

update-nix-fetchgit-0.2.2: default.nix

{ pkgs ? import ./nixpkgs.nix, compiler ? null, hoogle ? true
, forShell ? pkgs.lib.inNixShell }:

let
  src = pkgs.nix-gitignore.gitignoreSource [ ] ./.;

  compiler' = if compiler != null then
    compiler
  else
    "ghc" + pkgs.lib.concatStrings
    (pkgs.lib.splitVersion pkgs.haskellPackages.ghc.version);

  # Any overrides we require to the specified haskell package set
  haskellPackages = with pkgs.haskell.lib;
    pkgs.haskell.packages.${compiler'}.override {
      overrides = self: super:
        {
          data-fix = self.data-fix_0_3_0;
          optparse-generic = self.optparse-generic_1_4_4;
          optparse-applicative = self.optparse-applicative_0_16_0_0;
        } // pkgs.lib.optionalAttrs hoogle {
          ghc = super.ghc // { withPackages = super.ghc.withHoogle; };
          ghcWithPackages = self.ghc.withPackages;
        };
    };

  # Any packages to appear in the environment provisioned by nix-shell
  extraPackages = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
  withExtras = drv:
    drv.overrideAttrs
    (attrs: { buildInputs = attrs.buildInputs ++ extraPackages; });

  # Generate a haskell derivation using the cabal2nix tool on `update-nix-fetchgit.cabal`
  drv = haskellPackages.callCabal2nix "update-nix-fetchgit" src { };

in withExtras (if forShell then drv.env else drv)