X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fgrml%2Fscript-functions;h=58e33dbc43f2c89a231b87915011c2aab6b074e9;hb=5c716b322f326200b851bdd3c8751cb1ab475e6e;hp=bc30ca5c83547bef0c583ab3e4f45f8de0147665;hpb=aae4ec9f95e42b6423996147d813a280ad5166ac;p=grml-etc-core.git diff --git a/etc/grml/script-functions b/etc/grml/script-functions index bc30ca5..58e33db 100644 --- a/etc/grml/script-functions +++ b/etc/grml/script-functions @@ -3,7 +3,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Sam Sep 16 13:08:16 CEST 2006 [mika] +# Latest change: Mit Okt 24 09:34:48 CEST 2007 [mika] ################################################################################ # {{{ set default PATH @@ -14,7 +14,7 @@ setpath(){ # {{{ check for root-permissions check4root(){ - if [ "$UID" != 0 ] ; then + if [ "$(id -u 2>/dev/null)" != 0 ] ; then echo 1>&2 "Error: please run this script with uid 0 (root)." ; return 1 fi } @@ -22,7 +22,7 @@ check4root(){ # {{{ check for user permissions check4user(){ - if [ "$UID" == 0 ] ; then + if [ "$(id -u 2>/dev/null)" = 0 ] ; then echo 1>&2 "Error: please do not run this script with uid 0 (root)." ; return 1 fi } @@ -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