{ compiler ? "default" }: let stockholm = import ; inherit (stockholm.systems.${lib.krops.getHostName}) config pkgs; inherit (stockholm) lib; haskellPackages = if compiler == "default" then pkgs.haskellPackages else pkgs.haskell.packages.${compiler}; drv = haskellPackages.callPackage (import ./.) {}; in lib.overrideDerivation drv.env (oldAttrs: { buildInputs = [ pkgs.flameshot pkgs.xwaitforwindow ]; shellHook = '' pkg_name=${lib.escapeShellArg (builtins.baseNameOf (toString ./.))} WORKDIR=${lib.escapeShellArg (toString ./.)} CACHEDIR=$HOME/tmp/$pkg_name HISTFILE=$CACHEDIR/bash_history mkdir -p "$CACHEDIR" exe=$CACHEDIR/${lib.currentSystem} build() {( set -efu cd "$WORKDIR" options=$( ${pkgs.cabal-read}/bin/ghc-options "$pkg_name.cabal" "$pkg_name" ) exec ghc $options \ -isrc \ -odir "$CACHEDIR" \ -hidir "$CACHEDIR" \ -o "$exe" \ src/main.hs )} run() {( exec "$exe" "$@" )} export SHELL=/run/current-system/sw/bin/bash export FLAMESHOT_CAPTURE_PATH="$CACHEDIR/captures" cd "$WORKDIR" ''; })