nix-scope-plugin/flake.nix
2026-04-23 21:58:16 +10:00

77 lines
1.8 KiB
Nix

{
description = "Nix plugin providing a `scope` builtin for constructing nested attrsets from dotted paths";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs =
{ self, nixpkgs }:
let
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
in
{
nixosModules = {
default =
{ pkgs, config, ... }:
{
nix.settings.plugin-files = [
"${
self.packages.${pkgs.stdenv.hostPlatform.system}.default { nix = config.nix.package; }
}/lib/nix/plugins/libnix-scope-plugin.so"
];
};
};
packages = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
default =
{
nix ? pkgs.nix,
}:
pkgs.stdenv.mkDerivation {
pname = "nix-scope-plugin";
version = "0.1.0";
src = self;
nativeBuildInputs = [
pkgs.cmake
pkgs.pkg-config
];
buildInputs = [
nix
nix.dev
pkgs.boost
pkgs.nlohmann_json
];
};
}
);
devShells = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
nix = pkgs.nix;
in
{
default = pkgs.mkShell {
packages = [
pkgs.cmake
pkgs.pkg-config
nix
nix.dev
pkgs.boost
pkgs.nlohmann_json
];
};
}
);
};
}