diff options
author | Matej Urbas <matej.urbas@gmail.com> | 2021-04-18 10:19:06 +0100 |
---|---|---|
committer | Matej Urbas <matej.urbas@gmail.com> | 2021-04-18 10:19:06 +0100 |
commit | db5b547b2542d01661ad602b437d88e3c75a8606 (patch) | |
tree | 0a51ab550503b5c1ade568e1ccdc7f6f01c04882 /nixos/modules/virtualisation/amazon-init.nix | |
parent | c0e881852006b132236cbf0301bd1939bb50867e (diff) | |
download | nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar.gz nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar.bz2 nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar.lz nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar.xz nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.tar.zst nixpkgs-db5b547b2542d01661ad602b437d88e3c75a8606.zip |
nixos/amazon-init: add user-data shell script support
Diffstat (limited to 'nixos/modules/virtualisation/amazon-init.nix')
-rw-r--r-- | nixos/modules/virtualisation/amazon-init.nix | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix index be83607c0af..4f2f8df90eb 100644 --- a/nixos/modules/virtualisation/amazon-init.nix +++ b/nixos/modules/virtualisation/amazon-init.nix @@ -16,6 +16,16 @@ let userData=/etc/ec2-metadata/user-data + # Check if user-data looks like a shell script and execute it with the + # runtime shell if it does. Otherwise treat it as a nixos configuration + # expression + if IFS= LC_ALL=C read -rN2 shebang < $userData && [ "$shebang" = '#!' ]; then + # NB: we cannot chmod the $userData file, this is why we execute it via + # `pkgs.runtimeShell`. This means we have only limited support for shell + # scripts compatible with the `pkgs.runtimeShell`. + exec ${pkgs.runtimeShell} $userData + fi + if [ -s "$userData" ]; then # If the user-data looks like it could be a nix expression, # copy it over. Also, look for a magic three-hash comment and set |