flake-parts
Repo
Docs
perSystem
overlay を適用するには
nixpkgs 以外を使うには?
code:shell
input = {
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
}
output = {
flake-parts {
perSystem = {
inputs'.nixpkgs-unstable.legacyPackages.openapi-generator-cli
}
}
モジュールの import
imports で 別の flake attribute を指定できる
$ inputs.foo.flakeModules.default
例えば inputs.treefmt-nix.flakeModule を指定することで、treefmt をインポートできる
これは treefmt の flake で flakeModule attribute が定義されているため
code:shell
outputs = inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } (top@{ config, withSystem, moduleWithSystem, ... }: {
imports = [
# Optional: use external flake logic, e.g.
# inputs.foo.flakeModules.default
];
});
モジュールの定義
モジュールもまた、flake である
flake-module.nix という命名が慣習的?に用いられることが多そう
モジュールの引数は?
ドキュメントに記載はないが、input, self も渡されている
flake-parts.lib.mkFlake
定義
flake-parts を使って色々よしなにした結果として、最終的には flake output として出力する必要がある。それをやってくれるのが mkFlake なのだと思う。これはおまじない。
モジュールをまとめて一つの flake にしてくれるのかな?
これに渡せるオプションは何?
よく分からない。ここに書いてあるのだけ?
実装を読んだ方が良い