#!/bin/sh # COLORS BLUE='\e[0;34m' RED='\e[1;31m' GREEN='\e[1;32m' YELLOW='\e[1;33m' NC='\e[0m' # FUNCTIONS function usage() { echo "kadu_modrebuild version 1.0 written by Marcin O'BenY Benka 2007" echo echo "USAGE: kadu_modrebuild [-p|-e] [LIST_OF_MODULES]" echo " LIST_OF_MODULES - optional list of modules to rebuild, if not given" echo " rebuilds all currently installed" echo " -e - use emerge" echo " -p - use paludis" echo echo "NOTE: you have to run this script as ROOT user!" } function vsleep() { SEC=0 while [ ${SEC} -lt ${1} ] do SEC=$((SEC+1)) echo -n "${SEC}..." sleep 1 done echo } # MAIN SCRIPT if test `whoami` != "root" -o $# = 0 then usage exit fi while getopts "eph" OPTION do case ${OPTION} in "e") OPT_EMERGE=1;; "p") OPT_PALUDIS=1;; "h") usage exit;; "?") exit 1;; esac done MODULES="`find /usr/lib/kadu/modules -maxdepth 1 -type f 2>/dev/null | grep "\.so$" | sed "s%.*/\(.*\)\.so$%kadu-\1%g" | sort | xargs`" MODULES_FAILED="" if [ ${OPT_EMERGE} ] then CMD_INS="emerge --oneshot -u" CMD_REM="emerge -C" elif [ ${OPT_PALUDIS} ] then CMD_INS="paludis -i" CMD_REM="paludis -u" fi if [ "${MODULES}" ] then echo -e "${YELLOW}WARNING:${NC} Interrupting rebuilding process may cause that all kadu modules will be removed!" echo echo -e "Rebuilding following Kadu modules: ${BLUE}${MODULES}${NC}" vsleep 5 ${CMD_REM} ${MODULES} for I in ${MODULES} do ${CMD_INS} ${I} if [ $? != 0 ] then MODULES_FAILED="${MODULES_FAILED} ${I}" fi done if [ ! -z ${MODULES_FAILED} ] then echo -e "${YELLOW}WARNING:${NC} Modules that installation failed: ${RED}${MODULES_FAILED}${NC}" else echo -e "${GREEN}OK:${NC} All done ;-)" fi else echo -e "${YELLOW}WARNING:${NC} Nothing to do!" fi