{ sources ? import ../sources.nix, pkgs ? import sources.nixpkgs {}, ... }: let inherit (pkgs) lib; mkHaskellPackage = { src, name, apply ? lib.id, }: let drv = pkgs.haskellPackages.callCabal2nix name src {}; in lib.pipe drv [ apply pkgs.haskell.lib.dontHaddock pkgs.haskell.lib.justStaticExecutables ]; infuse-lib = import sources.infuse { inherit lib; sugars = infuse-lib.v1.default-sugars; }; infuse = lib.flip infuse-lib.v1.infuse; iosevka-pin = import sources.pin-iosevka {}; mkNerdFont = iosevka-pin.callPackage ../lib/mkNerdFont.nix {}; in rec { # fonts altiosevka = iosevka-pin.callPackage ./altiosevka {}; altiosevka-nerd-font-mono = mkNerdFont { font = altiosevka; extraArgs = [ "--name {/.}-NFM" "--use-single-width-glyphs" ]; }; prop-solveur = mkHaskellPackage { name = "prop-solveur"; src = sources.prop_solveur; apply = infuse { __output.nativeBuildInputs.__append = [pkgs.installShellFiles]; __output.postInstall.__append = '' installShellCompletion --cmd prop-solveur \ --bash <("$out/bin/prop-solveur" --bash-completion-script "$out/bin/prop-solveur") \ --fish <("$out/bin/prop-solveur" --fish-completion-script "$out/bin/prop-solveur") \ --zsh <("$out/bin/prop-solveur" --zsh-completion-script "$out/bin/prop-solveur") ''; }; }; hutils = mkHaskellPackage { name = "hutils"; src = sources.hutils; }; audio-lint = pkgs.rustPlatform.buildRustPackage rec { pname = "audio-lint"; version = lib.substring 0 8 sources.audio-lint.rev; src = sources.audio-lint; cargoLock.lockFile = "${src}/Cargo.lock"; }; }