Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/modules/basic-system/system.client.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2061 - (hide annotations) (download)
Wed May 8 12:57:23 2013 UTC (11 years ago) by niro
Original Path: mcore-src/trunk/mcore-tools/daemon/client/include/system.client.class
File size: 5092 byte(s)
-support systemd units
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 1262 mecho "set system.service [command] [service] [opts]"
73     mecho " Controls system services."
74     mecho " Commands:"
75 niro 2037 mecho " status - prints status of given service"
76 niro 1262 mecho " start - starts given service"
77     mecho " stop - stops given service"
78     mecho " restart - restart given service"
79     mecho " reload - reloads given service if possible"
80     mecho " add - adds a service to default runlevels"
81     mecho " del - deletes a service from all runlevels"
82 niro 1248 }
83    
84 niro 2061 helper_system_service_sysvinit()
85 niro 1248 {
86 niro 1262 local command="$1"
87     local service="$2"
88     local opts="$3"
89    
90     [[ -z ${command} ]] && help_system_service && return 1
91     [[ -z ${service} ]] && help_system_service && return 1
92    
93 niro 2017 if [[ ! -x ${MROOT}/etc/rc.d/init.d/${service} ]]
94 niro 1262 then
95 niro 1648 eecho "Service '${service}' unkown!"
96 niro 2061 return 1
97 niro 1262 fi
98    
99     case "${command}" in
100     start) /etc/rc.d/init.d/"${service}" start ;;
101     stop) /etc/rc.d/init.d/"${service}" stop ;;
102     restart) /etc/rc.d/init.d/"${service}" restart ;;
103     reload) /etc/rc.d/init.d/"${service}" reload ;;
104 niro 2037 status) /etc/rc.d/init.d/"${service}" status ;;
105 niro 1262 add) rc-config add "${service}" ;;
106     del) rc-config del "${service}" ;;
107     *) help_system_service && return ;;
108     esac
109 niro 1248 }
110 niro 1262
111 niro 2061 helper_system_service_systemd()
112     {
113     local command="$1"
114     local service="$2"
115     local opts="$3"
116    
117     [[ -z ${command} ]] && help_system_service && return 1
118     [[ -z ${service} ]] && help_system_service && return 1
119    
120     if [[ -n $(systemctl status ${service} | grep 'Reason: No such file or directory') ]]
121     then
122     eecho "Service '${service}' unkown!"
123     return 1
124     fi
125    
126     case "${command}" in
127     start) systemctl start "${service}" ;;
128     stop) systemctl stop "${service}" ;;
129     restart) systemctl try-restart "${service}" ;;
130     reload) systemctl reload-or-try-restart "${service}" ;;
131     status) systemctl status "${service}" ;;
132     add) systemctl enable "${service}" ;;
133     del) systemctl disable "${service}" ;;
134     *) help_system_service && return ;;
135     esac
136     }
137    
138     set_system_service()
139     {
140     if [[ -x $(type -P systemctl) ]]
141     then
142     helper_system_service_systemd $*
143     else
144     helper_system_service_sysvinit $*
145     fi
146     }
147    
148 niro 1262 set_system_passwd()
149     {
150     local user="$1"
151     local pass="$2"
152    
153     [[ -z ${user} ]] && help_system_passwd && return 1
154     [[ -z ${pass} ]] && mecho "deleting password!"
155    
156     case "${user}" in
157 niro 1336 root|${MCORE_UNPRIV_USER}) (echo "${pass}"; sleep 0.1; echo "${pass}") | passwd "${user}" ;;
158 niro 1262 *) help_system_passwd && return 1 ;;
159     esac
160     }
161    
162     help_system_vt()
163     {
164     mecho "get system.vt"
165     mecho " Prints tty number of the current vt terminal."
166     mecho
167     mecho "set system.vt [tty]"
168     mecho " Change current vt terminal to given tty."
169     mecho " Valid tty numbers are 1-9."
170     }
171    
172     set_system_vt()
173     {
174     local tty="$1"
175     [[ -z ${tty} ]] && help_system_vt && return 1
176     case "${tty}" in
177     [1-9])
178     chvt "${tty}"
179     mecho "current vt changed to ${tty}."
180     ;;
181     *) help_system_vt && return 1 ;;
182     esac
183     }
184    
185     get_system_vt()
186     {
187     local tty
188     tty="$(fgconsole)"
189 niro 1648 rvecho "${tty}"
190 niro 1262 }
191 niro 1329
192     get_system_autologon()
193     {
194     local var
195     var=$(grep auto_login /etc/slim.conf | sed 's:auto_login.*\([yn].*\):\1:')
196     case "${var}" in
197 niro 1648 yes) mecho "autologon currently enabled"; rvecho "1" ;;
198     no) mecho "autologon currently disabled"; rvecho "0" ;;
199 niro 1329 *) eecho "unkown state" ;;
200     esac
201     }
202    
203     set_system_autologon()
204     {
205 niro 1345 local action="$1"
206 niro 1329 [[ -z ${action} ]] && help_system_autologon && return 1
207    
208     ## splash X11 tty too?
209    
210     case "${action}" in
211     enable)
212 niro 1345 sed -i 's:^\(auto_login\).*:\1\tyes:' /etc/slim.conf
213 niro 1329 mecho "autologon enabled"
214     ;;
215     disable)
216 niro 1345 sed -i 's:^\(auto_login\).*:\1\tno:' /etc/slim.conf
217 niro 1329 mecho "autologon disabled"
218     ;;
219     *) help_system_autologon && return 1 ;;
220     esac
221     }