nixos-config/flake.nix
Charlotte 🦝 Delenk a3a8951f00
Some checks failed
Hydra nixosConfigurations.pc-installer Hydra build #25914 of nixos-config:pr618:nixosConfigurations.pc-installer
Hydra nixosConfigurations.thinkrac Hydra build #25916 of nixos-config:pr618:nixosConfigurations.thinkrac
Hydra nixosConfigurations.rainbow-resort Hydra build #25915 of nixos-config:pr618:nixosConfigurations.rainbow-resort
Hydra packages.aarch64-linux.kodi-joyn Hydra build #25894 of nixos-config:pr618:packages.aarch64-linux.kodi-joyn
Hydra packages.aarch64-linux.art-lotte-bgs-sfw Hydra build #25893 of nixos-config:pr618:packages.aarch64-linux.art-lotte-bgs-sfw
Hydra packages.x86_64-linux.art-lotte-bgs-sfw Hydra build #25899 of nixos-config:pr618:packages.x86_64-linux.art-lotte-bgs-sfw
Hydra packages.x86_64-linux.kodi-joyn Hydra build #25900 of nixos-config:pr618:packages.x86_64-linux.kodi-joyn
Hydra devShells.x86_64-linux.default Hydra build #25879 of nixos-config:pr618:devShells.x86_64-linux.default
Hydra packages.x86_64-linux.art-lotte Hydra build #25897 of nixos-config:pr618:packages.x86_64-linux.art-lotte
Hydra packages.x86_64-linux.package-updater Hydra build #25901 of nixos-config:pr618:packages.x86_64-linux.package-updater
Hydra packages.x86_64-linux.art-lotte-bgs-nsfw Hydra build #25898 of nixos-config:pr618:packages.x86_64-linux.art-lotte-bgs-nsfw
Hydra packages.aarch64-linux.art-lotte Hydra build #25891 of nixos-config:pr618:packages.aarch64-linux.art-lotte
Hydra packages.aarch64-linux.art-lotte-bgs-nsfw Hydra build #25892 of nixos-config:pr618:packages.aarch64-linux.art-lotte-bgs-nsfw
Hydra nixosConfigurations.not522 Hydra build #25912 of nixos-config:pr618:nixosConfigurations.not522
Hydra nixosConfigurations.not522-installer Hydra build #25913 of nixos-config:pr618:nixosConfigurations.not522-installer
Hydra packages.riscv64-linux.art-lotte Hydra build #25752 of nixos-config:pr618:packages.riscv64-linux.art-lotte
Hydra packages.aarch64-linux.package-updater Hydra build #25895 of nixos-config:pr618:packages.aarch64-linux.package-updater
Hydra packages.riscv64-linux.art-lotte-bgs-sfw Hydra build #25754 of nixos-config:pr618:packages.riscv64-linux.art-lotte-bgs-sfw
Hydra packages.riscv64-linux.art-lotte-bgs-nsfw Hydra build #25753 of nixos-config:pr618:packages.riscv64-linux.art-lotte-bgs-nsfw
Hydra packages.riscv64-linux.package-updater Hydra build #25896 of nixos-config:pr618:packages.riscv64-linux.package-updater
remove import-from-derivation
2024-11-16 09:53:35 +01:00

244 lines
6.5 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
description = "Lottes nix configuration";
inputs = {
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
flake-utils = {
url = "github:numtide/flake-utils";
inputs.systems.follows = "systems";
};
flakey-profile = {
url = "github:lf-/flakey-profile";
};
gitignore = {
url = "github:hercules-ci/gitignore.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence = {
url = "github:nix-community/impermanence";
};
lix = {
url = "git+https://git.lix.systems/lix-project/lix";
inputs.flake-compat.follows = "flake-compat";
inputs.nix2container.follows = "nix2container";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs.flake-utils.follows = "flake-utils";
inputs.flakey-profile.follows = "flakey-profile";
inputs.lix.follows = "lix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
nix2container = {
url = "github:nlewo/nix2container";
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixpkgs.url = "github:nixos/nixpkgs";
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
pre-commit-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.flake-compat.follows = "flake-compat";
inputs.gitignore.follows = "gitignore";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
riscv-overlay = {
url = "github:DarkKirb/riscv-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
rycee-nur-expressions = {
url = "git+https://gitlab.com/rycee/nur-expressions";
flake = false;
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
systems.url = "github:nix-systems/default";
vscode-server = {
url = "github:nix-community/nixos-vscode-server";
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
...
}@inputs':
let
inputs = inputs' // {
nixos-config = self;
inherit inputs;
inTester = false;
pureInputs = inputs';
};
pkgsFor =
system:
let
inputs' = inputs // {
inherit system;
inputs = inputs';
};
in
import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays =
[
(
_: _:
inputs'
// {
inputs = inputs';
}
)
self.overlays.default
]
++ (
if system == "riscv64-linux" then
[
inputs.riscv-overlay.overlays.default
]
else
[ ]
);
};
in
{
nixosModules = {
default = import ./modules/default.nix;
};
nixosConfigurations =
with nixpkgs.lib;
let
mkSystem =
args:
let
inputs' = inputs // {
inherit (args) system;
};
in
nixosSystem (
args
// {
specialArgs = args.specialArgs or { } // inputs';
}
);
systems' = {
not522 = {
config = ./machine/not522;
system = "riscv64-linux";
};
not522-installer = {
config = ./machine/not522/installer;
system = "riscv64-linux";
};
pc-installer = {
config = ./machine/pc-installer;
system = "x86_64-linux";
};
rainbow-resort = {
config = ./machine/rainbow-resort;
system = "x86_64-linux";
};
thinkrac = {
config = ./machine/thinkrac;
system = "x86_64-linux";
};
};
systems = mapAttrs (
_: system:
mkSystem {
inherit (system) system;
modules = [
system.config
];
}
) systems';
in
systems;
hydraJobs = {
inherit (self) devShells packages;
nixosConfigurations = nixpkgs.lib.mapAttrs (
_: v: v.config.system.build.toplevel
) self.nixosConfigurations;
};
devShells.x86_64-linux.default =
with pkgsFor "x86_64-linux";
mkShell {
nativeBuildInputs = with pkgs; [
age
sops
ssh-to-age
nixfmt-rfc-style
nix-prefetch
nix-prefetch-git
];
};
formatter.x86_64-linux = (pkgsFor "x86_64-linux").nixfmt-rfc-style;
overlays.default = import ./packages;
packages = nixpkgs.lib.listToAttrs (
map
(name: {
inherit name;
value =
let
pkgs = pkgsFor name;
in
{
inherit (pkgs)
art-lotte
art-lotte-bgs-nsfw
art-lotte-bgs-sfw
package-updater
;
}
// (
if name != "riscv64-linux" then
{
inherit (pkgs) kodi-joyn;
}
else
{ }
);
})
[
"x86_64-linux"
"riscv64-linux"
"aarch64-linux"
]
);
};
}