{nixpkgs, ...}: let mkTool = { name, lispDeps, }: system: let pkgs = nixpkgs.legacyPackages.${system}; sbcl = pkgs.sbcl.withPackages lispDeps; in pkgs.stdenv.mkDerivation { inherit system name; src = ../../tools; builder = ../../build.sh; dontStrip = true; buildInputs = [ pkgs.makeWrapper pkgs.openssl.dev sbcl pkgs.which pkgs.zsh ]; }; mkZenburn = mkTool { name = "zenburn"; lispDeps = ps: with ps; [ alexandria dufy net_dot_didierverna_dot_clon net_dot_didierverna_dot_clon_dot_termio serapeum #uiop ]; }; mkCls = mkTool { name = "cls"; lispDeps = ps: with ps; [ alexandria data-lens local-time net_dot_didierverna_dot_clon net_dot_didierverna_dot_clon_dot_termio yason #uiop ]; }; mkGitPickPatch = mkTool { name = "git-pick-patch"; lispDeps = ps: with ps; [ alexandria serapeum cl-ppcre ]; }; mkJsonFormatter = mkTool { name = "json-formatter"; lispDeps = ps: with ps; [ net_dot_didierverna_dot_clon net_dot_didierverna_dot_clon_dot_termio alexandria serapeum com_dot_inuoe_dot_jzon ]; }; mkPrefixedSed = system: let pkgs = nixpkgs.legacyPackages.${system}; in pkgs.callPackage ./prefixed-gnused {}; mkCurl = system: let pkgs = nixpkgs.legacyPackages.${system}; in pkgs.curl.override { openssl = pkgs.quictls; http3Support = true; }; mkTools = system: { zenburn = mkZenburn system; cls = mkCls system; git-pick-patch = mkGitPickPatch system; json-formatter = mkJsonFormatter system; mycurl = mkCurl system; gsed = mkPrefixedSed system; }; darwinPackages = system: (mkTools system) // { iterm2 = let pkgs = nixpkgs.legacyPackages.${system}; in pkgs.callPackage ./iterm.nix { version = "3.5.11"; hash = "sha256-vcZL74U9RNjhpIQRUUn6WueYhE/LfLqpb/JgWunY5dI="; }; }; in builtins.mapAttrs (system: f: f system) { "aarch64-darwin" = darwinPackages; "aarch64-linux" = mkTools; "x86_64-linux" = mkTools; }