Skip to content

Commit eb6acb4

Browse files
committed
get-facts: Make os-release parser more generic
This adds support for quoted values (which are allowed by the file format) and also for `ID_LIKE` for systems that fork NixOS.
1 parent 1933f2e commit eb6acb4

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/get-facts.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ set -efu "${enable_debug:-}"
33
has() {
44
command -v "$1" >/dev/null && echo "y" || echo "n"
55
}
6-
is_nixos=$(if test -f /etc/os-release && grep -q ID=nixos /etc/os-release; then echo "y"; else echo "n"; fi)
6+
is_nixos=$(if test -f /etc/os-release && grep -Eq 'ID(_LIKE)?="?nixos"?' /etc/os-release; then echo "y"; else echo "n"; fi)
77
cat <<FACTS
88
is_os=$(uname)
99
is_arch=$(uname -m)
1010
is_kexec=$(if test -f /etc/is_kexec; then echo "y"; else echo "n"; fi)
1111
is_nixos=$is_nixos
12-
is_installer=$(if [ "$is_nixos" = "y" ] && grep -q VARIANT_ID=installer /etc/os-release; then echo "y"; else echo "n"; fi)
12+
is_installer=$(if [ "$is_nixos" = "y" ] && grep -Eq 'VARIANT_ID="?installer"?' /etc/os-release; then echo "y"; else echo "n"; fi)
1313
is_container=$(if [ "$(has systemd-detect-virt)" = "y" ]; then systemd-detect-virt --container; else echo "none"; fi)
1414
has_ipv6_only=$(if [ "$(has ip)" = "n" ] || ip r g 1 >/dev/null 2>/dev/null || ! ip -6 r g :: >/dev/null 2>/dev/null; then echo "n"; else echo "y"; fi)
1515
has_tar=$(has tar)

0 commit comments

Comments
 (0)