summaryrefslogtreecommitdiff
path: root/functions/cache.sh
diff options
context:
space:
mode:
Diffstat (limited to 'functions/cache.sh')
-rwxr-xr-xfunctions/cache.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/functions/cache.sh b/functions/cache.sh
new file mode 100755
index 0000000..bffe1a3
--- /dev/null
+++ b/functions/cache.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# cache.sh - manage package cache
+# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
+#
+# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+# This is free software, and you are welcome to redistribute it
+# under certain conditions; see COPYING for details.
+
+set -e
+
+Restore_cache ()
+{
+ CACHEDIRECTORY="${1}"
+
+ if [ "${LH_CACHE}" = "enabled" ]
+ then
+ if [ -d "${CACHEDIRECTORY}" ]
+ then
+ # Restore old cache
+ cp "${CACHEDIRECTORY}"/*.deb chroot/var/cache/apt/archives
+ fi
+ fi
+}
+
+Save_cache ()
+{
+ CACHEDIRECTORY="${1}"
+
+ if [ "${LH_CACHE}" = "enabled" ]
+ then
+ # Cleaning current cache
+ Chroot "apt-get autoclean"
+
+ if ls chroot/var/cache/apt/archives/*.deb &> /dev/null
+ then
+ # Creating cache directory
+ if [ ! -d "${CACHEDIRECTORY}" ]
+ then
+ mkdir -p "${CACHEDIRECTORY}"
+ fi
+
+ # Saving new cache
+ mv -f chroot/var/cache/apt/archives/*.deb "${CACHEDIRECTORY}"
+ fi
+ else
+ # Purging current cache
+ rm -f chroot/var/cache/apt/archives/*.deb
+ fi
+}