depot/packages/catalog/packages.nix

30 lines
726 B
Nix

{ lib, ... }:
let
pins = import ../sources;
in
{
perSystem = { config, ... }: {
catalog.depot = {
packages = lib.mapAttrs (name: package: {
description = "Package: ${name}";
actions = lib.mkMerge [
{
build = {
description = "Build this package.";
command = "nix build -L '${builtins.unsafeDiscardStringContext package.drvPath}^*'";
};
}
(lib.mkIf (pins ? ${name}) {
updatePin = {
description = "Update this package's source pin.";
command = "${lib.getExe config.packages.pin} update ${name}";
};
})
];
}) config.packages;
};
};
}