## # \file # To each interface a set of caller functions exist, that take an instance # of an object and then in turn call the implementation for the class of # this object. If there is none within the class it looks into its # parent class and so forth. # # This is somewhat similar to late binding in real OOP languages, but # by far not so elaborated. This is not a real object oriented language # and will surely never ever provide all features these have. # # That said it has proven very usefull for me to orgnize code and prevent # code duplication. # # \author Georg Hopp # # \copyright # Copyright © 2014 Georg Hopp # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ## # get and export the locations of used programs and export them # I assume that on every UNIX/shell variant at least [ is globally # available. I will use it throughout all other scripts without # checking for existence. # I also assume through all scripts that eval is available. # [ -z "${WHICH}" ] && WHICH="/usr/bin/which" [ -z "${UNAME}" ] && UNAME="$(${WHICH} uname 2>/dev/null)" [ -z "${GREP}" ] && GREP="$(${WHICH} grep 2>/dev/null)" [ -z "${AWK}" ] && AWK="$(${WHICH} awk 2>/dev/null)" [ -z "${SED}" ] && SED="$(${WHICH} sed 2>/dev/null)" [ -z "${ECHO}" ] && ECHO="$(${WHICH} echo 2>/dev/null)" [ -z "${SORT}" ] && SORT="$(${WHICH} sort 2>/dev/null)" [ -z "${TR}" ] && TR="$(${WHICH} tr 2>/dev/null)" [ -z "${PRINTF}" ] && PRINTF="$(${WHICH} printf 2>/dev/null)" [ -z "${LOGGER}" ] && LOGGER="$(${WHICH} logger 2>/dev/null)" [ -z "${NPROC}" ] && NPROC="$(${WHICH} nproc 2>/dev/null)" [ -z "${LSCPU}" ] && LSCPU="$(${WHICH} lscpu 2>/dev/null)" [ -z "${SYSCTL}" ] && SYSCTL="$(${WHICH} sysctl 2>/dev/null)" [ -z "${IP}" ] && IP="$(${WHICH} ip 2>/dev/null)" [ -z "${IFCONFIG}" ] && IFCONFIG="$(${WHICH} ifconfig 2>/dev/null)" export WHICH UNAME GREP AWK SED ECHO SORT TR PRINTF LOGGER NPROC LSCPU IP IFCONFIG # vim: set ts=4 sw=4: