#!/bin/bash MCORE_LIBDIR="@@MCORE_LIBDIR@@" source @@SYSCONFDIR@@/mcore/mcore.conf source ${MCORE_LIBDIR}/include/common.global.class MENUCONFDIR="${MCORE_CONFIG_PATH}/fluxbox/menu" die() { echo "ERROR: $@"; exit 1; } # very basic getops for argv in $* do case $1 in --add|--del|--print) method="${1//--}" ;; --name) shift; name="$1" ;; --exec) shift; exec="$1" ;; --workdir) shift; workdir="$1" ;; --icon) shift; icon="$1" ;; --comment) shift; comment="$1" ;; esac shift done [[ -n ${method} ]] || die "No method given" case "${method}" in add) [[ -n ${name} ]] || die "No name given" [[ -n ${exec} ]] || die "No exec given" CONFIG="${MROOT}/${MENUCONFDIR}/${name}" clearconfig [[ -n ${comment} ]] && addconfig "# ${comment}" addconfig "[exec] (${name}) {${exec}}" if [[ -n ${icon} ]] then if [[ -x ${MCORE_LIBDIR}/idesk-generate-icon-info ]] then # generate idesk desktop icon ${MCORE_LIBDIR}/idesk-generate-icon-info --add --name "${name}" --command "${exec}" --icon "${icon}" fi fi ;; del) if [[ -n ${name} ]] then if [[ -f ${MROOT}/${MENUCONFDIR}/${name} ]] then rm ${MROOT}/${MENUCONFDIR}/"${name}" fi if [[ -x ${MCORE_LIBDIR}/idesk-generate-icon-info ]] then ${MCORE_LIBDIR}/idesk-generate-icon-info --del --name "${name}" fi else # delete all items find ${MROOT}/${MENUCONFDIR} -type f | xargs --no-run-if-empty rm if [[ -x ${MCORE_LIBDIR}/idesk-generate-icon-info ]] then ${MCORE_LIBDIR}/idesk-generate-icon-info --del fi fi ;; print) list_files_in_directory ${MROOT}/${MENUCONFDIR} ;; esac