move-if-change revision 256281
1139749Simp#!/bin/sh
250702Swpaul# Like mv $1 $2, but if the files are the same, just delete $1.
350702Swpaul# Status is zero if successful, nonzero otherwise.
450702Swpaul
550702Swpaulusage="$0: usage: $0 SOURCE DEST"
650702Swpaul
750702Swpaulcase $# in
850702Swpaul2) ;;
950702Swpaul*) echo "$usage" >&2; exit 1;;
1050702Swpaulesac
1150702Swpaul
1250702Swpaulfor arg in "$1" "$2"; do
1350702Swpaul  case $arg in
1450702Swpaul   -*) echo "$usage" >&2; exit 1;;
1550702Swpaul  esac
1650702Swpauldone
1750702Swpaul
1850702Swpaulif test -r "$2" && cmp -s "$1" "$2"; then
1950702Swpaul  rm -f "$1"
2050702Swpaulelse
2150702Swpaul  mv -f "$1" "$2"
2250702Swpaulfi
2350702Swpaul