#!/bin/bash
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh

helper=${0##*/}

if [[ -z ${T} ]] || [[ -z ${2} ]] ; then
	__helpers_die "${helper}: Need two arguments, old file and new file"
	exit 1
fi

(($#>2)) && \
	eqawarn "QA Notice: ${helper} called with more than 2 arguments: ${@:3}"

stdin=
if ___eapi_newins_supports_reading_from_standard_input && [[ $1 == "-" ]]; then
	stdin=yes
fi

rm -rf "${T}/$2"

if [[ ${stdin} ]] ; then
	if [[ -t 0 ]] ; then
		__helpers_die "!!! ${helper}: Input is from a terminal"
		exit 1
	fi
	cat > "${T}/$2"
	ret=$?
else
	if [[ ! -e $1 ]] ; then
		__helpers_die "!!! ${helper}: $1 does not exist"
		exit 1
	fi

	cp_args="-f"
	if [[ ${helper} == newins ]] ; then
		if ___eapi_doins_and_newins_preserve_symlinks; then
			cp_args+=" -P"
		fi
	fi

	cp ${cp_args} "$1" "${T}/$2"
	ret=$?
fi

if [[ ${ret} -ne 0 ]] ; then
	__helpers_die "${0##*/} failed"
	exit ${ret}
fi

do${helper#new} "${T}/$2"
ret=$?
rm -rf "${T}/${2}"
[[ $ret -ne 0 ]] && __helpers_die "${helper} failed"
exit $ret
