ARGS_DEF_opt_char_flg="qv"
ARGS_DEF_opt_word_flg="help"
ARGS_DEF_arg_namelist="config_list"
ARGS_DEF_arg_num_must=0
. /usr/local/bin/shargs
if [ "${ARGS_error}" == "Y" ]; then echo "${ARGS_usage}" 1>&2 ; exit 1; fi
if [ "${ARGS_opt_help}" == "Y" ]; then echo "${ARGS_usage}" 1>&2 ; exit 1; fi
if [ "${ARGS_opt_q}" == "Y" ]; then QUIET="yes"; else QUIET="" ; fi
if [ "${ARGS_opt_v}" == "Y" ]; then CHATTY="yes"; else CHATTY="" ; fi
if [ "${QUIET}" == "yes" ]; then CHATTY=""; fi
CMD_NAME=`basename ${ARGS_0}`
function msg () {
ECHO_FLAG=
if [ "${1}" == "-n" ]; then ECHO_FLAG="${ECHO_FLAG} -n"; shift; fi
if [ -z "${1}" -o -z "${2}" ]; then return 2; fi
MSG_CATEGORY="${1}"
MSG_BODY="${2}"
DO_ECHO="yes"
case "${MSG_CATEGORY}" in
II|I|ii|i)
MSG_CATEGORY="II"
if [ "${CHATTY}" != "yes" ]; then DO_ECHO="no"; fi
;;
--|-)
MSG_CATEGORY="--"
if [ "${CHATTY}" != "yes" ]; then DO_ECHO="no"; fi
;;
QQ|Q|qq|q)
MSG_CATEGORY="QQ"
;;
WW|W|ww|w)
MSG_CATEGORY="WW"
if [ "${QUIET}" == "yes" ]; then DO_ECHO="no"; fi
;;
EE|E|ee|e)
MSG_CATEGORY="EE"
if [ "${QUIET}" == "yes" ]; then DO_ECHO="no"; fi
;;
*)
MSG_CATEGORY="XX"
;;
esac
if [ "${DO_ECHO}" == "yes" ]; then
echo $ECHO_FLAG "(${MSG_CATEGORY}) $MSG_BODY" 1>&2
fi
}
CONFIG_LIST_FILE=
if [ -n "${ARGS__config_list}" ]; then
if [ "${ARGS__config_list}" != "-" ]; then
if [ -f ${ARGS__config_list} ]; then
CONFIG_LIST_FILE=${ARGS__config_list}
exec < ${CONFIG_LIST_FILE}
else
msg e "\"${ARGS__config_list}\" does not exist or is not a file."
exit 1
fi
fi
fi
while read SERVICE LEVEL0 LEVEL1 LEVEL2 LEVEL3 LEVEL4 LEVEL5 LEVEL6 ; do
if [ -z "${SERVICE}" ]; then continue; fi
if [ "${SERVICE::1}" == "#" ]; then continue; fi
if [ "${SERVICE}" == "xinetd" ]; then
msg i "ignoring \"xinetd\" services."
break
fi
msg i "${SERVICE} ${LEVEL0} ${LEVEL1} ${LEVEL2} ${LEVEL3} ${LEVEL4} ${LEVEL5} ${LEVEL6}"
if [ -x "/etc/init.d/${SERVICE}" ]; then
for (( count = 0 ; count <= 6 ; count++ )); do
eval "CURRENT=\$LEVEL${count}"
if [ -z "${CURRENT}" ]; then continue; fi
LEVEL=${CURRENT::1}
ONOFF=${CURRENT:2}
if [ ${LEVEL} -ge 0 -a ${LEVEL} -le 6 ]; then
if [ ${ONOFF} == "on" -o ${ONOFF} == "off" ]; then
chkconfig --level ${LEVEL} ${SERVICE} ${ONOFF}
else
msg w "switch must be \"on\" or \"off\""
fi
else
msg w "level must be in 0..6"
fi
done
else
msg w "service \"${SERVICE}\" does not installed."
fi
done