is_newest 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #! /bin/sh
  2. # Copyright (C) 2012-2017 Free Software Foundation, Inc.
  3. #
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2, or (at your option)
  7. # any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. # Usage: is_newest FILE FILES
  17. # Fail if any file in FILES is newer than FILE, and print the list of
  18. # such files on the standard error. Resolve ties in favor of FILE.
  19. # NOTE: keep this file Bourne-compatible, for the sake of systems with
  20. # non-POSIX /bin/sh (like Solaris).
  21. set -u
  22. me=is_newest
  23. if test $# -lt 2; then
  24. echo "$me: too few arguments" >&2
  25. exit 2
  26. fi
  27. file=$1; shift
  28. newer_files=`find "$@" -prune -newer "$file"` || exit $?
  29. if test -n "$newer_files"; then
  30. echo "$me: these files are newer than '$file':" >&2
  31. for f in $newer_files; do echo "* $f" >&2; done
  32. exit 1
  33. fi
  34. exit 0