sh-test-lib: Don't run apt-get update every time

Run apt-get update once per 6 hours, rather than every time dependencies
are installed.

Change-Id: I6eaa15ac47e6a3cc7d60a6ea45fa663183547ca4
Signed-off-by: Dan Rue <dan.rue@linaro.org>
(cherry picked from commit 61c3a6499a253a8e2343d8c407fd75fcf9d16886)
diff --git a/automated/lib/sh-test-lib b/automated/lib/sh-test-lib
index ed0d96e..bc6c65e 100755
--- a/automated/lib/sh-test-lib
+++ b/automated/lib/sh-test-lib
@@ -193,8 +193,13 @@
         dist_name
         case "${dist}" in
           debian|ubuntu)
-            # Use the default answers for all questions.
-            DEBIAN_FRONTEND=noninteractive apt-get update -q -y
+            last_apt_time=/tmp/apt-get-updated.last
+            apt_cache_time=21600 # 6 hours
+            # Only run apt-get update if it hasn't been run in $apt_cache_time seconds
+            if [ ! -e ${last_apt_time} ] || \
+               [ "$(stat --format=%Y ${last_apt_time})" -lt $(( $(date +%s) - apt_cache_time )) ]; then
+                DEBIAN_FRONTEND=noninteractive apt-get update -q -y && touch ${last_apt_time}
+            fi
             # shellcheck disable=SC2086
             DEBIAN_FRONTEND=noninteractive apt-get install -q -y ${pkgs}
             ;;