flakes/flake.nix

72 lines
2.3 KiB
Nix
Raw Normal View History

2021-05-11 14:32:58 +07:00
{
inputs = {
2021-07-14 07:42:25 +07:00
nixpkgs.url = "github:NixOS/nixpkgs";
2021-07-04 21:25:20 +07:00
home-manager.url = "github:nix-community/home-manager";
2021-07-05 10:40:52 +07:00
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
2021-07-04 21:25:20 +07:00
secrets.url = "github:LavaDesu/flakes-secrets";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
2021-07-05 10:40:52 +07:00
neovim-nightly.inputs.nixpkgs.follows = "nixpkgs";
2021-05-11 14:32:58 +07:00
};
outputs = inputs: with inputs;
2021-05-13 17:59:46 +07:00
let
getPaths = root: builtins.map
(path: root + ("/" + path)) # Prepends root path
(builtins.attrNames (builtins.readDir root)); # Reads root path
customPackages = pkgs:
let
callPackage = pkgs.callPackage;
in {
linux-lava = callPackage ./packages/linux-lava {};
wine-osu = callPackage ./packages/wine-osu { inherit getPaths; };
};
overlays = (builtins.map
(path: import path) # Imports path
(builtins.filter
(path: nixpkgs.lib.hasSuffix ".nix" path) # Checks file extension
(getPaths ./overlays)
)
2021-07-05 10:40:52 +07:00
) ++ [(self: super: customPackages super)]
++ [inputs.neovim-nightly.overlay];
2021-06-16 16:08:10 +07:00
base = { config, ... }: {
system = rec {
configurationRevision =
if self ? rev
then self.rev
else throw "Refusing to build from a dirty Git tree!";
2021-06-16 16:08:10 +07:00
nixos = rec {
version = config.system.nixos.release + versionSuffix;
versionSuffix = "-${config.system.name}.r${builtins.toString self.revCount}.${self.shortRev}";
#versionSuffix = ".${nixpkgs.lib.substring 0 8 (nixpkgs.lastModifiedDate or nixpkgs.lastModified or "19700101")}.r${revCount}-${nixpkgs.lib.substring 0 11 (nixpkgs.rev or "dirty")}";
2021-06-16 16:08:10 +07:00
};
};
2021-05-13 17:59:46 +07:00
nix.registry.nixpkgs.flake = nixpkgs;
nixpkgs.overlays = overlays;
2021-05-13 17:59:46 +07:00
};
2021-05-26 21:05:59 +07:00
hm-base = {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
2021-05-13 17:59:46 +07:00
};
in
{
nixosConfigurations."winter" = nixpkgs.lib.nixosSystem {
2021-05-13 17:59:46 +07:00
system = "x86_64-linux";
modules = [
base
2021-05-26 21:05:59 +07:00
home-manager.nixosModules.home-manager
hm-base
./hosts/winter
secrets.nixosModules.winter
2021-05-13 17:59:46 +07:00
];
};
packages.x86_64-linux = customPackages nixpkgs.legacyPackages.x86_64-linux;
2021-05-11 14:32:58 +07:00
};
}