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