diff --git a/modules/programs/am2rlauncher.nix b/modules/programs/am2rlauncher.nix new file mode 100644 index 00000000..01a6b53b --- /dev/null +++ b/modules/programs/am2rlauncher.nix @@ -0,0 +1,48 @@ +{ + lib, + pkgs, + config, + ... +}: +let + inherit (lib) + types + mkIf + mkEnableOption + mkPackageOption + mkOption + ; + + cfg = config.programs.am2rlauncher; +in +{ + meta.maintainers = with lib.hm.maintainers; [ aguirre-matteo ]; + options.programs.am2rlauncher = { + enable = mkEnableOption "am2rlauncher"; + package = mkPackageOption pkgs "am2rlauncher" { nullable = true; }; + config = mkOption { + type = with types; either str path; + default = ""; + example = '' + + + ''; + description = '' + Config file for am2rlauncher in XML format. You can see the available options + by modifying the settings in the GUI and looking at $XDG_CONFIG_HOME/AM2RLauncher/config.xml. + ''; + }; + }; + + config = mkIf cfg.enable { + assertions = [ + (lib.hm.assertions.assertPlatform "programs.am2rlauncher" pkgs lib.platforms.linux) + ]; + + home.packages = mkIf (cfg.package != null) [ cfg.package ]; + xdg.configFile."AM2RLauncher/config.xml" = mkIf (cfg.config != "") { + source = + if lib.isPath cfg.config then cfg.config else pkgs.writeText "am2rlauncher-config.xml" cfg.config; + }; + }; +} diff --git a/tests/modules/programs/am2rlauncher/config.xml b/tests/modules/programs/am2rlauncher/config.xml new file mode 100644 index 00000000..92053418 --- /dev/null +++ b/tests/modules/programs/am2rlauncher/config.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/modules/programs/am2rlauncher/default.nix b/tests/modules/programs/am2rlauncher/default.nix new file mode 100644 index 00000000..2fc5645f --- /dev/null +++ b/tests/modules/programs/am2rlauncher/default.nix @@ -0,0 +1,5 @@ +{ lib, pkgs, ... }: + +lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux { + am2rlauncher-settings = ./settings.nix; +} diff --git a/tests/modules/programs/am2rlauncher/settings.nix b/tests/modules/programs/am2rlauncher/settings.nix new file mode 100644 index 00000000..4704ff7f --- /dev/null +++ b/tests/modules/programs/am2rlauncher/settings.nix @@ -0,0 +1,12 @@ +{ + programs.am2rlauncher = { + enable = true; + config = ./config.xml; + }; + + nmt.script = '' + assertFileExists home-files/.config/AM2RLauncher/config.xml + assertFileContent home-files/.config/AM2RLauncher/config.xml \ + ${./config.xml} + ''; +}