ci/treefmt: add markdown-code-runner (#427460)

Changed files
+28 -40
ci
doc
nixos
doc
manual
development
modules
services
mail
+17
ci/default.nix
···
includes = [ "*" ];
priority = 1;
};
+
+
# TODO: Upstream this into treefmt-nix eventually:
+
# https://github.com/numtide/treefmt-nix/issues/387
+
settings.formatter.markdown-code-runner = {
+
command = pkgs.lib.getExe pkgs.markdown-code-runner;
+
options =
+
let
+
config = pkgs.writers.writeTOML "markdown-code-runner-config" {
+
presets.nixfmt = {
+
language = "nix";
+
command = [ (pkgs.lib.getExe pkgs.nixfmt) ];
+
};
+
};
+
in
+
[ "--config=${config}" ];
+
includes = [ "*.md" ];
+
};
};
fs = pkgs.lib.fileset;
nixFilesSrc = fs.toSource {
-1
doc/doc-support/package.nix
···
tests = {
manpage-urls = callPackage ../tests/manpage-urls.nix { };
-
check-nix-code-blocks = callPackage ../tests/check-nix-code-blocks.nix { };
};
};
}
-32
doc/tests/check-nix-code-blocks.nix
···
-
{
-
runCommand,
-
markdown-code-runner,
-
nixfmt-rfc-style,
-
}:
-
-
runCommand "manual_check-nix-code-blocks"
-
{
-
nativeBuildInputs = [
-
markdown-code-runner
-
nixfmt-rfc-style
-
];
-
}
-
''
-
set +e
-
-
mdcr --check --config ${./mdcr-config.toml} ${./..}
-
-
if [ $? -ne 0 ]; then
-
cat <<EOF
-
Error: `mdcr` command failed. Please make sure the Nix code snippets in Markdown files are correctly formatted.
-
-
Run this command from the Nixpkgs repository root for automatic formatting:
-
-
mdcr --log debug --config ${toString ./..}/tests/mdcr-config.toml ${toString ./..}
-
-
EOF
-
exit 1
-
fi
-
-
touch "$out"
-
''
-3
doc/tests/mdcr-config.toml
···
-
[presets.nixfmt]
-
language = "nix"
-
command = ["nixfmt"]
+9 -2
nixos/doc/manual/development/modular-services.md
···
It is possible to write service modules that are portable. This is done by either avoiding the `systemd` option tree, or by defining process-manager-specific definitions in an optional way:
```nix
-
{ config, options, lib, ... }: {
+
{
+
config,
+
options,
+
lib,
+
...
+
}:
+
{
_class = "service";
config = {
process.argv = [ (lib.getExe config.foo.program) ];
-
} // lib.optionalAttrs (options?systemd) {
+
}
+
// lib.optionalAttrs (options ? systemd) {
# ... systemd-specific definitions ...
};
}
+2 -2
nixos/modules/services/mail/mailman.md
···
local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
relay_domains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
smtpd_tls_chain_files = [
-
config.security.acme.certs."lists.example.org".directory + "/full.pem"
-
config.security.acme.certs."lists.example.org".directory + "/key.pem"
+
(config.security.acme.certs."lists.example.org".directory + "/full.pem")
+
(config.security.acme.certs."lists.example.org".directory + "/key.pem")
];
};
};