pkgs: migrate to nilla

This commit is contained in:
Nikodem Rabuliński 2025-03-23 13:17:56 +01:00
parent 173bb89f3a
commit 2542e4551a
Signed by: nrabulinski
SSH key fingerprint: SHA256:AZZVyfKStaCo8sbJB+3Rr/CRrlym1oEgw7vMnynJeR8
5 changed files with 93 additions and 89 deletions

View file

@ -35,34 +35,13 @@
./hosts ./hosts
./modules ./modules
./wrappers ./wrappers
./pkgs
./services ./services
]; ];
flake.devShells = transpose (builtins.mapAttrs (_: shell: shell.result) nilla.shells); flake.devShells = transpose (builtins.mapAttrs (_: shell: shell.result) nilla.shells);
flake.packages = transpose (builtins.mapAttrs (_: pkg: pkg.result) nilla.packages);
perSystem = perSystem = {
{
inputs',
self',
pkgs,
...
}:
{
packages = {
# Re-export it for convenience and for caching
inherit (inputs'.attic.packages) attic-client attic-server;
base-packages = pkgs.symlinkJoin {
name = "settei-base";
paths = with self'.packages; [
helix
fish
git-commit-last
git-fixup
];
};
};
treefmt = { treefmt = {
programs.deadnix.enable = true; programs.deadnix.enable = true;
programs.nixfmt.enable = true; programs.nixfmt.enable = true;

View file

@ -15,12 +15,7 @@
pkg: pkg:
lib.attrs.generate pkg.systems ( lib.attrs.generate pkg.systems (
system: system:
config.inputs.nixpkgs.result.legacyPackages.${system}.callPackage pkg.package ( config.inputs.nixpkgs.result.legacyPackages.${system}.callPackage pkg.package pkg.settings.args
{
self' = builtins.mapAttrs (_: pkg: pkg.result.${system}) config.packages;
}
// pkg.settings.args
)
); );
}; };
} }

View file

@ -4,7 +4,10 @@
(import inputs.nilla).create ( (import inputs.nilla).create (
{ config, lib }: { config, lib }:
{ {
includes = [ ./modules/nilla ]; includes = [
./modules/nilla
./pkgs
];
config.inputs = builtins.mapAttrs (_: src: { config.inputs = builtins.mapAttrs (_: src: {
inherit src; inherit src;
@ -32,8 +35,10 @@
builder = "custom-load"; builder = "custom-load";
package = { system }: inputs.${input}.packages.${system}.${output}; package = { system }: inputs.${input}.packages.${system}.${output};
}; };
getPkgs = system: builtins.mapAttrs (_: pkg: pkg.result.${system}) config.packages;
in in
{ {
# Re-export for convenience and for caching
attic-client = mkPackageFlakeOutput { attic-client = mkPackageFlakeOutput {
input = "attic"; input = "attic";
output = "attic-client"; output = "attic-client";
@ -44,10 +49,16 @@
}; };
agenix = mkPackageFlakeOutput { input = "agenix"; }; agenix = mkPackageFlakeOutput { input = "agenix"; };
base-packages = mkPackage ( base-packages = mkPackage (
{ symlinkJoin }: { symlinkJoin, system }:
symlinkJoin { symlinkJoin {
name = "settei-base"; name = "settei-base";
paths = [ ]; paths = with (getPkgs system); [
# TODO: wrappers
# helix
# fish
git-commit-last
git-fixup
];
} }
); );
}; };
@ -62,13 +73,13 @@
shell = shell =
{ {
mkShellNoCC, mkShellNoCC,
system,
nh, nh,
self',
}: }:
mkShellNoCC { mkShellNoCC {
packages = [ packages = [
self'.agenix config.packages.agenix.result.${system}
self'.attic-client config.packages.attic-client.result.${system}
nh nh
]; ];
}; };

View file

@ -1,6 +1,8 @@
{ {
lib, lib,
stdenv, stdenv,
pkgs,
system,
fenix, fenix,
crane, crane,
src, src,
@ -11,12 +13,12 @@
}: }:
let let
rust = rust =
with fenix; with fenix.${system};
combine [ combine [
stable.cargo stable.cargo
stable.rustc stable.rustc
]; ];
crane' = crane.overrideToolchain rust; crane' = (crane pkgs).overrideToolchain rust;
rocksdb' = rocksdb.overrideAttrs ( rocksdb' = rocksdb.overrideAttrs (
final: prev: { final: prev: {
version = "9.1.1"; version = "9.1.1";

View file

@ -1,35 +1,52 @@
{ inputs, ... }: let
{ systems = [
perSystem = "x86_64-linux"
{ "aarch64-linux"
pkgs, "aarch64-darwin"
lib, ];
inputs', builder = "nixpkgs-flake";
... mkPackage = package: {
}: inherit systems package builder;
{
packages.conduit-next = pkgs.callPackage ./conduit {
src = inputs.conduit-src;
crane = inputs.crane.mkLib pkgs;
fenix = inputs'.fenix.packages;
}; };
packages.git-commit-last = pkgs.writeShellApplication { in
{ config }:
{
config.packages.conduit-next = {
inherit systems builder;
package = import ./conduit;
settings.args = {
src = config.inputs.conduit-src.result;
crane = config.inputs.crane.result.mkLib;
fenix = config.inputs.fenix.result.packages;
};
};
config.packages.git-commit-last = mkPackage (
{ writeShellApplication }:
writeShellApplication {
name = "git-commit-last"; name = "git-commit-last";
text = '' text = ''
GITDIR="$(git rev-parse --git-dir)" GITDIR="$(git rev-parse --git-dir)"
git commit -eF "$GITDIR/COMMIT_EDITMSG" git commit -eF "$GITDIR/COMMIT_EDITMSG"
''; '';
}; }
);
packages.git-fixup = pkgs.writeShellApplication { config.packages.git-fixup = mkPackage (
{
lib,
writeShellApplication,
fzf,
}:
writeShellApplication {
name = "git-fixup"; name = "git-fixup";
text = '' text = ''
git log -n 50 --pretty=format:'%h %s' --no-merges | \ git log -n 50 --pretty=format:'%h %s' --no-merges | \
${lib.getExe pkgs.fzf} | \ ${lib.getExe fzf} | \
cut -c -7 | \ cut -c -7 | \
xargs -o git commit --fixup xargs -o git commit --fixup
''; '';
}; }
}; );
} }