diff options
author | Bobby Rong <rjl931189261@126.com> | 2021-07-03 22:19:26 +0800 |
---|---|---|
committer | Bobby Rong <rjl931189261@126.com> | 2021-07-03 22:20:55 +0800 |
commit | a743c6d35a8e59aa8d0d92494c8e00a525a384f8 (patch) | |
tree | 98f20657a5a4b6aa750acffb2557342f0772eb17 /nixos/doc/manual/development | |
parent | 9afb04f765bba1015314efb723a58ed68c393021 (diff) | |
download | nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar.gz nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar.bz2 nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar.lz nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar.xz nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.tar.zst nixpkgs-a743c6d35a8e59aa8d0d92494c8e00a525a384f8.zip |
nixos: nixos/doc/manual/development/replace-modules.xml to CommonMark
Diffstat (limited to 'nixos/doc/manual/development')
-rw-r--r-- | nixos/doc/manual/development/replace-modules.section.md | 64 | ||||
-rw-r--r-- | nixos/doc/manual/development/replace-modules.xml | 79 | ||||
-rw-r--r-- | nixos/doc/manual/development/writing-modules.xml | 2 |
3 files changed, 65 insertions, 80 deletions
diff --git a/nixos/doc/manual/development/replace-modules.section.md b/nixos/doc/manual/development/replace-modules.section.md new file mode 100644 index 00000000000..0700a82004c --- /dev/null +++ b/nixos/doc/manual/development/replace-modules.section.md @@ -0,0 +1,64 @@ +# Replace Modules {#sec-replace-modules} + +Modules that are imported can also be disabled. The option declarations, +config implementation and the imports of a disabled module will be +ignored, allowing another to take it\'s place. This can be used to +import a set of modules from another channel while keeping the rest of +the system on a stable release. + +`disabledModules` is a top level attribute like `imports`, `options` and +`config`. It contains a list of modules that will be disabled. This can +either be the full path to the module or a string with the filename +relative to the modules path (eg. \<nixpkgs/nixos/modules> for nixos). + +This example will replace the existing postgresql module with the +version defined in the nixos-unstable channel while keeping the rest of +the modules and packages from the original nixos channel. This only +overrides the module definition, this won\'t use postgresql from +nixos-unstable unless explicitly configured to do so. + +```nix +{ config, lib, pkgs, ... }: + +{ + disabledModules = [ "services/databases/postgresql.nix" ]; + + imports = + [ # Use postgresql service from nixos-unstable channel. + # sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable + <nixos-unstable/nixos/modules/services/databases/postgresql.nix> + ]; + + services.postgresql.enable = true; +} +``` + +This example shows how to define a custom module as a replacement for an +existing module. Importing this module will disable the original module +without having to know it\'s implementation details. + +```nix +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.man; +in + +{ + disabledModules = [ "services/programs/man.nix" ]; + + options = { + programs.man.enable = mkOption { + type = types.bool; + default = true; + description = "Whether to enable manual pages."; + }; + }; + + config = mkIf cfg.enabled { + warnings = [ "disabled manpages for production deployments." ]; + }; +} +``` diff --git a/nixos/doc/manual/development/replace-modules.xml b/nixos/doc/manual/development/replace-modules.xml deleted file mode 100644 index 9fc5678ca1b..00000000000 --- a/nixos/doc/manual/development/replace-modules.xml +++ /dev/null @@ -1,79 +0,0 @@ -<section xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:xi="http://www.w3.org/2001/XInclude" - version="5.0" - xml:id="sec-replace-modules"> - <title>Replace Modules</title> - - <para> - Modules that are imported can also be disabled. The option declarations, - config implementation and the imports of a disabled module will be ignored, allowing another - to take it's place. This can be used to import a set of modules from another - channel while keeping the rest of the system on a stable release. - </para> - - <para> - <literal>disabledModules</literal> is a top level attribute like - <literal>imports</literal>, <literal>options</literal> and - <literal>config</literal>. It contains a list of modules that will be - disabled. This can either be the full path to the module or a string with the - filename relative to the modules path (eg. <nixpkgs/nixos/modules> for - nixos). - </para> - - <para> - This example will replace the existing postgresql module with the version - defined in the nixos-unstable channel while keeping the rest of the modules - and packages from the original nixos channel. This only overrides the module - definition, this won't use postgresql from nixos-unstable unless explicitly - configured to do so. - </para> - -<programlisting> -{ config, lib, pkgs, ... }: - -{ - disabledModules = [ "services/databases/postgresql.nix" ]; - - imports = - [ # Use postgresql service from nixos-unstable channel. - # sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable - <nixos-unstable/nixos/modules/services/databases/postgresql.nix> - ]; - - services.postgresql.enable = true; -} -</programlisting> - - <para> - This example shows how to define a custom module as a replacement for an - existing module. Importing this module will disable the original module - without having to know it's implementation details. - </para> - -<programlisting> -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.programs.man; -in - -{ - disabledModules = [ "services/programs/man.nix" ]; - - options = { - programs.man.enable = mkOption { - type = types.bool; - default = true; - description = "Whether to enable manual pages."; - }; - }; - - config = mkIf cfg.enabled { - warnings = [ "disabled manpages for production deployments." ]; - }; -} -</programlisting> -</section> diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml index bb108d18375..7cf7c9b6299 100644 --- a/nixos/doc/manual/development/writing-modules.xml +++ b/nixos/doc/manual/development/writing-modules.xml @@ -185,7 +185,7 @@ in { <xi:include href="../from_md/development/assertions.section.xml" /> <xi:include href="../from_md/development/meta-attributes.section.xml" /> <xi:include href="../from_md/development/importing-modules.section.xml" /> - <xi:include href="replace-modules.xml" /> + <xi:include href="../from_md/development/replace-modules.section.xml" /> <xi:include href="freeform-modules.xml" /> <xi:include href="settings-options.xml" /> </chapter> |