cookutils rev 963

cook: copy empty directories (hi, consolekit2 package, and probably some other too).
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Sep 01 01:34:10 2017 +0300 (2017-09-01)
parents bdde5b0fe370
children 2bcfafb478c6
files cook modules/pkgdb
line diff
     1.1 --- a/cook	Thu Aug 31 03:14:01 2017 +0300
     1.2 +++ b/cook	Fri Sep 01 01:34:10 2017 +0300
     1.3 @@ -1378,9 +1378,11 @@
     1.4  
     1.5  copy() {
     1.6  	action 'Copying folders and files...'
     1.7 -	local i j filelist=$(mktemp)
     1.8 +	local i j k filelist=$(mktemp) folderlist=$(mktemp)
     1.9  	IFS=$'\n'
    1.10 -	cd $install; find ! -type d | sed 's|\.||' > $filelist
    1.11 +	cd $install
    1.12 +	find ! -type d | sed 's|\.||' > $filelist
    1.13 +	find   -type d | sed 's|\.||' > $folderlist
    1.14  	for i in $@; do
    1.15  		case $i in
    1.16  			@std)
    1.17 @@ -1419,10 +1421,31 @@
    1.18  				scopy "$install$j" $fs$(dirname "$j")
    1.19  			fi
    1.20  		done
    1.21 +		# Copy empty directories
    1.22 +		case $i in
    1.23 +			@std)
    1.24 +				while read j; do
    1.25 +					[ -z "$(ls "$install$j")" ] || continue
    1.26 +					# directory $j is empty
    1.27 +					k="$j"
    1.28 +					# make 'ladder' from directories, from root dir to $j
    1.29 +					# /a   /a/b   /a/b/c   etc.
    1.30 +					while :; do
    1.31 +						[ -z "$k" ] && break
    1.32 +						echo "$k"
    1.33 +						k="${k%/*}"
    1.34 +					done | tac | \
    1.35 +					# copy dir with its original ownership/permissions if it not exist
    1.36 +					while read k; do
    1.37 +						[ -d "$fs$k" ] || cp -a "$install$k" "$fs$k"
    1.38 +					done
    1.39 +				done < $folderlist
    1.40 +				;;
    1.41 +		esac
    1.42  	done
    1.43  	cd - >/dev/null
    1.44  	unset IFS
    1.45 -	rm $filelist
    1.46 +	rm $filelist $folderlist
    1.47  	status
    1.48  }
    1.49  
     2.1 --- a/modules/pkgdb	Thu Aug 31 03:14:01 2017 +0300
     2.2 +++ b/modules/pkgdb	Fri Sep 01 01:34:10 2017 +0300
     2.3 @@ -91,7 +91,7 @@
     2.4  
     2.5  
     2.6  _ 'Creating lists from "%s"' "$WOK" | dblog
     2.7 -rm $PKGS/files.list
     2.8 +[ -e $PKGS/files.list ] && rm $PKGS/files.list
     2.9  cd $WOK
    2.10  rsumf=$(mktemp)
    2.11  for i in *; do