let lock = builtins.fromJSON (builtins.readFile ./flake.lock); lockedPkgs = import (fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; sha256 = lock.nodes.nixpkgs.locked.narHash; }) {}; in { pkgs ? lockedPkgs, }: let inherit (pkgs) lib stdenv rustPlatform installShellFiles; in rustPlatform.buildRustPackage rec { pname = "colmena"; version = "0.3.0-pre"; src = lib.cleanSourceWith { filter = name: type: !(type == "directory" && builtins.elem (baseNameOf name) [ "target" "manual" "integration-tests" ]); src = lib.cleanSource ./.; }; cargoSha256 = "sha256-YE+0jsdkzRaiUhPC71WBe/KcYERNy7nME26+ejrPRlc="; nativeBuildInputs = [ installShellFiles ]; postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' installShellCompletion --cmd colmena \ --bash <($out/bin/colmena gen-completions bash) \ --zsh <($out/bin/colmena gen-completions zsh) \ --fish <($out/bin/colmena gen-completions fish) ''; # Recursive Nix is not stable yet doCheck = false; passthru = { # We guarantee CLI and Nix API stability for the same minor version apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version)); }; meta = with lib; { description = "A simple, stateless NixOS deployment tool"; homepage = "https://zhaofengli.github.io/colmena/${passthru.apiVersion}"; license = licenses.mit; maintainers = with maintainers; [ zhaofengli ]; platforms = platforms.linux ++ platforms.darwin; }; }