clanModules: Fix disk-id and machine-id
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
pkgs.bash
|
pkgs.bash
|
||||||
];
|
];
|
||||||
script = ''
|
script = ''
|
||||||
uuid=$(bash ${../../uuid4.sh})
|
uuid=$(bash ${./uuid4.sh})
|
||||||
|
|
||||||
# Remove the hyphens from the UUID
|
# Remove the hyphens from the UUID
|
||||||
uuid_no_hyphens=$(echo -n "$uuid" | tr -d '-')
|
uuid_no_hyphens=$(echo -n "$uuid" | tr -d '-')
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ in
|
|||||||
pkgs.bash
|
pkgs.bash
|
||||||
];
|
];
|
||||||
script = ''
|
script = ''
|
||||||
uuid=$(bash ${../../uuid4.sh})
|
uuid=$(bash ${./uuid4.sh})
|
||||||
|
|
||||||
# Remove the hyphens from the UUID
|
# Remove the hyphens from the UUID
|
||||||
uuid_no_hyphens=$(echo -n "$uuid" | tr -d '-')
|
uuid_no_hyphens=$(echo -n "$uuid" | tr -d '-')
|
||||||
|
|||||||
20
clanModules/machine-id/roles/uuid4.sh
Normal file
20
clanModules/machine-id/roles/uuid4.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Read 16 bytes from /dev/urandom
|
||||||
|
uuid=$(dd if=/dev/urandom bs=1 count=16 2>/dev/null | od -An -tx1 | tr -d ' \n')
|
||||||
|
|
||||||
|
# Break the UUID into pieces and apply the required modifications
|
||||||
|
byte6=${uuid:12:2}
|
||||||
|
byte8=${uuid:16:2}
|
||||||
|
|
||||||
|
# Construct the correct version and variant
|
||||||
|
hex_byte6=$(printf "%x" $((0x$byte6 & 0x0F | 0x40)))
|
||||||
|
hex_byte8=$(printf "%x" $((0x$byte8 & 0x3F | 0x80)))
|
||||||
|
|
||||||
|
# Rebuild the UUID with the correct fields
|
||||||
|
uuid_v4="${uuid:0:12}${hex_byte6}${uuid:14:2}${hex_byte8}${uuid:18:14}"
|
||||||
|
|
||||||
|
# Format the UUID correctly 8-4-4-4-12
|
||||||
|
uuid_formatted="${uuid_v4:0:8}-${uuid_v4:8:4}-${uuid_v4:12:4}-${uuid_v4:16:4}-${uuid_v4:20:12}"
|
||||||
|
|
||||||
|
echo -n "$uuid_formatted"
|
||||||
Reference in New Issue
Block a user