{ pkgs ? import { overlays = [ (import ./pkgs) (self: super: { anissue = pkgs.writers.writeDashBin "anissue" '' set -efu exec cabal run anissue -- "$@" ''; }) ]; } }: let haskellPackages = pkgs.haskellPackages.override { overrides = self: super: { anissue = (super.callCabal2nix "anissue" ./. { }).overrideAttrs (oldAttrs: rec { nativeBuildInputs = [ pkgs.installShellFiles ]; buildInputs = oldAttrs.buildInputs or [ ] ++ [ pkgs.makeWrapper ]; passthru = oldAttrs.passthru // { dependencies = [ pkgs.coreutils pkgs.git pkgs.tree-grepper ]; }; postInstall = '' exe=${oldAttrs.pname} wrapProgram $out/bin/$exe --prefix PATH : ${pkgs.lib.makeBinPath passthru.dependencies} installShellCompletion --cmd $exe \ --bash <($out/bin/$exe --bash-completion-script $out/bin/.$exe-wrapped) \ --fish <($out/bin/$exe --fish-completion-script $out/bin/.$exe-wrapped) \ --zsh <($out/bin/$exe --zsh-completion-script $out/bin/.$exe-wrapped) ''; }); }; }; in rec { inherit (haskellPackages) anissue; shell = haskellPackages.shellFor { packages = _: [ anissue ]; buildInputs = [ haskellPackages.cabal-install haskellPackages.hlint haskellPackages.ormolu haskellPackages.pointfree pkgs.anissue pkgs.ghcid pkgs.haskell-language-server ] ++ anissue.passthru.dependencies; withHoogle = true; withHaddock = true; shellHook = '' HISTFILE=${pkgs.lib.escapeShellArg ./.}/.history; export HISTFILE ''; }; }