summaryrefslogtreecommitdiff
path: root/functions/cache.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2008-04-15 17:16:28 +0200
committerDaniel Baumann <daniel@debian.org>2011-03-09 19:03:32 +0100
commit7e5c3585b8da01782e6d55af2b7fb9b722a76bd6 (patch)
tree165008fb0519eb887017d523ae9d742394a62808 /functions/cache.sh
parentef1b16304060cd726cbbfe02fb634cb5ed1fdc95 (diff)
downloadlive-build-7e5c3585b8da01782e6d55af2b7fb9b722a76bd6.zip
live-build-7e5c3585b8da01782e6d55af2b7fb9b722a76bd6.tar.gz
Improving .deb caching by using hardlinks (if possible).
Diffstat (limited to 'functions/cache.sh')
-rwxr-xr-xfunctions/cache.sh18
1 files changed, 16 insertions, 2 deletions
diff --git a/functions/cache.sh b/functions/cache.sh
index 06ec5a2..1b04368 100755
--- a/functions/cache.sh
+++ b/functions/cache.sh
@@ -18,7 +18,14 @@ Restore_cache ()
if [ -d "${DIRECTORY}" ]
then
# Restore old cache
- cp "${DIRECTORY}"/*.deb chroot/var/cache/apt/archives
+ if [ "$(stat --printf %d ${DIRECTORY})" = "$(stat --printf %d chroot/var/cache/apt/archives)" ]
+ then
+ # with hardlinks
+ cp -fl "${DIRECTORY}"/*.deb chroot/var/cache/apt/archives
+ else
+ # without hardlinks
+ cp "${DIRECTORY}"/*.deb chroot/var/cache/apt/archives
+ fi
fi
fi
}
@@ -38,7 +45,14 @@ Save_cache ()
mkdir -p "${DIRECTORY}"
# Saving new cache
- mv -f chroot/var/cache/apt/archives/*.deb "${DIRECTORY}"
+ if [ "$(stat --printf %d ${DIRECTORY})" = "$(stat --printf %d chroot/var/cache/apt/archives)" ]
+ then
+ # with hardlinks
+ cp --force -l chroot/var/cache/apt/archives/*.deb "${DIRECTORY}"
+ else
+ # without hardlinks
+ mv -f chroot/var/cache/apt/archives/*.deb "${DIRECTORY}"
+ fi
fi
else
# Purging current cache