X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fgrml%2Fscript-functions;h=a39e3d8a34ce783493e6e836f6baf09d46893fb0;hb=69d4655e7691826d627510926aa919ddeb1f5fa0;hp=61c24d9aa97ce71dfeef8f8b0c0f52f07da27131;hpb=0e59a65165a77ec4bf0b6a048c1a8469f540059e;p=grml-etc-core.git diff --git a/etc/grml/script-functions b/etc/grml/script-functions index 61c24d9..a39e3d8 100644 --- a/etc/grml/script-functions +++ b/etc/grml/script-functions @@ -3,7 +3,6 @@ # 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: Fre Apr 06 22:42:04 CEST 2007 [mika] ################################################################################ # {{{ set default PATH @@ -52,7 +51,7 @@ setdialog(){ check4progs(){ local RC='' for arg in $* ; do - type -p $arg >/dev/null 2>&1 || RC="$arg" + which $arg >/dev/null 2>&1 || RC="$arg" done if [ -n "$RC" ] ; then echo "$RC not installed" @@ -77,8 +76,9 @@ stringinstring(){ # {{{ reread boot command line; echo last parameter's argument or return false. getbootparam(){ - stringinstring " $1=" /proc/cmdline || return 1 - result="${/proc/cmdline##*$1=}" + CMDLINE=$(cat /proc/cmdline) + stringinstring " $1=" "$CMDLINE" || return 1 + result="${CMDLINE##*$1=}" result="${result%%[ ]*}" echo "$result" return 0 @@ -87,7 +87,7 @@ getbootparam(){ # {{{ check boot commandline for specified option checkbootparam(){ - stringinstring " $1" /proc/cmdline + stringinfile " $1" /proc/cmdline return "$?" } # }}} @@ -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