From 54ddafd0fc527107156405190119755de69d1ba6 Mon Sep 17 00:00:00 2001 From: kalipso Date: Thu, 2 Nov 2023 00:50:36 +0100 Subject: [PATCH] [nix] support outputs for different architectures --- flake.lock | 36 ++++++++++++++++- flake.nix | 114 +++++++++++++++++++++++++++-------------------------- 2 files changed, 94 insertions(+), 56 deletions(-) diff --git a/flake.lock b/flake.lock index 6795807..02fd927 100644 --- a/flake.lock +++ b/flake.lock @@ -18,7 +18,41 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "utils": "utils" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index f5a34c0..7f3261c 100644 --- a/flake.nix +++ b/flake.nix @@ -4,13 +4,17 @@ #nixpkgs for testing framework inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - outputs = { self, nixpkgs, ... }: + inputs.utils.url = "github:numtide/flake-utils"; + + outputs = { self, nixpkgs, utils, ... }: + + nixpkgs.lib.attrsets.recursiveUpdate + (utils.lib.eachSystem (utils.lib.defaultSystems) ( system: let - forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ]; - pkgs = nixpkgs.legacyPackages."x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; in { - devShell."x86_64-linux" = pkgs.mkShell { + devShells.default = pkgs.mkShell { packages = with pkgs; [ go gotools @@ -19,40 +23,52 @@ ]; }; - packages.x86_64-linux.gokill = nixpkgs.legacyPackages.x86_64-linux.buildGoModule rec { - pname = "gokill"; - version = "1.0"; - vendorHash = "sha256-MVIvXxASUO33Ca34ruIz4S0QDJcW2unaG4+Zo73g/9o="; - src = ./.; + packages = { + gokill = pkgs.buildGoModule rec { + pname = "gokill"; + version = "1.0"; + vendorHash = "sha256-8xHjVwNskgiSoDKbOpL2phHub1F21ios1t9BcZB944o="; + src = ./.; - buildInputs = [ - pkgs.olm - ]; + buildInputs = [ + pkgs.olm + ]; + + postInstall = '' + ''; + }; + + gokill-docbuilder = pkgs.buildGoModule rec { + pname = "docbuilder"; + version = "1.0"; + vendorHash = "sha256-8xHjVwNskgiSoDKbOpL2phHub1F21ios1t9BcZB944o="; + buildFLags = "-o . $dest/cmd/gokill/docbuilder"; + src = ./.; + + buildInputs = [ + pkgs.olm + ]; + + postInstall = '' + ''; + }; + + + docs = pkgs.callPackage (import ./docs/default.nix) { self = self; }; + + default = self.packages.${system}.gokill; - postInstall = '' - ''; }; - packages.x86_64-linux.gokill-docbuilder = nixpkgs.legacyPackages.x86_64-linux.buildGoModule rec { - pname = "docbuilder"; - version = "1.0"; - vendorHash = "sha256-MVIvXxASUO33Ca34ruIz4S0QDJcW2unaG4+Zo73g/9o="; - buildFLags = "-o . $dest/cmd/gokill/docbuilder"; - src = ./.; - - buildInputs = [ - pkgs.olm - ]; - - postInstall = '' - ''; + apps = { + docs = { + type = "app"; + program = builtins.toString (pkgs.writeScript "docs" '' + ${pkgs.python3}/bin/python3 -m http.server --directory ${self.packages."${system}".docs}/share/doc''); + }; }; - - packages.x86_64-linux.docs = pkgs.callPackage (import ./docs/default.nix) { self = self; }; - - packages.x86_64-linux.default = self.packages.x86_64-linux.gokill; - + })) ({ nixosModules.gokill = import ./nixos-modules/gokill.nix { self = self; }; packages.x86_64-linux.testVm = @@ -64,6 +80,7 @@ self.nixosModules.gokill { services.gokill.enable = true; + services.gokill.testRun = false; services.gokill.triggers = [ { type = "Timeout"; @@ -72,19 +89,12 @@ duration = 10; }; actions = [ - { - type = "Timeout"; - options = { - duration = 5; - }; - stage = 1; - } - { - type = "Shutdown"; - options = { - }; - stage = 2; - } + { + type = "Shutdown"; + options = { + }; + stage = 2; + } ]; } ]; @@ -104,19 +114,13 @@ ''); }; - apps.x86_64-linux.docs = { - type = "app"; - program = builtins.toString (nixpkgs.legacyPackages."x86_64-linux".writeScript "docs" '' - ${pkgs.python3}/bin/python3 -m http.server --directory ${self.packages."x86_64-linux".docs}/share/doc''); - }; - - checks = forAllSystems (system: let + checks.x86_64-linux = let checkArgs = { - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = nixpkgs.legacyPackages."x86_64-linux"; inherit self; }; in { gokill = import ./test/test.nix checkArgs; - }); - }; + }; + }) ; }