diff --git a/checks.nix b/checks.nix index 2c5b12a..66ee350 100644 --- a/checks.nix +++ b/checks.nix @@ -1,9 +1,22 @@ -{ pkgs, formatter }: -{ - format = pkgs.runCommand - "check-format" - { - buildInputs = [ formatter ]; - } - "${formatter}/bin/nixpkgs-fmt --check ${./.} && touch $out"; -} +{ self +, deploy-rs +, flake-utils +, nixpkgs +, ... +}: +#builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib // +(flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + formatter = self.formatter.${system}; + in + { + checks = { + format = pkgs.runCommand + "check-format" + { + buildInputs = [ formatter ]; + } + "${formatter}/bin/nixpkgs-fmt --check ${./.} && touch $out"; + } // deploy-rs.lib."${system}".deployChecks self.deploy; + })).checks diff --git a/deploy.nix b/deploy.nix new file mode 100644 index 0000000..fd394b8 --- /dev/null +++ b/deploy.nix @@ -0,0 +1,22 @@ +{ self, deploy-rs, ... }: +let + domain = "dadada.li"; + system = "x86_64-linux"; + activateNixos = deploy-rs.lib."${system}".activate.nixos; + configs = self.nixosConfigurations; + daNode = hostname: { + hostname = "${hostname}.${domain}"; + fastConnection = true; + profiles = { + system = { + sshUser = "dadada"; + path = activateNixos configs."${hostname}"; + user = "root"; + }; + }; + }; +in +{ + nodes.ifrit = daNode "ifrit"; +} + diff --git a/dev-shell.nix b/dev-shell.nix index 4be50f0..fc2c720 100644 --- a/dev-shell.nix +++ b/dev-shell.nix @@ -1,6 +1,7 @@ -{ pkgs, agenix-bin, ... }: +{ pkgs, agenix, deploy-rs, system, ... }: pkgs.mkShell { buildInputs = [ - agenix-bin + agenix.defaultPackage."${system}" + deploy-rs.defaultPackage."${system}" ]; } diff --git a/flake.lock b/flake.lock index b2ef740..1f43241 100644 --- a/flake.lock +++ b/flake.lock @@ -20,6 +20,28 @@ "type": "github" } }, + "deploy-rs": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "myNixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1659725433, + "narHash": "sha256-1ZxuK67TL29YLw88vQ18Y2Y6iYg8Jb7I6/HVzmNB6nM=", + "owner": "serokell", + "repo": "deploy-rs", + "rev": "41f15759dd8b638e7b4f299730d94d5aa46ab7eb", + "type": "github" + }, + "original": { + "owner": "serokell", + "repo": "deploy-rs", + "type": "github" + } + }, "doom-emacs": { "flake": false, "locked": { @@ -166,6 +188,22 @@ } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1648199409, + "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1650374568, @@ -356,7 +394,7 @@ "evil-org-mode": "evil-org-mode", "evil-quick-diff": "evil-quick-diff", "explain-pause-mode": "explain-pause-mode", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils_2", "format-all": "format-all", "nix-straight": "nix-straight", @@ -601,6 +639,7 @@ "root": { "inputs": { "agenix": "agenix", + "deploy-rs": "deploy-rs", "flake-utils": "flake-utils", "home-manager": "home-manager", "homePage": "homePage", @@ -685,6 +724,21 @@ "type": "github" } }, + "utils": { + "locked": { + "lastModified": 1648297722, + "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "ws-butler": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 501b480..a678789 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,10 @@ url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "myNixpkgs"; }; + deploy-rs = { + url = "github:serokell/deploy-rs"; + inputs.nixpkgs.follows = "myNixpkgs"; + }; }; outputs = { ... } @ args: import ./outputs.nix args; diff --git a/outputs.nix b/outputs.nix index 9c2ad7e..c7965e2 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,5 +1,6 @@ # Adapted from Mic92/dotfiles { self +, deploy-rs , flake-utils , homePage , nixpkgs @@ -17,16 +18,14 @@ pkgs = nixpkgs.legacyPackages.${system}; selfPkgs = self.packages.${system}; formatter = self.formatter.${system}; - agenix-bin = agenix.defaultPackage."${system}"; in { apps = import ./apps.nix { inherit pkgs; }; - devShells.default = pkgs.callPackage ./dev-shell.nix { inherit pkgs agenix-bin; }; + devShells.default = pkgs.callPackage ./dev-shell.nix inputs // { inherit pkgs system; }; formatter = nixpkgs.legacyPackages."${system}".nixpkgs-fmt; - checks = import ./checks.nix { inherit formatter pkgs; }; })) // { @@ -44,4 +43,8 @@ overlays = import ./overlays; hydraJobs = import ./hydra-jobs.nix inputs; + + deploy = import ./deploy.nix inputs; + + checks = import ./checks.nix inputs; }