diff options
author | ene <ene@sils.li> | 2023-02-20 08:45:56 +0100 |
---|---|---|
committer | ene <ene@sils.li> | 2023-02-20 10:40:41 +0100 |
commit | 3ee8467b9a6382641543e2ac485d5c2623e9b0c4 (patch) | |
tree | c121a13230b36557eb76890a1f920cfd667efe29 /flake | |
parent | Feat(bootstrap): Add a script for quick activation (diff) | |
download | nixos-config-3ee8467b9a6382641543e2ac485d5c2623e9b0c4.tar.gz nixos-config-3ee8467b9a6382641543e2ac485d5c2623e9b0c4.zip |
Feat(flake): Move the in and outputs to separate files
Diffstat (limited to '')
-rw-r--r-- | flake.nix | 69 | ||||
-rw-r--r-- | flake/inputs/default.nix | 37 | ||||
-rw-r--r-- | flake/nixosConfigurations/default.nix | 78 |
3 files changed, 121 insertions, 63 deletions
diff --git a/flake.nix b/flake.nix index 55302f95..4509c80b 100644 --- a/flake.nix +++ b/flake.nix @@ -2,71 +2,14 @@ { description = "Nixos system config"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - home-manager = { - url = "github:nix-community/home-manager/master"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - agenix = { - url = "github:ryantm/agenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - impermanence = { - url = "github:nix-community/impermanence"; - }; - - neovim_config = { - url = "git+https://codeberg.org/ene/neovim-config.git"; - flake = false; - }; - - strip_js_comments = { - url = "git+https://codeberg.org/ene/strip_js_comments.git"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - shell-library = { - url = "git+https://git.sils.li/ene/lib-sh.git"; - flake = false; - }; - user_js = { - url = "github:arkenfox/user.js"; - flake = false; - }; - snap-sync = { - url = "github:qubidt/snap-sync"; - flake = false; - }; - }; + inputs = import ./flake/inputs; - outputs = { - self, - nixpkgs, - home-manager, - neovim_config, - strip_js_comments, - user_js, - impermanence, - agenix, - snap-sync, - shell-library, - ... - } @ inputs: let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - sysLib = import ./lib {inherit pkgs shell-library;}; + outputs = {self, ...} @ inputs: let + pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; + system = "x86_64-linux"; in { - nixosConfigurations.tiamat = let - system = "x86_64-linux"; - in - nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = - pkgs.lib.recursiveUpdate inputs - sysLib; - modules = [ - ./hosts/tiamat/configuration.nix - agenix.nixosModules.default + nixosConfigurations = + import ./outputs/nixosConfigurations {inherit inputs system;}; packages."${system}" = { install = import ./bootstrap/install { diff --git a/flake/inputs/default.nix b/flake/inputs/default.nix new file mode 100644 index 00000000..d3300cad --- /dev/null +++ b/flake/inputs/default.nix @@ -0,0 +1,37 @@ +{_}: { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + agenix = { + url = "github:ryantm/agenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + impermanence = { + url = "github:nix-community/impermanence"; + }; + + neovim_config = { + url = "git+https://codeberg.org/ene/neovim-config.git"; + flake = false; + }; + + strip_js_comments = { + url = "git+https://codeberg.org/ene/strip_js_comments.git"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + shell-library = { + url = "git+https://git.sils.li/ene/lib-sh.git"; + flake = false; + }; + user_js = { + url = "github:arkenfox/user.js"; + flake = false; + }; + snap-sync = { + url = "github:qubidt/snap-sync"; + flake = false; + }; +} diff --git a/flake/nixosConfigurations/default.nix b/flake/nixosConfigurations/default.nix new file mode 100644 index 00000000..e5aa8020 --- /dev/null +++ b/flake/nixosConfigurations/default.nix @@ -0,0 +1,78 @@ +# vim: ts=2 +{ + system, + inputs, + ... +}: let + sysLib = import ../../lib { + inherit pkgs; + inherit (inputs) shell-library; + }; + lib = inputs.nixpkgs.lib.extend (_: _: { + inherit (sysLib) makeShellScriptWithLibrary; + }); + + inherit (inputs.nixpkgs.lib) nixosSystem; + + pkgs = import inputs.nixpkgs { + inherit system; + config = { + allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + ]; + }; + }; + homeManagerConfig = { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.soispha = import ./home-manager; + extraSpecialArgs = { + inherit pkgs; + inherit + (inputs) + user_js + system + neovim_config + impermanence + snap-sync + ; + }; + }; + }; + defaultModules = [ + inputs.agenix.nixosModules.default + + inputs.home-manager.nixosModules.home-manager + homeManagerConfig + ]; +in { + # full systems + tiamat = nixosSystem { + inherit system; + specialArgs = {inherit inputs pkgs;}; + modules = + [ + ./hosts/tiamat/configuration.nix + ] + ++ defaultModules; + }; + mammun = nixosSystem { + inherit system; + specialArgs = {inherit inputs pkgs;}; + modules = + [ + ./hosts/mammun/configuration.nix + ] + ++ defaultModules; + }; + + # minimal ones + spawn = nixosSystem { + inherit system; + specialArgs = inputs; + modules = [./hosts/spawn/configuration.nix]; + }; +} |