diff --git a/flake.nix b/flake.nix index 22359e7..d7e1de5 100644 --- a/flake.nix +++ b/flake.nix @@ -3,33 +3,36 @@ inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; }; - outputs = { self, nixpkgs, ... }: + outputs = + { self, nixpkgs, ... }: let # DayZ only runs on x86_64 systems system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - overlays = [ self.overlays.default ]; - }; + pkgs = import nixpkgs { inherit system; }; in - with pkgs; { + { packages.${system} = rec { default = dzgui; - inherit (pkgs) dzgui; + dzgui = pkgs.callPackage ./package { }; }; overlays = { - default = (final: _: { - dzgui = (final.callPackage ./package { }); - }); + default = import ./overlay.nix; }; nixosModules = rec { default = dzgui; - dzgui = import ./module.nix { inherit self; }; + dzgui = import ./module.nix; }; - devShells.${system}.default = - mkShell { buildInputs = self.packages.${system}.default.runtimeDeps; }; + devShells.${system}.default = pkgs.mkShell { + buildInputs = self.packages.${system}.default.runtimeDeps; + }; + + checks.${system}.nixosCheck = + (nixpkgs.lib.nixosSystem { + inherit system; + modules = [ ./nixos-test/configuration.nix ]; + }).config.system.build.toplevel; }; } diff --git a/module.nix b/module.nix index f72f285..1f957e2 100644 --- a/module.nix +++ b/module.nix @@ -1,25 +1,29 @@ -{ self, ... }: -{ pkgs, config, lib, ... }: -with lib; +{ + pkgs, + config, + lib, + ... +}: let cfg = config.programs.dzgui; in { options.programs.dzgui = { - enable = mkEnableOption (mdDoc '' - Weather to install dzgui and setup workarounds for DayZ to work on linux - ''); - package = mkOption { - type = with types; nullOr package; - default = pkgs.dzgui; - defaultText = literalExpression "pkgs.dzgui"; - description = mdDoc "Dzgui package to use."; + enable = lib.mkEnableOption ( + lib.mdDoc '' + Weather to install dzgui and setup workarounds for DayZ to work on linux + '' + ); + package = lib.mkOption { + type = with lib.types; nullOr package; + default = pkgs.callPackage ./package { }; + defaultText = lib.literalExpression "pkgs.dzgui"; + description = lib.mdDoc "Dzgui package to use."; }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { # Needed by DayZ boot.kernel.sysctl."vm.max_map_count" = 1048576; - nixpkgs.overlays = [ self.overlays.default ]; environment.systemPackages = [ cfg.package ]; }; } diff --git a/nixos-test/configuration.nix b/nixos-test/configuration.nix new file mode 100644 index 0000000..302d4d3 --- /dev/null +++ b/nixos-test/configuration.nix @@ -0,0 +1,7 @@ +{ + imports = [ ../module.nix ]; + programs.dzgui.enable = true; + + boot.isContainer = true; + system.stateVersion = "24.05"; +} diff --git a/overlay.nix b/overlay.nix new file mode 100644 index 0000000..a431f2a --- /dev/null +++ b/overlay.nix @@ -0,0 +1 @@ +(final: _: { dzgui = (final.callPackage ./package { }); }) diff --git a/package/default.nix b/package/default.nix index 8d38801..8f4e05c 100644 --- a/package/default.nix +++ b/package/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchFromGitHub -, makeWrapper -, curl -, jq -, python3 -, wmctrl -, xdotool -, gnome -, gobject-introspection -, wrapGAppsHook +{ + lib, + stdenv, + fetchFromGitHub, + makeWrapper, + curl, + jq, + python3, + wmctrl, + xdotool, + gnome, + gobject-introspection, + wrapGAppsHook, }: stdenv.mkDerivation rec { pname = "dzgui"; @@ -38,9 +39,7 @@ stdenv.mkDerivation rec { runtimeDeps = [ curl jq - (python3.withPackages (p: with p; [ - pygobject3 - ])) + (python3.withPackages (p: with p; [ pygobject3 ])) wmctrl xdotool