Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/mcored.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2480 - (hide annotations) (download)
Thu Sep 10 10:41:11 2015 UTC (8 years, 8 months ago) by niro
File size: 2518 byte(s)
-respect SILENT env var for internal daemon communication
1 niro 1248 #!/bin/bash
2    
3 niro 2137 MCORE_LIBDIR="@@MCORE_LIBDIR@@"
4 niro 1248
5 niro 2095 # respect system env (proxy settings etc)
6 niro 2137 if [ -e @@SYSCONFDIR@@/profile ]
7 niro 2095 then
8 niro 2137 source @@SYSCONFDIR@@/profile
9 niro 2095 fi
10    
11 niro 1248 # globals
12 niro 2258 # include function comes with common.global class
13 niro 2140 source ${MCORE_LIBDIR}/include/common.global.class
14 niro 2258 include ${MCORE_LIBDIR}/include/daemon.global.class
15     include ${MCORE_LIBDIR}/include/sessionauth.global.class
16 niro 2446 include ${MCORE_LIBDIR}/include/register.global.class
17 niro 2258 include ${MCORE_LIBDIR}/include/hwdetection.global.class
18 niro 1248
19 niro 1916 # load client classes plugins
20 niro 2303 load_classes client
21 niro 1248
22     # config settings
23 niro 2258 include @@SYSCONFDIR@@/mcore/mcore.conf
24 niro 1248
25 niro 2479 # 0=false, 1=true
26 niro 1248 DEBUG=1
27 niro 2479 NOCOLORS=0
28     WEBCRLF=0
29     QUIET=0
30 niro 2480 # daemon silent mode, read from env
31     : ${SILENT=0}
32 niro 1248
33 niro 2269 # argvs are global variables - this fixes issues with whitespaces
34     # global argvs, the whole command line
35     export GLOBAL_ARGV
36     # class specific argvs which are given to the class as parameters
37     export CLASS_ARGV
38    
39 niro 1248 run=run
40     valid_session=no
41    
42 niro 2052 # tell what we are
43 niro 2480 [[ ${SILENT} = 1 ]] || echo "Connected to $(print_version)"
44 niro 2052
45 niro 1248 while [[ ${run} = run ]]
46     do
47 niro 2335 # use an echo here not read -p '>' because sslsvd ignores the prompt pattern
48 niro 2480 [[ ${SILENT} = 1 ]] || echo -n '> '
49 niro 1248 read line
50 niro 2269 eval "GLOBAL_ARGV=( ${line} )"
51 niro 1248
52 niro 2269 case ${GLOBAL_ARGV[0]} in
53 niro 1248 quit) run=quit ;;
54    
55     # only react on the globals -> import|get|set|auth
56 niro 2269 import) run_class ;;
57     get) run_class ;;
58     set) run_class ;;
59     auth) validate_auth ${GLOBAL_ARGV[*]:1} ;;
60 niro 2423 certauth) validate_auth_certificate ${GLOBAL_ARGV[*]:1} ;;
61 niro 2442 register) valid_session && register_client_local ${GLOBAL_ARGV[*]:1} ;;
62 niro 1305 provide) valid_session && print_provide ;;
63     require) valid_session && verify_requirements ;;
64 niro 2303 reload) valid_session && mecho "reloading client classes ..." && load_classes client ;;
65 niro 1916 restart) valid_session && restart_service ;;
66 niro 2005 stop) valid_session && stop_service ;;
67 niro 2479 nocolors) export NOCOLORS=1 ;;
68     colors) export NOCOLORS=0 ;;
69     webcrlf) export WEBCRLF=1 ;;
70     quiet) export QUIET=1 ;;
71 niro 2044 # version does not need auth
72 niro 2052 version) print_version ;;
73 niro 2269 help)
74 niro 1305 if valid_session
75 niro 1248 then
76     if [[ ${line} = help ]]
77     then
78     help_topics
79     else
80     run_class ${line}
81     fi
82     else
83     mecho "You must authenticate yourself first!"
84     mecho " auth [username] [password]"
85 niro 2426 mecho "or"
86     mecho " certauth [certificate fingerprint]"
87 niro 1248 fi
88     ;;
89    
90     *)
91 niro 2243 mecho "Unknown command '${line}'"
92 niro 1248 mecho "Type 'help' for more information."
93 niro 1894 #echo "$line" >> /root/lala.log
94 niro 1248 ;;
95     esac
96 niro 2269
97     # unset argvs to be safe
98     unset GLOBAL_ARGS
99     unset CLASS_ARGS
100 niro 1248 done