Blame scripts/move-if-change

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