#!/bin/ksh # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # Copyright 2020 OmniOS Community Edition (OmniOSce) Association. f=zone_sun.tab proto=$ROOT/usr/share/lib/zoneinfo if [[ ! -f "$f" ]]; then echo "Run from inside usr/src/data/zoneinfo" exit 1 fi if [[ ! -d "$proto" ]]; then echo "No zoneinfo in $proto - run 'dmake install'" exit 1 fi # First check that all of the referenced zone files exist in the proto # area. nawk -F'\t' ' /^#/ { next } { print $3 if ($4 != "-") print $4 } ' $f | while read zone; do if [ ! -f $proto/$zone ]; then echo "Missing: $zone" fi done # Check that lines have between 3 and 5 fields nawk -F'\t' ' /^#/ { next } NF < 3 || NF > 5 { print NF, $0 } ' $f | while read line; do echo "Fields: $line" done # Check that field 5 does not point to a zone file. This could indicate a # field in the wrong position. nawk -F'\t' ' /^#/ { next } NF > 4 { print $5 } ' $f | while read zone; do if [ -f "$proto/$zone" ]; then echo "Check: $zone" fi done # Check that the file is properly sorted of=`mktemp` nf=`mktemp` nawk '/^#/ { next } { print $1 }' $f > $of sort < $of > $nf cmp -s $of $nf || echo "Bad sorting" rm -f $of $nf