nixos/ec2-metadata-fetcher: add xz user-data decompression

Support decompressing XZ-compressed EC2 user data via xzcat.
Includes a corresponding NixOS test.
This commit is contained in:
Philip Taron
2026-03-24 14:51:59 -07:00
parent 45d8ed8f4e
commit e3789300b1
3 changed files with 7 additions and 0 deletions
@@ -102,6 +102,7 @@ in
file
gzip
mktemp
xz
];
script = builtins.readFile ./ec2-metadata-fetcher.sh;
serviceConfig.Type = "oneshot";
@@ -70,6 +70,7 @@ try_decompress() {
case $ftype in
gzip*) decompress_cmd=zcat ;;
bzip2*) decompress_cmd=bzcat ;;
XZ*) decompress_cmd=xzcat ;;
*) return ;;
esac
echo "decompressing: $1"
+5
View File
@@ -278,6 +278,11 @@ in
test_data = b"#!/bin/bash\necho bzip2-decompression-test\n"
test_userdata_decompression(machine, user_data_path, bz2.compress(test_data), "bzip2")
with subtest("Decompression of xz-compressed user-data"):
import lzma
test_data = b"#!/bin/bash\necho xz-decompression-test\n"
test_userdata_decompression(machine, user_data_path, lzma.compress(test_data), "xz")
finally:
machine.shutdown()
temp_dir.cleanup()