107 lines
2.5 KiB
Nix
107 lines
2.5 KiB
Nix
{
|
|
inputs ? import ./inputs.nix,
|
|
}:
|
|
(import inputs.nilla).create (
|
|
{ config, lib }:
|
|
{
|
|
config.inputs = builtins.mapAttrs (_: src: {
|
|
inherit src;
|
|
loader = "raw";
|
|
}) inputs;
|
|
|
|
config.builders.nixpkgs-flake = {
|
|
settings.type = lib.types.submodule {
|
|
options.args = lib.options.create {
|
|
type = lib.types.any;
|
|
default.value = { };
|
|
};
|
|
};
|
|
settings.default = { };
|
|
build =
|
|
pkg:
|
|
lib.attrs.generate pkg.systems (
|
|
system:
|
|
inputs.nixpkgs.legacyPackages.${system}.callPackage pkg.package (
|
|
{
|
|
self' = builtins.mapAttrs (_: pkg: pkg.result.${system}) config.packages;
|
|
}
|
|
// pkg.settings.args
|
|
)
|
|
);
|
|
};
|
|
|
|
config.builders.custom-load = {
|
|
settings.type = lib.types.submodule {
|
|
options.args = lib.options.create {
|
|
type = lib.types.null;
|
|
default.value = null;
|
|
};
|
|
};
|
|
settings.default = { };
|
|
build = pkg: lib.attrs.generate pkg.systems (system: pkg.package { inherit system; });
|
|
};
|
|
|
|
config.packages =
|
|
let
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
"aarch64-darwin"
|
|
];
|
|
mkPackage = package: {
|
|
builder = "nixpkgs-flake";
|
|
inherit systems package;
|
|
};
|
|
mkPackageFlakeOutput =
|
|
{
|
|
input,
|
|
output ? input,
|
|
}:
|
|
{
|
|
inherit systems;
|
|
builder = "custom-load";
|
|
package = { system }: inputs.${input}.packages.${system}.${output};
|
|
};
|
|
in
|
|
{
|
|
attic-client = mkPackageFlakeOutput {
|
|
input = "attic";
|
|
output = "attic-client";
|
|
};
|
|
attic-server = mkPackageFlakeOutput {
|
|
input = "attic";
|
|
output = "attic-server";
|
|
};
|
|
agenix = mkPackageFlakeOutput { input = "agenix"; };
|
|
base-packages = mkPackage (
|
|
{ symlinkJoin }:
|
|
symlinkJoin {
|
|
name = "settei-base";
|
|
paths = [ ];
|
|
}
|
|
);
|
|
};
|
|
|
|
config.shells.default = {
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
"aarch64-darwin"
|
|
];
|
|
builder = "nixpkgs-flake";
|
|
shell =
|
|
{
|
|
mkShellNoCC,
|
|
nh,
|
|
self',
|
|
}:
|
|
mkShellNoCC {
|
|
packages = [
|
|
self'.agenix
|
|
self'.attic-client
|
|
nh
|
|
];
|
|
};
|
|
};
|
|
}
|
|
)
|