aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix')
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix38
1 files changed, 25 insertions, 13 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix b/infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix
index ddfd1af4a319..3a6930314b1a 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/system/activation/activation-script.nix
@@ -25,9 +25,23 @@ let
stdenv.cc.libc # nscd in update-users-groups.pl
shadow
nettools # needed for hostname
- utillinux # needed for mount and mountpoint
+ util-linux # needed for mount and mountpoint
];
+ scriptType = with types;
+ let scriptOptions =
+ { deps = mkOption
+ { type = types.listOf types.str;
+ default = [ ];
+ description = "List of dependencies. The script will run after these.";
+ };
+ text = mkOption
+ { type = types.lines;
+ description = "The content of the script.";
+ };
+ };
+ in either str (submodule { options = scriptOptions; });
+
in
{
@@ -40,16 +54,14 @@ in
default = {};
example = literalExample ''
- { stdio = {
- text = '''
- # Needed by some programs.
- ln -sfn /proc/self/fd /dev/fd
- ln -sfn /proc/self/fd/0 /dev/stdin
- ln -sfn /proc/self/fd/1 /dev/stdout
- ln -sfn /proc/self/fd/2 /dev/stderr
- ''';
- deps = [];
- };
+ { stdio.text =
+ '''
+ # Needed by some programs.
+ ln -sfn /proc/self/fd /dev/fd
+ ln -sfn /proc/self/fd/0 /dev/stdin
+ ln -sfn /proc/self/fd/1 /dev/stdout
+ ln -sfn /proc/self/fd/2 /dev/stderr
+ ''';
}
'';
@@ -62,7 +74,7 @@ in
idempotent and fast.
'';
- type = types.attrsOf types.unspecified; # FIXME
+ type = types.attrsOf scriptType;
apply = set: {
script =
@@ -125,7 +137,7 @@ in
idempotent and fast.
'';
- type = types.attrsOf types.unspecified;
+ type = with types; attrsOf scriptType;
apply = set: {
script = ''