blob: d98bb0de90ce5067f95755f33b68fbfd072221ae [file] [log] [blame]
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Check if commands grep, sed, and date can be used for
# building perfbook.
#
# Copyright (C) Akira Yokosawa, 2023
export LC_TIME=C
: ${SED:=sed}
: ${DATE:=date}
: ${VERBOSE:=}
: ${WHICH:=command -v}
fatal=""
# test sed (repeat pattern \? and \+)
sed_result=""
sed_out=`echo aaabbc | $SED -e 's/[ab]\+c\?//'`
if [ "$sed_out" = "" ] ; then
sed_result="OK"
else
sed_result="NG"
fatal="sed $fatal"
fi
# test date (format conversion)
date_result=""
date_str="Tue, 10 Jan 2023 00:00:00 +0000"
if month=`$DATE -d "$date_str" +%B 2>/dev/null` ; then
date_flavor="GNU date"
else
if month=`$DATE -jR -f "%a, %d %b %Y %T %z" "$date_str" +%B 2>/dev/null` ;
then
date_flavor="BSD date"
else
date_flavor="Unknown"
fatal="date $fatal"
fi
fi
if [ "$month" = "January" ] ; then
date_result="OK"
else
date_result="NG"
fatal="date-format $fatal"
fi
if [ "$fatal" = "" -a "$VERBOSE" = "" ] ; then
exit 0
fi
# print results if any missing feature is detected
echo "==========================================="
echo " preparatory test of necessary features "
echo "==========================================="
if [ "$sed_result" != "OK" -o "$VERBOSE" != "" ] ; then
echo
echo '------------------------------------------'
echo ' testing sed (repeat patterns \? and \+) '
echo '------------------------------------------'
if [ "$sed_result" = "OK" ] ; then
echo "OK."
else
echo "$SED (at `$WHICH $SED`) failed the test!"
fi
fi
if [ "$date_result" != "OK" -o "$VERBOSE" != "" ] ; then
echo
echo "------------------------------------------"
echo " testing date (format conversion) "
echo "------------------------------------------"
echo -n "$date_flavor ... "
if [ "$date_flavor" = "Unknown" ] ; then
echo
echo "Unknown date command found at `$WHICH $DATE`."
else
if [ "$month" = "January" ] ; then
echo "OK."
else
echo "Hmm, something is wrong with format conversion"
echo "$month"
fi
fi
fi
if [ "$fatal" != "" ] ; then
echo "See #14 in FAQ-BUILD.txt for further info."
echo "fatal: $fatal"
exit 1
fi