49 lines
891 B
Bash
49 lines
891 B
Bash
#!/bin/sh
|
|
# Test for LSB systems.
|
|
set -e
|
|
|
|
. /usr/share/os-prober/common.sh
|
|
|
|
partition="$1"
|
|
dir="$2"
|
|
type="$3"
|
|
|
|
lsb_field () {
|
|
file="$1"
|
|
field="$2"
|
|
grep ^"$field" "$file" | cut -d = -f 2 | sed 's/^"//' | sed 's/"$//' | sed 's/:/ /g'
|
|
}
|
|
|
|
file="$dir/etc/lsb-release"
|
|
if [ ! -e "$file" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
release=$(lsb_field "$file" DISTRIB_RELEASE)
|
|
if [ -z "$release" ]; then
|
|
release=$(lsb_field "$file" DISTRIB_CODENAME)
|
|
fi
|
|
description=$(lsb_field "$file" DISTRIB_DESCRIPTION)
|
|
if [ -z "$description" ]; then
|
|
description=$(lsb_field "$file" DISTRIB_CODENAME)
|
|
fi
|
|
|
|
if [ -n "$description" ]; then
|
|
if [ -n "$release" ]; then
|
|
long="$description ($release)"
|
|
else
|
|
long="$description"
|
|
fi
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
short=$(lsb_field "$file" DISTRIB_ID | sed 's/ //g')
|
|
if [ -z "$short" ]; then
|
|
short="UnknownLSB"
|
|
fi
|
|
|
|
label="$(count_next_label "$short")"
|
|
result "$partition:$long:$label:linux"
|
|
exit 0
|