# HG changeset patch # User Aleksej Bobylev # Date 1504218850 -10800 # Node ID 96304f0412ca2d96f16e9a49c6287927fc8a485c # Parent bdde5b0fe37039fef168dffcd1a5e1b6e910849b cook: copy empty directories (hi, consolekit2 package, and probably some other too). diff -r bdde5b0fe370 -r 96304f0412ca cook --- a/cook Thu Aug 31 03:14:01 2017 +0300 +++ b/cook Fri Sep 01 01:34:10 2017 +0300 @@ -1378,9 +1378,11 @@ copy() { action 'Copying folders and files...' - local i j filelist=$(mktemp) + local i j k filelist=$(mktemp) folderlist=$(mktemp) IFS=$'\n' - cd $install; find ! -type d | sed 's|\.||' > $filelist + cd $install + find ! -type d | sed 's|\.||' > $filelist + find -type d | sed 's|\.||' > $folderlist for i in $@; do case $i in @std) @@ -1419,10 +1421,31 @@ scopy "$install$j" $fs$(dirname "$j") fi done + # Copy empty directories + case $i in + @std) + while read j; do + [ -z "$(ls "$install$j")" ] || continue + # directory $j is empty + k="$j" + # make 'ladder' from directories, from root dir to $j + # /a /a/b /a/b/c etc. + while :; do + [ -z "$k" ] && break + echo "$k" + k="${k%/*}" + done | tac | \ + # copy dir with its original ownership/permissions if it not exist + while read k; do + [ -d "$fs$k" ] || cp -a "$install$k" "$fs$k" + done + done < $folderlist + ;; + esac done cd - >/dev/null unset IFS - rm $filelist + rm $filelist $folderlist status } diff -r bdde5b0fe370 -r 96304f0412ca modules/pkgdb --- a/modules/pkgdb Thu Aug 31 03:14:01 2017 +0300 +++ b/modules/pkgdb Fri Sep 01 01:34:10 2017 +0300 @@ -91,7 +91,7 @@ _ 'Creating lists from "%s"' "$WOK" | dblog -rm $PKGS/files.list +[ -e $PKGS/files.list ] && rm $PKGS/files.list cd $WOK rsumf=$(mktemp) for i in *; do