mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 4695019a1c
			
		
	
	
		4695019a1c
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | ||
| # usage: ifchange target temporary
 | ||
| 
 | ||
| # Used in generating revision.h via Makefiles.
 | ||
| 
 | ||
| set -e
 | ||
| timestamp=
 | ||
| keepsuffix=
 | ||
| empty=
 | ||
| color=auto
 | ||
| until [ $# -eq 0 ]; do
 | ||
|     case "$1" in
 | ||
| 	--timestamp)
 | ||
| 	    timestamp=.
 | ||
| 	    ;;
 | ||
| 	--timestamp=*)
 | ||
| 	    timestamp=`expr \( "$1" : '[^=]*=\(.*\)' \)`
 | ||
| 	    ;;
 | ||
| 	--keep)
 | ||
| 	    keepsuffix=.old
 | ||
| 	    ;;
 | ||
| 	--keep=*)
 | ||
| 	    keepsuffix=`expr \( "$1" : '[^=]*=\(.*\)' \)`
 | ||
| 	    ;;
 | ||
| 	--empty)
 | ||
| 	    empty=yes
 | ||
| 	    ;;
 | ||
| 	--color)
 | ||
| 	    color=always
 | ||
| 	    ;;
 | ||
| 	--color=*)
 | ||
| 	    color=`expr \( "$1" : '[^=]*=\(.*\)' \)`
 | ||
| 	    ;;
 | ||
| 	--debug)
 | ||
| 	    set -x
 | ||
| 	    ;;
 | ||
| 	*)
 | ||
| 	    break
 | ||
| 	    ;;
 | ||
|     esac
 | ||
|     shift
 | ||
| done
 | ||
| 
 | ||
| target="$1"
 | ||
| temp="$2"
 | ||
| if [ "$temp" = - ]; then
 | ||
|     temp="tmpdata$$.tmp~"
 | ||
|     cat > "$temp"
 | ||
|     trap 'rm -f "$temp"' 0
 | ||
| fi
 | ||
| 
 | ||
| msg_begin= msg_unchanged= msg_updated= msg_reset=
 | ||
| if [ "$color" = always -o \( "$color" = auto -a -t 1 \) ]; then
 | ||
|     msg_begin="["
 | ||
|     case "`tput smso 2>/dev/null`" in
 | ||
| 	"$msg_begin"*m)
 | ||
| 	    if [ ${TEST_COLORS:+set} ]; then
 | ||
| 		msg_unchanged=`expr ":$TEST_COLORS:" : ".*:pass=\([^:]*\):"` || :
 | ||
| 		msg_updated=`expr ":$TEST_COLORS:" : ".*:fail=\([^:]*\):"` || :
 | ||
| 	    fi
 | ||
| 	    msg_unchanged="${msg_begin}${msg_unchanged:-32}m"
 | ||
| 	    msg_updated="${msg_begin}${msg_updated:-31;1}m"
 | ||
| 	    msg_reset="${msg_begin}m"
 | ||
| 	    ;;
 | ||
|     esac
 | ||
|     unset msg_begin
 | ||
| fi
 | ||
| 
 | ||
| targetdir=
 | ||
| case "$target" in */*) targetdir=`dirname "$target"`;; esac
 | ||
| if [ -f "$target" -a ! -${empty:+f}${empty:-s} "$temp" ] || cmp "$target" "$temp" >/dev/null 2>&1; then
 | ||
|     echo "$target ${msg_unchanged}unchanged${msg_reset}"
 | ||
|     rm -f "$temp"
 | ||
| else
 | ||
|     echo "$target ${msg_updated}updated${msg_reset}"
 | ||
|     [ x"${targetdir}" = x -o -d "${targetdir}" ] || mkdir -p "${targetdir}"
 | ||
|     [ x"${keepsuffix}" != x -a -f "$target" ] && mv -f "$target" "${target}${keepsuffix}"
 | ||
|     mv -f "$temp" "$target"
 | ||
| fi
 | ||
| 
 | ||
| if [ -n "${timestamp}" ]; then
 | ||
|     if [ x"${timestamp}" = x. ]; then
 | ||
| 	if [ x"$targetdir" = x ]; then
 | ||
| 	    timestamp=.time."$target"
 | ||
| 	else
 | ||
| 	    timestamp="$targetdir"/.time.`basename "$target"`
 | ||
| 	fi
 | ||
|     fi
 | ||
|     : > "$timestamp"
 | ||
| fi
 |