[PATCH] dodoc: install directories recursively

Ken Brown kbrown@cornell.edu
Sun Apr 1 21:16:00 GMT 2012


On 4/1/2012 3:52 PM, Yaakov (Cygwin/X) wrote:
> From: Yaakov Selkowitz<yselkowitz@users.sourceforge.net>
>
> ---
>   lib/src_install.cygpart |   18 +++++++++++++++---
>   1 files changed, 15 insertions(+), 3 deletions(-)
>
> Try this instead.
>
> diff --git a/lib/src_install.cygpart b/lib/src_install.cygpart
> index 9165f11..b17c7d5 100644
> --- a/lib/src_install.cygpart
> +++ b/lib/src_install.cygpart
> @@ -153,10 +153,12 @@ docinto() {
>   #  SYNOPSIS
>   #  dodoc FILE [FILE] ...
>   #  DESCRIPTION
> -#  Installs the given files into $D/usr/share/doc/PN/, or a subdirectory thereof
> -#  specified by the previous call to docinto.
> +#  Installs the given files or directories into $D/usr/share/doc/PN/, or a
> +#  subdirectory thereof specified by the previous call to docinto.
>   #****
>   dodoc() {
> +	local docdir d f i
> +
>   	case "${_docinto_dir}" in
>   		'')	docdir=/usr/share/doc/${PN} ;;
>   		/*)	docdir=/usr/share/doc${_docinto_dir} ;;
> @@ -167,7 +169,17 @@ dodoc() {
>
>   	for i
>   	do
> -		if [ -f ${i} -o -L ${i} ]
> +		if [ -d ${i} ]
> +		then
> +			d=${i%/}
> +			pushd ${d}/..
> +			dodir $(find ${d##*/} -type d -exec printf ${docdir}/'{}'" " \;)
> +			for f in $(find ${d##*/} ! -type d)
> +			do
> +				__doinstall 0644 ${f} ${docdir}/${f%/*} || error "dodoc -r ${d} failed"
> +			done
> +			popd
> +		elif [ -f ${i} -o -L ${i} ]
>   		then
>   			if [ "x$(file -b ${i})" != "xempty" -a ! -f ${D}${docdir}/${i} ]
>   			then

It works.  Thanks.

Ken



More information about the Cygwin-apps mailing list