Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/daemon/client/include/system.client.class

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2075 - (hide annotations) (download)
Fri May 10 10:45:18 2013 UTC (11 years ago) by niro
File size: 6511 byte(s)
-support get_ functions
1 niro 1248 # $Id$
2    
3     provide basic-system
4    
5     help_system_reboot()
6     {
7     mecho "set system.reboot"
8 niro 1262 mecho " Reboots the system."
9 niro 1248 }
10    
11     # set_system_reboot
12     set_system_reboot()
13     {
14     reboot
15     }
16    
17     help_system_shutdown()
18     {
19     mecho "set system.shutdown"
20 niro 1262 mecho " Shuts the system down."
21 niro 1248 }
22    
23     # set_system_shutdown
24     set_system_shutdown()
25     {
26 niro 2057 poweroff
27 niro 1248 }
28    
29     help_system_console()
30     {
31 niro 1262 mecho "set system.console [user]"
32     mecho " Opens a console with user or root privileges."
33     mecho " Known users:"
34 niro 1336 mecho " ${MCORE_UNPRIV_USER} - mcore standard user only with user privileges"
35 niro 1262 mecho " root - mcore root user with full system privileges"
36 niro 1248 }
37    
38 niro 1262 help_system_passwd()
39     {
40     mecho "set system.passwd [user] [password]"
41     mecho " Sets a system password for given user."
42 niro 1336 mecho " Allowed users: ${MCORE_UNPRIV_USER}, root"
43 niro 1262 mecho " If password is empty, the current password will be deleted."
44     }
45    
46 niro 1329 help_system_autologon()
47     {
48     mecho "get system.autologon"
49     mecho " Shows the state of autlogon"
50     mecho
51     mecho "set system.autologon [action]"
52     mecho " Enables or disables X11 autologins of the mcore user."
53     mecho " Available actions:"
54     mecho " enable - enables autologon"
55     mecho " disable - disables autologon"
56     }
57    
58 niro 1248 set_system_console()
59     {
60 niro 1262 local user="$1"
61     [[ -z ${user} ]] && help_system_console && return 1
62    
63     case "${user}" in
64 niro 1336 ${MCORE_UNPRIV_USER}) x11runas "rxvt &" ;;
65 niro 1262 root) x11runas "rxvt -T 'Login as root' -e /bin/bash -c 'echo \"Login as root\";exec /bin/login root' &" ;;
66     *) help_system_console && return 1 ;;
67     esac
68 niro 1248 }
69    
70 niro 1262 help_system_service()
71 niro 1248 {
72 niro 2075 mecho "get system.service [command] [service]"
73     mecho " Status information of system services."
74     mecho " Commands:"
75     mecho " status - prints status of given service"
76     mecho " enabled - check whether a service was enabled"
77     mecho " runlevel - print current system runlevel"
78     mecho
79 niro 1262 mecho "set system.service [command] [service] [opts]"
80     mecho " Controls system services."
81     mecho " Commands:"
82 niro 2075 mecho " start - starts given service"
83     mecho " stop - stops given service"
84     mecho " restart - restart given service"
85     mecho " reload - reloads given service if possible"
86     mecho " add - adds a service to default runlevels"
87     mecho " del - deletes a service from all runlevels"
88 niro 1248 }
89    
90 niro 2075 helper_set_system_service_sysvinit()
91 niro 1248 {
92 niro 1262 local command="$1"
93     local service="$2"
94     local opts="$3"
95    
96     [[ -z ${command} ]] && help_system_service && return 1
97     [[ -z ${service} ]] && help_system_service && return 1
98    
99 niro 2017 if [[ ! -x ${MROOT}/etc/rc.d/init.d/${service} ]]
100 niro 1262 then
101 niro 1648 eecho "Service '${service}' unkown!"
102 niro 2061 return 1
103 niro 1262 fi
104    
105     case "${command}" in
106     start) /etc/rc.d/init.d/"${service}" start ;;
107     stop) /etc/rc.d/init.d/"${service}" stop ;;
108     restart) /etc/rc.d/init.d/"${service}" restart ;;
109     reload) /etc/rc.d/init.d/"${service}" reload ;;
110     add) rc-config add "${service}" ;;
111     del) rc-config del "${service}" ;;
112     *) help_system_service && return ;;
113     esac
114 niro 1248 }
115 niro 1262
116 niro 2075 helper_set_system_service_systemd()
117 niro 2061 {
118     local command="$1"
119     local service="$2"
120     local opts="$3"
121    
122     [[ -z ${command} ]] && help_system_service && return 1
123     [[ -z ${service} ]] && help_system_service && return 1
124    
125     if [[ -n $(systemctl status ${service} | grep 'Reason: No such file or directory') ]]
126     then
127     eecho "Service '${service}' unkown!"
128     return 1
129     fi
130    
131     case "${command}" in
132     start) systemctl start "${service}" ;;
133     stop) systemctl stop "${service}" ;;
134     restart) systemctl try-restart "${service}" ;;
135     reload) systemctl reload-or-try-restart "${service}" ;;
136     add) systemctl enable "${service}" ;;
137     del) systemctl disable "${service}" ;;
138     *) help_system_service && return ;;
139     esac
140     }
141    
142     set_system_service()
143     {
144     if [[ -x $(type -P systemctl) ]]
145     then
146 niro 2075 helper_set_system_service_systemd $*
147 niro 2061 else
148 niro 2075 helper_set_system_service_sysvinit $*
149 niro 2061 fi
150     }
151    
152 niro 2075 helper_get_system_service_sysvinit()
153     {
154     local command="$1"
155     local service="$2"
156    
157     [[ -z ${command} ]] && help_system_service && return 1
158     [[ -z ${service} ]] && help_system_service && return 1
159    
160     if [[ ! -x ${MROOT}/etc/rc.d/init.d/${service} ]]
161     then
162     eecho "Service '${service}' unkown!"
163     return 1
164     fi
165    
166     case "${command}" in
167     status) /etc/rc.d/init.d/"${service}" status ;;
168     enabled) rc-config show "${service}" ;;
169     runlevel) eecho "function on todo" ;;
170     *) help_system_service && return ;;
171     esac
172     }
173    
174     helper_get_system_service_systemd()
175     {
176     local command="$1"
177     local service="$2"
178    
179     [[ -z ${command} ]] && help_system_service && return 1
180     [[ -z ${service} ]] && help_system_service && return 1
181    
182     if [[ -n $(systemctl status ${service} | grep 'Reason: No such file or directory') ]]
183     then
184     eecho "Service '${service}' unkown!"
185     return 1
186     fi
187    
188     case "${command}" in
189     status) systemctl status "${service}" ;;
190     enabled) systemctl is-enabled "${service}"; rvecho "$?" ;;
191     runlevel) rvecho "$(readline ${MROOT}/etc/systemd/system/default.target)" ;;
192     *) help_system_service && return ;;
193     esac
194     }
195    
196     get_system_service()
197     {
198     if [[ -x $(type -P systemctl) ]]
199     then
200     helper_get_system_service_systemd $*
201     else
202     helper_get_system_service_sysvinit $*
203     fi
204     }
205    
206 niro 1262 set_system_passwd()
207     {
208     local user="$1"
209     local pass="$2"
210    
211     [[ -z ${user} ]] && help_system_passwd && return 1
212     [[ -z ${pass} ]] && mecho "deleting password!"
213    
214     case "${user}" in
215 niro 1336 root|${MCORE_UNPRIV_USER}) (echo "${pass}"; sleep 0.1; echo "${pass}") | passwd "${user}" ;;
216 niro 1262 *) help_system_passwd && return 1 ;;
217     esac
218     }
219    
220     help_system_vt()
221     {
222     mecho "get system.vt"
223     mecho " Prints tty number of the current vt terminal."
224     mecho
225     mecho "set system.vt [tty]"
226     mecho " Change current vt terminal to given tty."
227     mecho " Valid tty numbers are 1-9."
228     }
229    
230     set_system_vt()
231     {
232     local tty="$1"
233     [[ -z ${tty} ]] && help_system_vt && return 1
234     case "${tty}" in
235     [1-9])
236     chvt "${tty}"
237     mecho "current vt changed to ${tty}."
238     ;;
239     *) help_system_vt && return 1 ;;
240     esac
241     }
242    
243     get_system_vt()
244     {
245     local tty
246     tty="$(fgconsole)"
247 niro 1648 rvecho "${tty}"
248 niro 1262 }
249 niro 1329
250     get_system_autologon()
251     {
252     local var
253     var=$(grep auto_login /etc/slim.conf | sed 's:auto_login.*\([yn].*\):\1:')
254     case "${var}" in
255 niro 1648 yes) mecho "autologon currently enabled"; rvecho "1" ;;
256     no) mecho "autologon currently disabled"; rvecho "0" ;;
257 niro 1329 *) eecho "unkown state" ;;
258     esac
259     }
260    
261     set_system_autologon()
262     {
263 niro 1345 local action="$1"
264 niro 1329 [[ -z ${action} ]] && help_system_autologon && return 1
265    
266     ## splash X11 tty too?
267    
268     case "${action}" in
269     enable)
270 niro 1345 sed -i 's:^\(auto_login\).*:\1\tyes:' /etc/slim.conf
271 niro 1329 mecho "autologon enabled"
272     ;;
273     disable)
274 niro 1345 sed -i 's:^\(auto_login\).*:\1\tno:' /etc/slim.conf
275 niro 1329 mecho "autologon disabled"
276     ;;
277     *) help_system_autologon && return 1 ;;
278     esac
279     }