systemd: accept derivations as values for systemd options (#3974)

This commit is contained in:
Ramses 2023-05-11 15:50:37 +02:00 committed by GitHub
parent 6be873663e
commit d97e8f8861
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View file

@ -51,7 +51,7 @@ let
unitType = unitKind:
with types;
let primitive = either bool (either int str);
let primitive = oneOf [ bool int str path ];
in attrsOf (attrsOf (attrsOf (either primitive (listOf primitive)))) // {
description = "systemd ${unitKind} unit configuration";
};

View file

@ -1,14 +1,17 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
with lib;
{
let
drvScript = pkgs.writeShellScript "drv-script.sh" ''
echo "Just a test"
'';
in {
config = {
systemd.user.services."test-service@" = {
Unit = { Description = "A basic test service"; };
Service = {
Environment = [ "VAR1=1" "VAR2=2" ];
ExecStartPre = drvScript;
ExecStart = ''/some/exec/start/command --with-arguments "%i"'';
};
};
@ -18,11 +21,12 @@ with lib;
assertFileExists $serviceFile
assertFileContent $serviceFile \
${
builtins.toFile "services-expected.conf" ''
pkgs.writeText "services-expected.conf" ''
[Service]
Environment=VAR1=1
Environment=VAR2=2
ExecStart=/some/exec/start/command --with-arguments "%i"
ExecStartPre=${drvScript}
[Unit]
Description=A basic test service