Home | History | Annotate | Line # | Download | only in dist
      1  1.1  mrg #!/bin/sh
      2  1.1  mrg # Like mv $1 $2, but if the files are the same, just delete $1.
      3  1.1  mrg # Status is zero if successful, nonzero otherwise.
      4  1.1  mrg 
      5  1.5  mrg VERSION='2012-01-06 07:23'; # UTC
      6  1.3  mrg # The definition above must lie within the first 8 lines in order
      7  1.3  mrg # for the Emacs time-stamp write hook (at end) to update it.
      8  1.3  mrg # If you change this file with Emacs, please let the write hook
      9  1.3  mrg # do its job.  Otherwise, update this string manually.
     10  1.1  mrg 
     11  1.5  mrg # Copyright (C) 2002-2014 Free Software Foundation, Inc.
     12  1.1  mrg 
     13  1.3  mrg # This program is free software: you can redistribute it and/or modify
     14  1.3  mrg # it under the terms of the GNU General Public License as published by
     15  1.3  mrg # the Free Software Foundation, either version 3 of the License, or
     16  1.3  mrg # (at your option) any later version.
     17  1.3  mrg 
     18  1.3  mrg # This program is distributed in the hope that it will be useful,
     19  1.3  mrg # but WITHOUT ANY WARRANTY; without even the implied warranty of
     20  1.3  mrg # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     21  1.3  mrg # GNU General Public License for more details.
     22  1.3  mrg 
     23  1.3  mrg # You should have received a copy of the GNU General Public License
     24  1.3  mrg # along with this program.  If not, see <http://www.gnu.org/licenses/>.
     25  1.3  mrg 
     26  1.3  mrg usage="usage: $0 SOURCE DEST"
     27  1.3  mrg 
     28  1.3  mrg help="$usage
     29  1.3  mrg   or:  $0 OPTION
     30  1.3  mrg If SOURCE is different than DEST, then move it to DEST; else remove SOURCE.
     31  1.3  mrg 
     32  1.3  mrg   --help     display this help and exit
     33  1.3  mrg   --version  output version information and exit
     34  1.3  mrg 
     35  1.5  mrg The variable CMPPROG can be used to specify an alternative to 'cmp'.
     36  1.3  mrg 
     37  1.3  mrg Report bugs to <bug-gnulib (at] gnu.org>."
     38  1.3  mrg 
     39  1.3  mrg version=`expr "$VERSION" : '\([^ ]*\)'`
     40  1.3  mrg version="move-if-change (gnulib) $version
     41  1.3  mrg Copyright (C) 2011 Free Software Foundation, Inc.
     42  1.3  mrg License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     43  1.3  mrg This is free software: you are free to change and redistribute it.
     44  1.3  mrg There is NO WARRANTY, to the extent permitted by law."
     45  1.3  mrg 
     46  1.3  mrg cmpprog=${CMPPROG-cmp}
     47  1.3  mrg 
     48  1.3  mrg for arg
     49  1.3  mrg do
     50  1.1  mrg   case $arg in
     51  1.3  mrg     --help | --hel | --he | --h)
     52  1.3  mrg       exec echo "$help" ;;
     53  1.3  mrg     --version | --versio | --versi | --vers | --ver | --ve | --v)
     54  1.3  mrg       exec echo "$version" ;;
     55  1.3  mrg     --)
     56  1.3  mrg       shift
     57  1.3  mrg       break ;;
     58  1.3  mrg     -*)
     59  1.3  mrg       echo "$0: invalid option: $arg" >&2
     60  1.3  mrg       exit 1 ;;
     61  1.3  mrg     *)
     62  1.3  mrg       break ;;
     63  1.1  mrg   esac
     64  1.1  mrg done
     65  1.1  mrg 
     66  1.3  mrg test $# -eq 2 || { echo "$0: $usage" >&2; exit 1; }
     67  1.3  mrg 
     68  1.3  mrg if test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null; then
     69  1.3  mrg   rm -f -- "$1"
     70  1.1  mrg else
     71  1.3  mrg   if mv -f -- "$1" "$2"; then :; else
     72  1.3  mrg     # Ignore failure due to a concurrent move-if-change.
     73  1.3  mrg     test -r "$2" && $cmpprog -- "$1" "$2" >/dev/null && rm -f -- "$1"
     74  1.3  mrg   fi
     75  1.1  mrg fi
     76  1.3  mrg 
     77  1.3  mrg ## Local Variables:
     78  1.3  mrg ## eval: (add-hook 'write-file-hooks 'time-stamp)
     79  1.3  mrg ## time-stamp-start: "VERSION='"
     80  1.3  mrg ## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
     81  1.3  mrg ## time-stamp-time-zone: "UTC"
     82  1.3  mrg ## time-stamp-end: "'; # UTC"
     83  1.3  mrg ## End:
     84