Skip to content

Instantly share code, notes, and snippets.

@3noch
Last active December 9, 2016 05:21
Show Gist options
  • Save 3noch/7095975e2e61e37f7a7c4b4c123909a8 to your computer and use it in GitHub Desktop.
Save 3noch/7095975e2e61e37f7a7c4b4c123909a8 to your computer and use it in GitHub Desktop.
Example Haskell Packages Override from GitHub - Nix
{ callPackage, haskell, lib, pkgs, ...}:
let
fetchCabal = { cabal2nix, fetchgit, fetchzip, haskellPackages, runCommand, ... }:
let
srcPackage = src: folder:
runCommand "src-package"
{
inherit src;
buildInputs = [ cabal2nix ];
}
''
mkdir -p $out
cp -r $src/${folder}/* $out
cd $out
cabal2nix . > package.nix
'';
fetch = src: folder: haskellPackages.callPackage "${srcPackage src folder}/package.nix" {};
in {
inherit fetch;
fromGit = url: rev: sha256: fetch (fetchgit {
inherit url rev sha256;
});
fromZip = url: sha256: fetch (fetchzip {
inherit url sha256;
});
};
fast = p: haskell.lib.dontHaddock (haskell.lib.dontCheck p);
haskellPackagesOverridden = pkgs.haskellPackages.override {
overrides = self: super: let
fetchCabal' = callPackage fetchCabal { haskellPackages = self; };
in {
drifter-postgresql = # drifter-postgresql (latest on GitHub)
fast (fetchCabal'.fromZip
"https://github.com/MichaelXavier/drifter-postgresql/archive/b6281b10724665bb8a68e4a9bca48e061431ef4e.zip"
"0p6pgj5kpmacljljys64lr4r2bysbc8rxl4ha0ijrskqg66irfkh"
"");
};
};
in mkDerivation {...}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment