Annotation of /mcore-src/trunk/mcore-tools/src/modules/basic-system/system.client.class.in
Parent Directory | Revision Log
Revision 2269 -
(hide annotations)
(download)
Tue Jan 14 10:34:57 2014 UTC (10 years, 8 months ago) by niro
File size: 4119 byte(s)
Tue Jan 14 10:34:57 2014 UTC (10 years, 8 months ago) by niro
File size: 4119 byte(s)
-use global argv arrays GLOBAL_ARGV and CLASS_ARGV to fix whitespace issues with the read cmd. escaping works with this now. every class must use the CLASS_ARGV array for arguments
1 | niro | 1248 | # $Id$ |
2 | |||
3 | provide basic-system | ||
4 | niro | 2079 | require basic-init |
5 | niro | 1248 | |
6 | help_system_reboot() | ||
7 | { | ||
8 | mecho "set system.reboot" | ||
9 | niro | 1262 | mecho " Reboots the system." |
10 | niro | 1248 | } |
11 | |||
12 | # set_system_reboot | ||
13 | set_system_reboot() | ||
14 | { | ||
15 | reboot | ||
16 | } | ||
17 | |||
18 | help_system_shutdown() | ||
19 | { | ||
20 | mecho "set system.shutdown" | ||
21 | niro | 1262 | mecho " Shuts the system down." |
22 | niro | 1248 | } |
23 | |||
24 | # set_system_shutdown | ||
25 | set_system_shutdown() | ||
26 | { | ||
27 | niro | 2057 | poweroff |
28 | niro | 1248 | } |
29 | |||
30 | help_system_console() | ||
31 | { | ||
32 | niro | 1262 | mecho "set system.console [user]" |
33 | mecho " Opens a console with user or root privileges." | ||
34 | mecho " Known users:" | ||
35 | niro | 1336 | mecho " ${MCORE_UNPRIV_USER} - mcore standard user only with user privileges" |
36 | niro | 1262 | mecho " root - mcore root user with full system privileges" |
37 | niro | 1248 | } |
38 | |||
39 | niro | 1329 | help_system_autologon() |
40 | { | ||
41 | mecho "get system.autologon" | ||
42 | mecho " Shows the state of autlogon" | ||
43 | mecho | ||
44 | mecho "set system.autologon [action]" | ||
45 | mecho " Enables or disables X11 autologins of the mcore user." | ||
46 | mecho " Available actions:" | ||
47 | mecho " enable - enables autologon" | ||
48 | mecho " disable - disables autologon" | ||
49 | } | ||
50 | |||
51 | niro | 1248 | set_system_console() |
52 | { | ||
53 | niro | 2269 | local user="${CLASS_ARGV[0]}" |
54 | niro | 1262 | [[ -z ${user} ]] && help_system_console && return 1 |
55 | |||
56 | niro | 2087 | if [[ -n ${MROOT} ]] && [[ ${MROOT} != / ]] |
57 | then | ||
58 | eecho "command not available while \$MROOT is set." | ||
59 | return 1 | ||
60 | fi | ||
61 | |||
62 | niro | 1262 | case "${user}" in |
63 | niro | 1336 | ${MCORE_UNPRIV_USER}) x11runas "rxvt &" ;; |
64 | niro | 2201 | root) x11runas "rxvt -T 'Login as root' -e /bin/bash -c 'echo \"Login as root\";exec /bin/login root' &" ;; |
65 | *) help_system_console && return 1 ;; | ||
66 | niro | 1262 | esac |
67 | niro | 1248 | } |
68 | |||
69 | niro | 1262 | help_system_service() |
70 | niro | 1248 | { |
71 | niro | 2075 | mecho "get system.service [command] [service]" |
72 | mecho " Status information of system services." | ||
73 | mecho " Commands:" | ||
74 | mecho " status - prints status of given service" | ||
75 | mecho " enabled - check whether a service was enabled" | ||
76 | mecho " runlevel - print current system runlevel" | ||
77 | mecho | ||
78 | niro | 1262 | mecho "set system.service [command] [service] [opts]" |
79 | mecho " Controls system services." | ||
80 | mecho " Commands:" | ||
81 | niro | 2075 | mecho " start - starts given service" |
82 | mecho " stop - stops given service" | ||
83 | mecho " restart - restart given service" | ||
84 | mecho " reload - reloads given service if possible" | ||
85 | niro | 2090 | mecho " enable - adds a service to default runlevels" |
86 | mecho " disable - deletes a service from all runlevels" | ||
87 | niro | 1248 | } |
88 | |||
89 | niro | 2079 | help_system_passwd() |
90 | niro | 1248 | { |
91 | niro | 2079 | mecho "set system.passwd [user] [password]" |
92 | mecho " Sets a system password for given user." | ||
93 | mecho " Allowed users: ${MCORE_UNPRIV_USER}, root" | ||
94 | mecho " If password is empty, the current password will be deleted." | ||
95 | niro | 1248 | } |
96 | niro | 1262 | |
97 | set_system_passwd() | ||
98 | { | ||
99 | niro | 2269 | local user="${CLASS_ARGV[0]}" |
100 | local pass="${CLASS_ARGV[1]}" | ||
101 | niro | 1262 | |
102 | [[ -z ${user} ]] && help_system_passwd && return 1 | ||
103 | [[ -z ${pass} ]] && mecho "deleting password!" | ||
104 | |||
105 | niro | 2087 | local chrooted |
106 | if [[ -n ${MROOT} ]] && [[ ${MROOT} != / ]] | ||
107 | then | ||
108 | chrooted="system_chroot" | ||
109 | fi | ||
110 | |||
111 | niro | 1262 | case "${user}" in |
112 | niro | 2087 | root|${MCORE_UNPRIV_USER}) (echo "${pass}"; sleep 0.1; echo "${pass}") | ${chrooted} passwd "${user}" ;; |
113 | niro | 1262 | *) help_system_passwd && return 1 ;; |
114 | esac | ||
115 | } | ||
116 | |||
117 | help_system_vt() | ||
118 | { | ||
119 | mecho "get system.vt" | ||
120 | mecho " Prints tty number of the current vt terminal." | ||
121 | mecho | ||
122 | mecho "set system.vt [tty]" | ||
123 | mecho " Change current vt terminal to given tty." | ||
124 | mecho " Valid tty numbers are 1-9." | ||
125 | } | ||
126 | |||
127 | set_system_vt() | ||
128 | { | ||
129 | niro | 2269 | local tty="${CLASS_ARGV[0]}" |
130 | niro | 1262 | [[ -z ${tty} ]] && help_system_vt && return 1 |
131 | case "${tty}" in | ||
132 | [1-9]) | ||
133 | chvt "${tty}" | ||
134 | mecho "current vt changed to ${tty}." | ||
135 | ;; | ||
136 | *) help_system_vt && return 1 ;; | ||
137 | esac | ||
138 | } | ||
139 | |||
140 | get_system_vt() | ||
141 | { | ||
142 | local tty | ||
143 | tty="$(fgconsole)" | ||
144 | niro | 1648 | rvecho "${tty}" |
145 | niro | 1262 | } |
146 | niro | 1329 | |
147 | get_system_autologon() | ||
148 | { | ||
149 | local var | ||
150 | niro | 2200 | var=$(grep auto_login ${MROOT}@@SYSCONFDIR@@/slim.conf | sed 's:auto_login.*\([yn].*\):\1:') |
151 | niro | 1329 | case "${var}" in |
152 | niro | 1648 | yes) mecho "autologon currently enabled"; rvecho "1" ;; |
153 | no) mecho "autologon currently disabled"; rvecho "0" ;; | ||
154 | niro | 2243 | *) eecho "unknown state" ;; |
155 | niro | 1329 | esac |
156 | } | ||
157 | |||
158 | set_system_autologon() | ||
159 | { | ||
160 | niro | 2269 | local action="${CLASS_ARGV[0]}" |
161 | niro | 1329 | [[ -z ${action} ]] && help_system_autologon && return 1 |
162 | |||
163 | ## splash X11 tty too? | ||
164 | |||
165 | case "${action}" in | ||
166 | enable) | ||
167 | niro | 2200 | sed -i 's:^\(auto_login\).*:\1\tyes:' ${MROOT}@@SYSCONFDIR@@/slim.conf |
168 | niro | 1329 | mecho "autologon enabled" |
169 | ;; | ||
170 | disable) | ||
171 | niro | 2200 | sed -i 's:^\(auto_login\).*:\1\tno:' ${MROOT}@@SYSCONFDIR@@/slim.conf |
172 | niro | 1329 | mecho "autologon disabled" |
173 | ;; | ||
174 | *) help_system_autologon && return 1 ;; | ||
175 | esac | ||
176 | } |