Blame build-aux/move-if-change

Packit Service c3aa71
#!/bin/sh
Packit Service c3aa71
# Like mv $1 $2, but if the files are the same, just delete $1.
Packit Service c3aa71
# Status is zero if successful, nonzero otherwise.
Packit Service c3aa71
Packit Service c3aa71
VERSION='2012-01-06 07:23'; # UTC
Packit Service c3aa71
# The definition above must lie within the first 8 lines in order
Packit Service c3aa71
# for the Emacs time-stamp write hook (at end) to update it.
Packit Service c3aa71
# If you change this file with Emacs, please let the write hook
Packit Service c3aa71
# do its job.  Otherwise, update this string manually.
Packit Service c3aa71
Packit Service c3aa71
# Copyright (C) 2002-2015 Free Software Foundation, Inc.
Packit Service c3aa71
Packit Service c3aa71
# This program is free software: you can redistribute it and/or modify
Packit Service c3aa71
# it under the terms of the GNU General Public License as published by
Packit Service c3aa71
# the Free Software Foundation, either version 3 of the License, or
Packit Service c3aa71
# (at your option) any later version.
Packit Service c3aa71
Packit Service c3aa71
# This program is distributed in the hope that it will be useful,
Packit Service c3aa71
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service c3aa71
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service c3aa71
# GNU General Public License for more details.
Packit Service c3aa71
Packit Service c3aa71
# You should have received a copy of the GNU General Public License
Packit Service c3aa71
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service c3aa71
Packit Service c3aa71
usage="usage: $0 SOURCE DEST"
Packit Service c3aa71
Packit Service c3aa71
help="$usage
Packit Service c3aa71
  or:  $0 OPTION
Packit Service c3aa71
If SOURCE is different than DEST, then move it to DEST; else remove SOURCE.
Packit Service c3aa71
Packit Service c3aa71
  --help     display this help and exit
Packit Service c3aa71
  --version  output version information and exit
Packit Service c3aa71
Packit Service c3aa71
The variable CMPPROG can be used to specify an alternative to 'cmp'.
Packit Service c3aa71
Packit Service c3aa71
Report bugs to <bug-gnulib@gnu.org>."
Packit Service c3aa71
Packit Service c3aa71
version=`expr "$VERSION" : '\([^ ]*\)'`
Packit Service c3aa71
version="move-if-change (gnulib) $version
Packit Service c3aa71
Copyright (C) 2011 Free Software Foundation, Inc.
Packit Service c3aa71
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Packit Service c3aa71
This is free software: you are free to change and redistribute it.
Packit Service c3aa71
There is NO WARRANTY, to the extent permitted by law."
Packit Service c3aa71
Packit Service c3aa71
cmpprog=${CMPPROG-cmp}
Packit Service c3aa71
Packit Service c3aa71
for arg
Packit Service c3aa71
do
Packit Service c3aa71
  case $arg in
Packit Service c3aa71
    --help | --hel | --he | --h)
Packit Service c3aa71
      exec echo "$help" ;;
Packit Service c3aa71
    --version | --versio | --versi | --vers | --ver | --ve | --v)
Packit Service c3aa71
      exec echo "$version" ;;
Packit Service c3aa71
    --)
Packit Service c3aa71
      shift
Packit Service c3aa71
      break ;;
Packit Service c3aa71
    -*)
Packit Service c3aa71
      echo "$0: invalid option: $arg" >&2
Packit Service c3aa71
      exit 1 ;;
Packit Service c3aa71
    *)
Packit Service c3aa71
      break ;;
Packit Service c3aa71
  esac
Packit Service c3aa71
done
Packit Service c3aa71
Packit Service c3aa71
test $# -eq 2 || { echo "$0: $usage" >&2; exit 1; }
Packit Service c3aa71
Packit Service c3aa71
if test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null; then
Packit Service c3aa71
  rm -f -- "$1"
Packit Service c3aa71
else
Packit Service c3aa71
  if mv -f -- "$1" "$2"; then :; else
Packit Service c3aa71
    # Ignore failure due to a concurrent move-if-change.
Packit Service c3aa71
    test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null && rm -f -- "$1"
Packit Service c3aa71
  fi
Packit Service c3aa71
fi
Packit Service c3aa71
Packit Service c3aa71
## Local Variables:
Packit Service c3aa71
## eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service c3aa71
## time-stamp-start: "VERSION='"
Packit Service c3aa71
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
Packit Service c3aa71
## time-stamp-time-zone: "UTC"
Packit Service c3aa71
## time-stamp-end: "'; # UTC"
Packit Service c3aa71
## End: