]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libfido2/udev/check.sh
Merge llvm-project release/17.x llvmorg-17.0.5-0-g98bfdac5ce82
[FreeBSD/FreeBSD.git] / contrib / libfido2 / udev / check.sh
1 #!/bin/sh -u
2
3 # Copyright (c) 2020 Yubico AB. All rights reserved.
4 # Use of this source code is governed by a BSD-style
5 # license that can be found in the LICENSE file.
6 # SPDX-License-Identifier: BSD-2-Clause
7
8 sort_by_id() {
9         awk '{ printf "%d\n", $3 }' | sort -Cnu
10 }
11
12 if ! grep '^vendor' "$1" | sort_by_id; then
13         echo unsorted vendor section 1>&2
14         exit 1
15 fi
16
17 VENDORS=$(grep '^vendor' "$1" | awk '{ print $2 }')
18 PRODUCTS=$(grep '^product' "$1" | awk '{ print $2 }' | uniq)
19
20 if [ "${VENDORS}" != "${PRODUCTS}" ]; then
21         echo vendors: "$(echo "${VENDORS}" | tr '\n' ',')" 1>&2
22         echo products: "$(echo "${PRODUCTS}" | tr '\n' ',')" 1>&2
23         echo vendors and products in different order 1>&2
24         exit 2
25 fi
26
27 for v in ${VENDORS}; do
28         if ! grep "^product ${v}" "$1" | sort_by_id; then
29                 echo "${v}": unsorted product section 1>&2
30                 exit 3
31         fi
32 done