Annotation of /mcore-src/trunk/mcore-tools/daemon/client/include/system.client.class
Parent Directory | 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)
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 | } |