infra/module/system/package-system.nix
2025-12-01 13:23:24 +07:00

67 lines
No EOL
1.9 KiB
Nix

{ inputs, withSystem, ... }:
{
flake-file.inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-latest.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs/master";
nixkpgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
pkgs-by-name-for-flake-parts.url = "github:drupol/pkgs-by-name-for-flake-parts";
nix-webapps.url = "github:TLATER/nix-webapps";
};
imports = [
inputs.pkgs-by-name-for-flake-parts.flakeModule
];
perSystem =
{ system, ... }:
{
pkgsDirectory = ../../package;
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
# ----- overlays for ./package
overlays = [
(_final: _prev: {
master = import inputs.nixpkgs-master {
inherit system;
config.allowUnfree = true;
};
})
(_final: _prev: {
latest = import inputs.nixpkgs-latest {
inherit system;
config.allowUnfree = true;
};
})
inputs.nix-webapps.overlays.lib
];
};
};
# ----- overlays for flake
flake.overlays = {
default =
_final: prev:
withSystem prev.stdenv.hostPlatform.system (
{ system, config, ... }:
{
# ----- for apply packages in /package
local = config.packages;
# ----- for pinning nixpkgs version
stable = import inputs.nixpkgs-stable {
inherit system;
config.allowUnfree = true;
};
latest = import inputs.nixpkgs-latest {
inherit system;
config.allowUnfree = true;
};
master = import inputs.nixpkgs-master {
inherit system;
config.allowUnfree = true;
};
}
);
};
}