summaryrefslogtreecommitdiff
path: root/bin
diff options
Diffstat (limited to 'bin')
-rwxr-xr-xbin/platform_meta_test17
-rwxr-xr-xbin/stock_ubuntu_platform_meta.sh47
2 files changed, 57 insertions, 7 deletions
diff --git a/bin/platform_meta_test b/bin/platform_meta_test
index 74d4264..1e1424c 100755
--- a/bin/platform_meta_test
+++ b/bin/platform_meta_test
@@ -14,21 +14,21 @@ echo "Beginning Platform Metapackage Test" 1>&2
failed()
{
[ -n "$1" ] && echo "$1"
- echo "$0 failed!!"
+ echo "$0 failed!"
exit 1
}
passed()
{
[ -n "$1" ] && echo "$1"
- echo "$0 passed!!"
+ echo "$0 passed!"
exit 0
}
platform_tag=$(ubuntu-report show | grep DCD | awk -F'+' '{print $2}')
[ -n "${platform_tag}" ] || failed "no platform tag in ubuntu-report"
-BIOSID=$(lspci -s 00:00.0 -nnv | grep Subsystem | grep -o -E "[[:xdigit:]]{4}:[[:xdigit:]]{4}" | cut -d ":" -f 2 | tr '[:lower:]' '[:upper:]')
+BIOSID=$(cat /sys/devices/virtual/dmi/id/product_sku)
codename=$(lsb_release -cs)
case "$codename" in
@@ -59,9 +59,12 @@ case "$codename" in
('focal')
for meta in $(ubuntu-drivers list | grep "^oem" | grep "meta$"); do
if apt-cache show "$meta" | grep ^Modaliases | grep -i "sv00001028sd0000$BIOSID" > /dev/null 2>&1; then
- factory="${meta/oem-somerville/oem-somerville-factory}"
- dpkg -l "$factory" > /dev/null 2>&1 || failed "The platform factory meta package '$factory' is not installed."
- passed "Found the platform meta package '$meta' containing BIOS ID '$BIOSID' and the platform factory meta package '$factory'"
+ if dpkg-query -W -f='${Status}\n' "$meta" 2>&1 | grep "install ok installed" >/dev/null 2>&1; then
+ factory="${meta/oem-somerville/oem-somerville-factory}"
+ if dpkg-query -W -f='${Status}\n' "$factory" 2>&1 | grep "install ok installed" >/dev/null 2>&1; then
+ passed "Found the platform meta package '$meta' containing BIOS ID '$BIOSID' and the platform factory meta package '$factory'"
+ fi
+ fi
fi
done
;;
@@ -70,4 +73,4 @@ case "$codename" in
;;
esac
-failed "No platform meta is installed. (Platform Tag: $platform_tag, BIOS ID: $BIOSID)"
+failed "Platform Tag: $platform_tag, BIOS ID: $BIOSID"
diff --git a/bin/stock_ubuntu_platform_meta.sh b/bin/stock_ubuntu_platform_meta.sh
new file mode 100755
index 0000000..1d0a544
--- /dev/null
+++ b/bin/stock_ubuntu_platform_meta.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+echo "Beginning Stock Ubuntu Platform Metapackage Test" 1>&2
+
+failed()
+{
+ [ -n "$1" ] && echo "$1"
+ echo "$0 failed!!"
+ exit 1
+}
+
+passed()
+{
+ [ -n "$1" ] && echo "$1"
+ echo "$0 passed!!"
+ exit 0
+}
+
+codename=$(lsb_release -cs)
+
+case "$codename" in
+ ('focal')
+ for pkg in $(ubuntu-drivers list-oem | grep "^oem" | grep "meta$"); do
+ apt-get purge --yes "$pkg" >/dev/null 2>&1 # Completely remove the meta package first
+ done
+ meta=()
+ for pkg in $(ubuntu-drivers list-oem | grep "^oem" | grep "meta$"); do
+ meta+=("$pkg")
+ done
+ if [ "${#meta}" = 0 ]; then
+ failed "It can not find any platform meta package."
+ fi
+ apt-get update >/dev/null 2>&1
+ ubuntu-drivers install
+ for pkg in "${meta[@]}"; do
+ if dpkg-query -W -f='${Status}\n' "$pkg" 2>&1 | grep "install ok installed" >/dev/null 2>&1; then
+ echo "$pkg is installed"
+ else
+ failed "$pkg is not installed"
+ fi
+ done
+ passed
+ ;;
+ (*)
+ echo "$codename is not supported yet."
+ ;;
+esac