# Filename: /etc/grml/script-functions # Purpose: some often used functions for use in shellscripts # 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] ################################################################################ # {{{ set default PATH setpath(){ export PATH=${PATH:-'/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin'} } # }}} # {{{ check for root-permissions check4root(){ if [ "$UID" != 0 ] ; then echo 1>&2 "Error: please run this script with uid 0 (root)." ; return 1 fi } # }}} # {{{ check for user permissions check4user(){ if [ "$UID" == 0 ] ; then echo 1>&2 "Error: please do not run this script with uid 0 (root)." ; return 1 fi } # }}} # {{{ check for running zsh iszsh(){ if ! [ -z "$ZSH_VERSION" ] ; then return 0 else return 1 fi } # }}} # {{{ check for (X)dialog setdialog(){ if [ -n "$DISPLAY" ] ; then [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog" && export XDIALOG_HIGH_DIALOG_COMPAT=1 else [ -x /usr/bin/dialog ] && DIALOG='dialog' || ( echo 1>&2 "dialog not available" ; return 1 ) fi } # }}} # {{{ check for availability of program(s) check4progs(){ local RC='' for arg in $* ; do type -p $arg >/dev/null 2>&1 || RC="$arg" done if [ -n "$RC" ] ; then echo "$RC not installed" return 1 fi } # }}} # {{{ simple shell grep stringinfile(){ case "$(cat $2)" in *$1*) return 0;; esac return 1 } # }}} # {{{ simple shell grep for strings stringinstring(){ case "$2" in *$1*) return 0;; esac return 1 } # }}} # {{{ reread boot command line; echo last parameter's argument or return false. getbootparam(){ stringinstring " $1=" /proc/cmdline || return 1 result="${/proc/cmdline##*$1=}" result="${result%%[ ]*}" echo "$result" return 0 } # }}} # {{{ check boot commandline for specified option checkbootparam(){ stringinstring " $1" /proc/cmdline return "$?" } # }}} # {{{ check whether $1 is yes checkvalue(){ if [ "$1" = "yes" -o "$1" = "YES" ] ; then return 0 else return 1 fi } # }}} # {{{ grml specific checks isgrml(){ [ -f /etc/grml_version ] && return 0 || return 1 } grmlversion(){ cat /etc/grml_version } isgrmlcd(){ [ -f /etc/grml_cd ] && return 0 || return 1 } isgrmlhd(){ [ -f /etc/grml_cd ] && return 1 || return 0 } checkgrmlsmall(){ grep -q small /etc/grml_version 2>/dev/null && return 0 || return 1 } # }}} # {{{ filesystems (proc, pts, sys) mount_proc(){ check4root || return 1 [ -f /proc/version ] || mount -t proc /proc /proc 2>/dev/null } mount_pts(){ check4root || return 1 stringinfile "/dev/pts" /proc/mounts || mount -t devpts /dev/pts /dev/pts 2>/dev/null } mount_sys(){ check4root || return 1 [ -d /sys/devices ] || mount -t sysfs /sys /sys 2>/dev/null } # }}} ## END OF FILE ################################################################# # vim:foldmethod=marker tw=80 ai expandtab shiftwidth=2 tabstop=2