Browse Source
Since cp won't copy a directory over a symlink, any updates that were supposed to go into e.g. /lib would get dropped if you had /updates/lib as an actual directory, but the target system had /lib->/usr/lib.master


1 changed files with 14 additions and 6 deletions
@ -1,9 +1,17 @@
@@ -1,9 +1,17 @@
|
||||
#!/bin/sh |
||||
if [ -b /dev/mapper/live-rw ]; then |
||||
if [ -d /updates ]; then |
||||
echo "Applying updates to live image..." |
||||
|
||||
. /tmp/root.info |
||||
|
||||
if [ -b /dev/mapper/live-rw ] && [ -d /updates ]; then |
||||
info "Applying updates to live image..." |
||||
# avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories |
||||
( |
||||
cd /updates |
||||
/bin/cp -a -t $NEWROOT . |
||||
cd - |
||||
fi |
||||
find . -depth -type d | while read dir; do |
||||
[ -d "$NEWROOT/$dir" ] || mkdir -p "$NEWROOT/$dir" |
||||
done |
||||
find . -depth \! -type d | while read file; do |
||||
cp -a "$file" "$NEWROOT/$file" |
||||
done |
||||
) |
||||
fi |
||||
|
Loading…
Reference in new issue