diff options
-rwxr-xr-x | functions/cache.sh | 18 |
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 |