Index: doins =================================================================== RCS file: /var/cvsroot/gentoo-src/portage/bin/doins,v retrieving revision 1.6 diff -u -b -B -r1.6 doins --- doins 4 Oct 2004 13:56:50 -0000 1.6 +++ doins 4 Oct 2004 14:31:46 -0000 @@ -7,16 +7,36 @@ echo "${0}: at least one argument needed" exit 1 fi -if [ ! -d "${D}${INSDESTTREE}" ] ; then - install -d "${D}${INSDESTTREE}" + +if [ "${1}" == "-r" ] ; then + DOINSRECUR=y + shift +else + DOINSRECUR=n +fi +[ -z "${INSDEPTH}" ] && INSDEPTH=0 +if [ ${INSDEPTH} -gt 30 ] ; then + echo "${0}: sanity check ... 30 directories is too much :(" + exit 1 fi +dodir "${INSDESTTREE}" + for x in "$@" ; do if [ -L "$x" ] ; then cp "$x" "${T}" - mysrc="${T}"/`/usr/bin/basename "${x}"` + mysrc="${T}/$(/usr/bin/basename "${x}")" elif [ -d "$x" ] ; then - echo "doins: warning, skipping directory ${x}" + if [ "${DOINSRECUR}" == "n" ] ; then + continue + fi + + mydir="${INSDESTTREE}/$(basename "${x}")" + find "${x}" -mindepth 1 -maxdepth 1 -exec \ + env \ + INSDESTTREE="${mydir}" \ + INSDEPTH=$((INSDEPTH+1)) \ + doins -r {} \; continue else mysrc="${x}"