this repo has no description
at main 1.5 kB view raw
1{ config, lib, pkgs, ... }: 2 3let cfg = config.programs.moonlight-mod; 4in { 5 options.programs.moonlight-mod = { 6 enable = lib.mkEnableOption "Yet another Discord mod"; 7 8 configs = let 9 # TODO: type this 10 type = lib.types.nullOr (lib.types.attrs); 11 default = null; 12 in { 13 stable = lib.mkOption { 14 inherit type default; 15 description = "Configuration for Discord Stable"; 16 }; 17 18 ptb = lib.mkOption { 19 inherit type default; 20 description = "Configuration for Discord PTB"; 21 }; 22 23 canary = lib.mkOption { 24 inherit type default; 25 description = "Configuration for Discord Canary"; 26 }; 27 28 development = lib.mkOption { 29 inherit type default; 30 description = "Configuration for Discord Development"; 31 }; 32 }; 33 }; 34 35 config = lib.mkIf cfg.enable { 36 xdg.configFile."moonlight-mod/stable.json" = 37 lib.mkIf (cfg.configs.stable != null) { 38 text = builtins.toJSON cfg.configs.stable; 39 }; 40 41 xdg.configFile."moonlight-mod/ptb.json" = 42 lib.mkIf (cfg.configs.ptb != null) { 43 text = builtins.toJSON cfg.configs.ptb; 44 }; 45 46 xdg.configFile."moonlight-mod/canary.json" = 47 lib.mkIf (cfg.configs.canary != null) { 48 text = builtins.toJSON cfg.configs.canary; 49 }; 50 51 xdg.configFile."moonlight-mod/development.json" = 52 lib.mkIf (cfg.configs.development != null) { 53 text = builtins.toJSON cfg.configs.development; 54 }; 55 }; 56}