blob: 03359851a5a12afac458e0e297ef9954a95c9617 [file] [log] [blame]
#!/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
TMP=$(mktemp -d "${T}/.newins_tmp_XXXXXX")
trap 'rm -rf "${TMP}"' EXIT
if [[ ${stdin} ]] ; then
if [[ -t 0 ]] ; then
__helpers_die "!!! ${helper}: Input is from a terminal"
exit 1
fi
cat > "${TMP}/$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" "${TMP}/$2"
ret=$?
fi
if [[ ${ret} -ne 0 ]] ; then
__helpers_die "${0##*/} failed"
exit ${ret}
fi
do${helper#new} "${TMP}/$2"
ret=$?
[[ $ret -ne 0 ]] && __helpers_die "${helper} failed"
exit $ret