nixos: nixos/doc/manual/development/replace-modules.xml to CommonMark

Changed files
+135 -80
nixos
+64
nixos/doc/manual/development/replace-modules.section.md
···
+
# 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." ];
+
};
+
}
+
```
-79
nixos/doc/manual/development/replace-modules.xml
···
-
<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. &lt;nixpkgs/nixos/modules&gt; 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
-
&lt;nixos-unstable/nixos/modules/services/databases/postgresql.nix&gt;
-
];
-
-
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>
+1 -1
nixos/doc/manual/development/writing-modules.xml
···
<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>
+70
nixos/doc/manual/from_md/development/replace-modules.section.xml
···
+
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" 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.
+
&lt;nixpkgs/nixos/modules&gt; 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 language="bash">
+
{ config, lib, pkgs, ... }:
+
+
{
+
disabledModules = [ &quot;services/databases/postgresql.nix&quot; ];
+
+
imports =
+
[ # Use postgresql service from nixos-unstable channel.
+
# sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
+
&lt;nixos-unstable/nixos/modules/services/databases/postgresql.nix&gt;
+
];
+
+
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 language="bash">
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.programs.man;
+
in
+
+
{
+
disabledModules = [ &quot;services/programs/man.nix&quot; ];
+
+
options = {
+
programs.man.enable = mkOption {
+
type = types.bool;
+
default = true;
+
description = &quot;Whether to enable manual pages.&quot;;
+
};
+
};
+
+
config = mkIf cfg.enabled {
+
warnings = [ &quot;disabled manpages for production deployments.&quot; ];
+
};
+
}
+
</programlisting>
+
</section>