--- mcore-src/trunk/mcore-tools/daemon/client/mcored.in 2014/01/10 12:02:07 2140 +++ mcore-src/trunk/mcore-tools/src/mcored.in 2014/01/20 14:04:52 2303 @@ -9,17 +9,18 @@ fi # globals +# include function comes with common.global class source ${MCORE_LIBDIR}/include/common.global.class -source ${MCORE_LIBDIR}/include/daemon.global.class -source ${MCORE_LIBDIR}/include/sessionauth.global.class -#source ${MCORE_LIBDIR}/include/mysqlfunctions.global.class -source ${MCORE_LIBDIR}/include/hwdetection.global.class +include ${MCORE_LIBDIR}/include/daemon.global.class +include ${MCORE_LIBDIR}/include/sessionauth.global.class +#include ${MCORE_LIBDIR}/include/mysqlfunctions.global.class +include ${MCORE_LIBDIR}/include/hwdetection.global.class # load client classes plugins -load_client_classes +load_classes client # config settings -source @@SYSCONFDIR@@/mcore/config.rc +include @@SYSCONFDIR@@/mcore/mcore.conf #source @@SYSCONFDIR@@/mcore/serial # import_hardware_resource() @@ -56,6 +57,12 @@ WEBCRLF="false" QUIET="false" +# argvs are global variables - this fixes issues with whitespaces +# global argvs, the whole command line +export GLOBAL_ARGV +# class specific argvs which are given to the class as parameters +export CLASS_ARGV + run=run valid_session=no @@ -65,18 +72,19 @@ while [[ ${run} = run ]] do read line + eval "GLOBAL_ARGV=( ${line} )" - case ${line} in + case ${GLOBAL_ARGV[0]} in quit) run=quit ;; # only react on the globals -> import|get|set|auth - import*) run_class ${line} ;; - get*) run_class ${line} ;; - set*) run_class ${line} ;; - auth*) validate_auth ${line/auth /} ;; + import) run_class ;; + get) run_class ;; + set) run_class ;; + auth) validate_auth ${GLOBAL_ARGV[*]:1} ;; provide) valid_session && print_provide ;; require) valid_session && verify_requirements ;; - reload) valid_session && mecho "reloading client classes ..." && load_client_classes ;; + reload) valid_session && mecho "reloading client classes ..." && load_classes client ;; restart) valid_session && restart_service ;; stop) valid_session && stop_service ;; nocolors) export NOCOLORS="true" ;; @@ -85,7 +93,7 @@ quiet) export QUIET="true" ;; # version does not need auth version) print_version ;; - help*) + help) if valid_session then if [[ ${line} = help ]] @@ -101,9 +109,13 @@ ;; *) - mecho "Unkown command '${line}'" + mecho "Unknown command '${line}'" mecho "Type 'help' for more information." #echo "$line" >> /root/lala.log ;; esac + + # unset argvs to be safe + unset GLOBAL_ARGS + unset CLASS_ARGS done