Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2075 - (show annotations) (download)
Fri May 10 10:45:18 2013 UTC (10 years, 11 months ago) by niro
File size: 6511 byte(s)
-support get_ functions
1 # $Id$
2
3 provide basic-system
4
5 help_system_reboot()
6 {
7 mecho "set system.reboot"
8 mecho " Reboots the system."
9 }
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 mecho " Shuts the system down."
21 }
22
23 # set_system_shutdown
24 set_system_shutdown()
25 {
26 poweroff
27 }
28
29 help_system_console()
30 {
31 mecho "set system.console [user]"
32 mecho " Opens a console with user or root privileges."
33 mecho " Known users:"
34 mecho " ${MCORE_UNPRIV_USER} - mcore standard user only with user privileges"
35 mecho " root - mcore root user with full system privileges"
36 }
37
38 help_system_passwd()
39 {
40 mecho "set system.passwd [user] [password]"
41 mecho " Sets a system password for given user."
42 mecho " Allowed users: ${MCORE_UNPRIV_USER}, root"
43 mecho " If password is empty, the current password will be deleted."
44 }
45
46 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 set_system_console()
59 {
60 local user="$1"
61 [[ -z ${user} ]] && help_system_console && return 1
62
63 case "${user}" in
64 ${MCORE_UNPRIV_USER}) x11runas "rxvt &" ;;
65 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 }
69
70 help_system_service()
71 {
72 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 mecho "set system.service [command] [service] [opts]"
80 mecho " Controls system services."
81 mecho " Commands:"
82 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 }
89
90 helper_set_system_service_sysvinit()
91 {
92 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 if [[ ! -x ${MROOT}/etc/rc.d/init.d/${service} ]]
100 then
101 eecho "Service '${service}' unkown!"
102 return 1
103 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 }
115
116 helper_set_system_service_systemd()
117 {
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 helper_set_system_service_systemd $*
147 else
148 helper_set_system_service_sysvinit $*
149 fi
150 }
151
152 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 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 root|${MCORE_UNPRIV_USER}) (echo "${pass}"; sleep 0.1; echo "${pass}") | passwd "${user}" ;;
216 *) 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 rvecho "${tty}"
248 }
249
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 yes) mecho "autologon currently enabled"; rvecho "1" ;;
256 no) mecho "autologon currently disabled"; rvecho "0" ;;
257 *) eecho "unkown state" ;;
258 esac
259 }
260
261 set_system_autologon()
262 {
263 local action="$1"
264 [[ -z ${action} ]] && help_system_autologon && return 1
265
266 ## splash X11 tty too?
267
268 case "${action}" in
269 enable)
270 sed -i 's:^\(auto_login\).*:\1\tyes:' /etc/slim.conf
271 mecho "autologon enabled"
272 ;;
273 disable)
274 sed -i 's:^\(auto_login\).*:\1\tno:' /etc/slim.conf
275 mecho "autologon disabled"
276 ;;
277 *) help_system_autologon && return 1 ;;
278 esac
279 }