06804e3715
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.
46 lines
1.5 KiB
Nix
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;
|
|
};
|
|
}
|