1#! /usr/bin/env sh 2 3# This file is part of mbed TLS (https://tls.mbed.org) 4# 5# Copyright (c) 2018, ARM Limited, All Rights Reserved 6# 7# Purpose 8# 9# Check if generated files are up-to-date. 10 11set -eu 12 13if [ -d library -a -d include -a -d tests ]; then :; else 14 echo "Must be run from mbed TLS root" >&2 15 exit 1 16fi 17 18check() 19{ 20 SCRIPT=$1 21 TO_CHECK=$2 22 PATTERN="" 23 FILES="" 24 25 if [ -d $TO_CHECK ]; then 26 for FILE in $TO_CHECK/*; do 27 FILES="$FILE $FILES" 28 done 29 else 30 FILES=$TO_CHECK 31 fi 32 33 for FILE in $FILES; do 34 cp $FILE $FILE.bak 35 done 36 37 $SCRIPT 38 39 # Compare the script output to the old files and remove backups 40 for FILE in $FILES; do 41 if ! diff $FILE $FILE.bak >/dev/null 2>&1; then 42 echo "'$FILE' was either modified or deleted by '$SCRIPT'" 43 exit 1 44 fi 45 mv $FILE.bak $FILE 46 47 if [ -d $TO_CHECK ]; then 48 # Create a grep regular expression that we can check against the 49 # directory contents to test whether new files have been created 50 if [ -z $PATTERN ]; then 51 PATTERN="$(basename $FILE)" 52 else 53 PATTERN="$PATTERN\|$(basename $FILE)" 54 fi 55 fi 56 done 57 58 if [ -d $TO_CHECK ]; then 59 # Check if there are any new files 60 if ls -1 $TO_CHECK | grep -v "$PATTERN" >/dev/null 2>&1; then 61 echo "Files were created by '$SCRIPT'" 62 exit 1 63 fi 64 fi 65} 66 67check scripts/generate_errors.pl library/error.c 68check scripts/generate_features.pl library/version_features.c 69check scripts/generate_visualc_files.pl visualc/VS2010 70