colmena/default.nix
Zhaofeng Li 06804e3715 Support macOS
Currently it requires Linux remote builders to be set up to do
anything useful, but soon it will not once we able to initiate
builds directly on the target nodes themselves.
2022-01-01 16:41:35 -08:00

46 lines
1.5 KiB
Nix

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;
};
}