summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfunctions/cache.sh18
1 files changed, 16 insertions, 2 deletions
diff --git a/functions/cache.sh b/functions/cache.sh
index 06ec5a28b..1b043681d 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