nilla: migrate devshells
This commit is contained in:
parent
5efb7d00a8
commit
636adf8cf3
3 changed files with 82 additions and 14 deletions
1
.envrc
1
.envrc
|
@ -1 +1,2 @@
|
||||||
use flake
|
use flake
|
||||||
|
watch_file nilla.nix
|
||||||
|
|
13
flake.nix
13
flake.nix
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
outputs =
|
outputs =
|
||||||
inputs@{ flake-parts, ... }:
|
inputs@{ flake-parts, ... }:
|
||||||
|
let
|
||||||
|
nilla = import ./nilla.nix { inherit inputs; };
|
||||||
|
in
|
||||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = [
|
systems = [
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
|
@ -24,17 +27,11 @@
|
||||||
inputs',
|
inputs',
|
||||||
self',
|
self',
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
devShells.default = pkgs.mkShellNoCC {
|
devShells = builtins.mapAttrs (_: shell: shell.result.${system}) nilla.shells;
|
||||||
packages = [
|
|
||||||
inputs'.agenix.packages.agenix
|
|
||||||
self'.packages.attic-client
|
|
||||||
# TODO: Contribute darwin support to nh
|
|
||||||
pkgs.nh
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
# Re-export it for convenience and for caching
|
# Re-export it for convenience and for caching
|
||||||
|
|
82
nilla.nix
82
nilla.nix
|
@ -2,7 +2,7 @@
|
||||||
inputs ? import ./inputs.nix,
|
inputs ? import ./inputs.nix,
|
||||||
}:
|
}:
|
||||||
(import inputs.nilla).create (
|
(import inputs.nilla).create (
|
||||||
{ lib }:
|
{ config, lib }:
|
||||||
{
|
{
|
||||||
config.inputs = builtins.mapAttrs (_: src: {
|
config.inputs = builtins.mapAttrs (_: src: {
|
||||||
inherit src;
|
inherit src;
|
||||||
|
@ -20,17 +20,87 @@
|
||||||
build =
|
build =
|
||||||
pkg:
|
pkg:
|
||||||
lib.attrs.generate pkg.systems (
|
lib.attrs.generate pkg.systems (
|
||||||
system: inputs.nixpkgs.legacyPackages.${system}.callPackage pkg.package pkg.settings.args
|
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 = {
|
config.shells.default = {
|
||||||
systems = [ "x86_64-linux" ];
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
builder = "nixpkgs-flake";
|
builder = "nixpkgs-flake";
|
||||||
shell =
|
shell =
|
||||||
{ mkShell, hello }:
|
{
|
||||||
mkShell {
|
mkShellNoCC,
|
||||||
packages = [ hello ];
|
nh,
|
||||||
|
self',
|
||||||
|
}:
|
||||||
|
mkShellNoCC {
|
||||||
|
packages = [
|
||||||
|
self'.agenix
|
||||||
|
self'.attic-client
|
||||||
|
nh
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue