#!/bin/bash MCORE_LIBDIR="@@MCORE_LIBDIR@@" source @@SYSCONFDIR@@/mcore/mcore.conf source ${MCORE_LIBDIR}/include/common.global.class source ${MCORE_LIBDIR}/include/daemon.global.class STROREFRONTDIR="${MCORE_CONFIG_PATH}/citrix/storefront" die() { echo "ERROR: $@"; exit 1; } # very basic getops for argv in $* do case $1 in --add|--del|--print|--query) method="${1//--}" ;; --name) shift; name="$1" ;; --session) shift; session="$1" ;; --user) shift; user="$1" ;; --domain) shift; domain="$1" ;; --password) shift; password="$1" ;; esac shift done [[ -n ${method} ]] || die "No method given" case "${method}" in add) # requires name [[ -n ${name} ]] || die "No name given" # action 'add' requires mode too [[ -n ${mode} ]] || die "No mode given" # and session [[ -n ${session} ]] || die "No session given" storefront_starter="${STOREFRONTDIR}/${name}.sh" CONFIG="${MROOT}/${storefront_starter}" clearconfig addconfig '#!/bin/bash' addconfig "${MCORE_LIBDIR}/storefront-resolver launch '${session}' '${user}' '${password}' '${domain}'" if is_provided fluxbox then # generate fluxbox menu entry ${MCORE_LIBDIR}/fluxbox-menuitem --add --name "${name}" --exec "${storefront_starter}" && ${MCORE_LIBDIR}/fluxbox-rebuild-menu fi ;; del) [[ -n ${name} ]] || die "No name given" if [ -f ${MROOT}/${STOREFRONTDIR}/"${name}".sh ] then rm ${MROOT}/${STOREFRONTDIR}/"${name}".sh if is_provided fluxbox then ${MCORE_LIBDIR}/fluxbox-menuitem --del --name "${name}" && ${MCORE_LIBDIR}/fluxbox-rebuild-menu fi else eecho "No configured session named '${name}' exists." fi ;; print) list_files_in_directory ${MROOT}/${STOREFRONTDIR} ;; query) eval sessionlist=( $(${MCORE_LIBDIR}/storefront-resolver enumerate) ) sessioncount="${#sessionlist[*]}" for (( i=0; i