{ argopkgs-src ? (builtins.fetchGit { url = https://xgitlab.cels.anl.gov/argo/argopkgs.git; ref = "master"; rev = "86c53fa5ba67edb3994f6ed971cdfa14bf850b4b"; }) , pkgs ? (import argopkgs-src {}), nrm-src ? pkgs.nodelevel.nrm.src, containers-src ? pkgs.nodelevel.containers.src, libnrm-src ? pkgs.nodelevel.libnrm.src }: let nrm = pkgs.nodelevel.nrm.overrideAttrs (old: { src = nrm-src; }); libnrm = pkgs.nodelevel.libnrm.overrideAttrs (old: { src = libnrm-src; }); containers = pkgs.nodelevel.containers.overrideAttrs (old: { src = containers-src; }); amg = pkgs.applications.nrm.amg; filterHdevTools = builtins.filterSource (path: type: baseNameOf path != ".hdevtools.sock"); hpkgs = pkgs.haskellPackages.override { overrides = self: super: rec { argo = self.callCabal2nix "argo" (filterHdevTools ./argo) {}; }; }; devInputs = with hpkgs; with pkgs; [ sysstat ]; devHPackages = with hpkgs; [ cabal-install apply-refact hdevtools hindent hlint shake brittany ghcid ]; shellHook = '' source completion/argotk.sh echo "Installed bash completion." ''; in rec { inherit(hpkgs) argo; dev-lib = hpkgs.shellFor { packages = p: with p; [ argo ]; withHoogle = true; buildInputs = devInputs ++ devHPackages; }; manifests = ./manifests; argotk = pkgs.stdenv.mkDerivation rec { name = "env"; env = pkgs.buildEnv { name = name; paths = buildInputs ++ propagatedBuildInputs; }; src = ./argotk; installPhase ='' mkdir -p $out/bin mkdir -p $out/share cp argotk.hs $out/bin cp ${manifests}/* $out/share/ ''; buildInputs = [ (hpkgs.ghcWithPackages (p: [p.argo ])) ]; propagatedBuildInputs = [ (hpkgs.ghcWithPackages (p: [p.argo ])) pkgs.coreutils ]; inherit shellHook; }; test = pkgs.stdenv.mkDerivation rec { name = "env"; env = pkgs.buildEnv { name = name; paths = buildInputs; }; buildInputs = [ argotk pkgs.coreutils containers amg nrm ]; inherit shellHook; MANIFESTS = ./manifests; }; hack = pkgs.stdenv.mkDerivation rec { name = "env"; env = pkgs.buildEnv { name = name; paths = buildInputs; }; buildInputs = [ containers amg nrm (hpkgs.ghcWithPackages (p: devHPackages ++ [ argotk argo (pkgs.haskell.lib.doJailbreak p.panpipe) p.turtle])) ]; inherit shellHook; MANIFESTS = ./manifests; }; }