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