#!/bin/sh
# Written by friedman@prep.ai.mit.edu
# Last modified: 1994-11-07
# Requires relatively new versions of GNU date, ls, and sed (ie after 1992)
# Public domain.

# Needed to make GNU `date' print the date using EST, not GMT.
TZ=EST5EDT
PATH="/usr/local/gnubin:/usr/local/bin:$PATH"
export TZ PATH

prog=`echo "$0" | sed -e 's/[^\/]*\///g'`

for file in ${1+"$@"}; do

  fdate=`ls -ld "$file" \
          | sed -ne 's/[  ][      ]*/ /g
                     s/\([^ ]* \)\{5\}//
                     s/ [^ ]*$//
                     /:/!s/\( [^ ]*$\)/,\1/
                     p'`

  fmtdate=`date '+%d %B %Y' -d "$fdate"`

  lastupdate=`sed -ne '/^@set lastupdate /{
                         =
                         s/@set lastupdate //p
                         q
                       }' "$file"`

  set fnord $lastupdate
  shift
  case $# in
    0 ) 
      lineno=
      lastupdate=
     ;;
    * ) 
      lineno=$1
      shift
      lastupdate="$*"
     ;;
  esac

  {
    case "$lastupdate" in
      "$fmtdate" ) : ;;
      '' )
        echo "$prog: $file: warning: file does not mention any update time."
       ;;
      * )
        echo "$prog: $file:$lineno: warning: file last updated $fmtdate, but claims it was last updated $lastupdate."
       ;;
    esac
  } 1>&2

done

# eof
