Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#!/bin/sh -u

# Copyright (c) 2020 Yubico AB. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

sort_by_id() {
	awk '{ printf "%d\n", $3 }' | sort -Cnu
}

if ! grep '^vendor' "$1" | sort_by_id; then
	echo unsorted vendor section 1>&2
	exit 1
fi

VENDORS=$(grep '^vendor' "$1" | awk '{ print $2 }')
PRODUCTS=$(grep '^product' "$1" | awk '{ print $2 }' | uniq)

if [ "${VENDORS}" != "${PRODUCTS}" ]; then
	echo vendors: "$(echo "${VENDORS}" | tr '\n' ',')" 1>&2
	echo products: "$(echo "${PRODUCTS}" | tr '\n' ',')" 1>&2
	echo vendors and products in different order 1>&2
	exit 2
fi

for v in ${VENDORS}; do
	if ! grep "^product ${v}" "$1" | sort_by_id; then
		echo "${v}": unsorted product section 1>&2
		exit 3
	fi
done