1{ pkgs, ... }:
2{
3 name = "environment";
4 meta = with pkgs.lib.maintainers; {
5 maintainers = [ nequissimus ];
6 };
7
8 nodes.machine =
9 { pkgs, lib, ... }:
10 lib.mkMerge [
11 {
12 boot.kernelPackages = pkgs.linuxPackages;
13 environment.etc.plainFile.text = ''
14 Hello World
15 '';
16 environment.etc."folder/with/file".text = ''
17 Foo Bar!
18 '';
19
20 environment.sessionVariables = {
21 TERMINFO_DIRS = "/run/current-system/sw/share/terminfo";
22 NIXCON = "awesome";
23 SHOULD_NOT_BE_SET = "oops";
24 };
25 }
26 {
27 environment.sessionVariables = {
28 SHOULD_NOT_BE_SET = lib.mkForce null;
29 };
30 }
31 ];
32
33 testScript = ''
34 machine.succeed('[ -L "/etc/plainFile" ]')
35 assert "Hello World" in machine.succeed('cat "/etc/plainFile"')
36 machine.succeed('[ -d "/etc/folder" ]')
37 machine.succeed('[ -d "/etc/folder/with" ]')
38 machine.succeed('[ -L "/etc/folder/with/file" ]')
39 assert "Hello World" in machine.succeed('cat "/etc/plainFile"')
40
41 assert "/run/current-system/sw/share/terminfo" in machine.succeed(
42 "echo ''${TERMINFO_DIRS}"
43 )
44 assert "awesome" in machine.succeed("echo ''${NIXCON}")
45 machine.fail("printenv SHOULD_NOT_BE_SET")
46 '';
47}