lsb-functions: moved is_older_than() and reverse_list() to script-functions
[grml-etc-core.git] / etc / grml / script-functions
index 61c24d9..0a389e9 100644 (file)
@@ -141,5 +141,47 @@ mount_sys(){
 }
 # }}}
 
+# char *reverse_list(list) {{{
+#
+#   Returns the reversed order of list
+#
+reverse_list() {
+    local ret
+    ret=''
+    while [ "$#" -gt 0 ] ; do
+        if [ -z "${ret}" ] ; then
+            ret="$1"
+        else
+            ret="$1 ${ret}"
+        fi
+        shift
+    done
+    printf '%s' "${ret}"
+}
+#}}}
+
+# bool is_older_than(reference, files/dirs to check) {{{
+#
+#   return 0 if any of the files/dirs are newer than
+#   the reference file
+#
+#   EXAMPLE: if is_older_than a.out *.o ; then ...
+is_older_than() {
+    local x
+    local ref="$1"
+    shift
+
+    for x in "$@" ; do
+        [ "${x}" -nt "${ref}" ] && return 0
+
+        if [ -d "${x}" ] ; then
+            is_older_than "${ref}" "${x}"/* && return 0
+        fi
+    done
+
+    return 1
+}
+#}}}
+
 ## END OF FILE #################################################################
 # vim:foldmethod=marker tw=80 ai expandtab shiftwidth=2 tabstop=2