tazpanel view installer.cgi @ rev 273
Changed wifi start to restart networking)
author | Christian Mesh meshca@clarkson.edu |
---|---|
date | Mon Mar 12 15:28:10 2012 +0000 (2012-03-12) |
parents | 20787c1bcc60 |
children | 0f7b1e7068c5 |
line source
1 #!/bin/sh
2 #
3 # Main CGI interface for Tazinst, the SliTaz installer.
4 #
5 # Copyright (C) 2012 SliTaz GNU/Linux - BSD License
6 #
7 # Authors : Dominique Corbex <domcox@slitaz.org>
8 #
10 VERSION=0.28
12 # Common functions from libtazpanel
13 . lib/libtazpanel
14 header
15 get_config
17 # Include gettext helper script.
18 . /usr/bin/gettext.sh
20 # Export package name for gettext.
21 TEXTDOMAIN='installer'
22 export TEXTDOMAIN
24 TITLE="- Installer"
26 # Tazinst required version
27 TAZINST_REQUIRED_VERSION="3.3"
29 # Tazinst setup file
30 INSTFILE=/var/lib/tazinst.conf
33 write_setup()
34 {
35 if [ -e "$INSTFILE" ]; then
36 # Install type
37 INST_TYPE=$(GET INST_TYPE)
38 # Source File
39 case "$INST_TYPE" in
40 usb)
41 SRC_FILE=$(GET SRC_USB) ;;
42 iso)
43 SRC_FILE=$(GET SRC_ISO) ;;
44 web)
45 SRC_FILE=$(GET SRC_WEB) ;;
46 esac
47 SRC_FILE=$(echo "$SRC_FILE" | sed 's/\//\\\//'g)
48 [ -n $(GET URL) ] && SRC_WEB=$(GET URL)
49 # Main Partition
50 TGT_PARTITION=$(echo "$(GET TGT_PARTITION)" | sed 's/\//\\\//'g)
51 [ -n "$(GET MAIN_FMT)" ] && TGT_FS=$(GET MAIN_FS) || TGT_FS=""
52 # Home Partition
53 if [ -n "$(GET HOME_SELECT)" ] ; then
54 TGT_HOME=$(echo "$(GET TGT_HOME)" | sed 's/\//\\\//'g)
55 [ -n "$(GET HOME_FS)" ] && TGT_HOME_FS=$(GET HOME_FS)
56 else
57 TGT_HOME=""
58 TGT_HOME_FS=""
59 fi
60 # Hostname
61 TGT_HOSTNAME=$(GET TGT_HOSTNAME)
62 # Root pwd
63 TGT_ROOT_PWD=$(GET TGT_ROOT_PWD)
64 # User Login
65 TGT_USER=$(GET TGT_USER)
66 # User Pwd
67 TGT_USER_PWD=$(GET TGT_USER_PWD)
68 # Grub
69 TGT_GRUB=$(GET TGT_GRUB)
70 [ "$TGT_GRUB" == "yes" ] || TGT_GRUB=no
71 # Win Dual-Boot
72 TGT_WINBOOT=$(GET TGT_WINBOOT)
74 # Save changes to INSTFILE
75 sed -i s/"^INST_TYPE=.*"/"INST_TYPE=\"$INST_TYPE\"/" $INSTFILE
76 sed -i s/"^SRC_FILE=.*"/"SRC_FILE=\"$SRC_FILE\"/" $INSTFILE
77 sed -i s/"^TGT_PARTITION=.*"/"TGT_PARTITION=\"$TGT_PARTITION\"/" $INSTFILE
78 sed -i s/"^TGT_FS=.*"/"TGT_FS=\"$TGT_FS\"/" $INSTFILE
79 sed -i s/"^TGT_HOME=.*"/"TGT_HOME=\"$TGT_HOME\"/" $INSTFILE
80 sed -i s/"^TGT_HOME_FS=.*"/"TGT_HOME_FS=\"$TGT_HOME_FS\"/" $INSTFILE
81 sed -i s/"^TGT_HOSTNAME=.*"/"TGT_HOSTNAME=\"$TGT_HOSTNAME\"/" $INSTFILE
82 sed -i s/"^TGT_ROOT_PWD=.*"/"TGT_ROOT_PWD=\"$TGT_ROOT_PWD\"/" $INSTFILE
83 sed -i s/"^TGT_USER=.*"/"TGT_USER=\"$TGT_USER\"/" $INSTFILE
84 sed -i s/"^TGT_USER_PWD=.*"/"TGT_USER_PWD=\"$TGT_USER_PWD\"/" $INSTFILE
85 sed -i s/"^TGT_GRUB=.*"/"TGT_GRUB=\"$TGT_GRUB\"/" $INSTFILE
86 sed -i s/"^TGT_WINBOOT=.*"/"TGT_WINBOOT=\"$TGT_WINBOOT\"/" $INSTFILE
87 fi
88 }
90 read_setup()
91 {
92 # various checks on setup file
93 if [ -e "$INSTFILE" ]; then
94 # validity check + reformat output
95 tazinst check $INSTFILE | awk '
96 BEGIN{
97 fmt1="<span class=\"msg-nok\">"
98 fmt2="<br /></span>"
99 OFS=""
100 }
101 {
102 # make html compliant
103 str=$0
104 gsub(/\[1m/,"",str)
105 gsub(/\[0m/,"",str)
106 gsub(/\s/,"\\ ",str)
107 gsub(/</,"\\<",str)
108 gsub(/>/,"\\>",str)
109 a[i++]=str
110 } END {
111 {print fmt1,a[i-1],fmt2}
112 {for (j=0; j<i-1;) print fmt1,substr(a[j++],3),fmt2}
113 }'
114 else
115 # no setup file found: creating
116 gettext "Creating setup file $INSTFILE."
117 tazinst new $INSTFILE
118 if [ ! -e "$INSTFILE" ]; then
119 cat <<EOT
120 <span class="msg-nok">$(gettext "Setup File Error")<br />
121 $(gettext "The setup file <strong>$INSTFILE</strong> doesn't exist.")</span><br />
122 EOT
123 else
124 if [ ! -r $INSTFILE ]; then
125 cat <<EOT
126 <span class="msg-nok">$(gettext "Setup File Error")<br />
127 $(gettext "The setup file <strong>$INSTFILE</strong> is not readable.
128 Check permissions and ownership.")</span><br />
129 EOT
130 fi
131 fi
132 fi
133 # read setup file
134 . $INSTFILE
135 }
137 select_action()
138 {
139 cat <<EOT
140 <div id="wrapper">
141 <h2>$(gettext "SliTaz Installer")</h2>
142 <p>$(gettext "The SliTaz Installer installs or upgrades SliTaz to a hard disk
143 drive from a device like a Live-CD or LiveUSB key, from a SliTaz ISO file, or
144 from the web by downloading an ISO file.")<p>
145 </div>
146 EOT
147 }
149 select_gparted()
150 {
151 cat <<EOT
152 <div class="box">
153 <h4>$(gettext "About")</h4>
154 <p>
155 $(gettext "Before installation, you may need to resize partitions
156 on your hard disk drive in order to make space for SliTaz GNU/Linux.
157 You can graphically manage your partitions with Gparted")
158 </p>
159 </div>
160 <a class="button" href="$SCRIPT_NAME?page=gparted">$(gettext "Execute Gparted")</a>
161 EOT
162 }
164 select_install()
165 {
166 cat <<EOT
167 <div class="box">
168 <h4>$(gettext "Install")</h4>
169 <p>
170 $(gettext "Install SliTaz on a partition of your hard disk drive. If
171 you decide to format your HDD, all data will be lost. If you do not
172 format, all data except for any existing /home directory will be removed,
173 the home directory will be kept as is.")
174 </p>
175 </div>
176 <p>
177 <a class="button" href="$SCRIPT_NAME?page=install">$(gettext "Install SliTaz")</a>
178 EOT
179 }
181 select_upgrade()
182 {
183 cat <<EOT
184 <div class="box">
185 <h4>$(gettext "Upgrade")</h4>
186 <p>
187 $(gettext "Upgrade an already installed SliTaz system on your hard disk
188 drive. Your /home /etc /var/www directories will be kept, all other directories
189 will be removed. Any additional packages added to your old Slitaz system
190 will be updated as long you have an active internet connection.")
191 </p>
192 </div>
193 <p>
194 <a class="button" href="$SCRIPT_NAME?page=upgrade">$(gettext "Upgrade SliTaz")</a>
195 </p>
196 EOT
197 }
199 display_action()
200 {
201 case $1 in
202 install)
203 cat << EOT
204 <div id="wrapper">
205 <h3>$(gettext "Install SliTaz")</h3>
206 <p>$(gettext "You're going to install SliTaz on a partition of your hard disk drive. If
207 you decide to format your HDD, all data will be lost. If you do not
208 format, all data except for any existing /home directory will be removed,
209 the home directory will be kept as is.")<p>
210 </div>
211 <input type="hidden" name="INST_ACTION" value="$1">
212 EOT
213 ;;
214 upgrade)
215 cat << EOT
216 <div id="wrapper">
217 <h2>$(gettext "Upgrade SliTaz")</h2>
218 <p>$(gettext "You're going to upgrade an already installed SliTaz system on your hard disk
219 drive. Your /home /etc /var/www directories will be kept, all other directories
220 will be removed. Any additional packages added to your old Slitaz system
221 will be updated as long you have an active internet connection.")<p>
222 </div>
223 <input type="hidden" name="INST_ACTION" value="$1">
224 EOT
225 ;;
226 esac
227 }
229 select_source()
230 {
231 cat <<EOT
232 <a name="source"></a>
233 <h4>$(gettext "Source")</h4>
234 <div class="box">
235 <input type="radio" name="INST_TYPE" value="cdrom" $([ "$INST_TYPE" == "cdrom" ] && echo "checked") id="cdrom" />
236 <label for="cdrom">$(gettext "LiveCD")</td></label>
237 <br />
238 <input type="radio" name="INST_TYPE" value="usb" $([ "$INST_TYPE" == "usb" ] && echo "checked") id="usb" />
239 <label for="usb">$(gettext "LiveUSB"):
240 <select name="SRC_USB">
241 EOT
242 # List disks if plugged USB device
243 usb=0
244 if [ -d /proc/scsi/usb-storage ]; then
245 for DEV in /sys/block/sd* ; do
246 if readlink $DEV | grep -q usb; then
247 DEV=$(basename $DEV)
248 if [ -d /sys/block/${DEV}/${DEV}1 ]; then
249 for i in $(fdisk -l /dev/$DEV | awk '/^\/dev/ {printf "%s ", $1}') ; do
250 echo "<option value='$i' $([ "$i" == "$SRC_FILE" ] && echo "selected") >$i</option>"
251 usb=$usb+1
252 done
253 fi
254 fi
255 done
256 fi
257 if [ $usb -lt 1 ]; then
258 echo "<option value="">$(gettext "Not found")</option>"
259 fi
260 cat << EOT
261 </select>
262 </label>
263 <br />
264 <input type="radio" name="INST_TYPE" value="iso" $([ "$INST_TYPE" == "iso" ] && echo "checked") id="iso" />
265 <label for="iso">$(gettext "ISO file"):</label>
266 <input type="url" size="50" name="SRC_ISO" $([ "$INST_TYPE" == "iso" ] && echo -e "value=\"$SRC_FILE\"") placeholder="$(gettext "Full path to the ISO image file")" />
267 <br />
268 <input type="radio" name="INST_TYPE" value="web" $([ "$INST_TYPE" == "web" ] && echo "checked") id="web" />
269 <label for="web">$(gettext "Web"):
270 <a class="button" onclick="document.forms['ConfigForm'].url.value = '$(tazinst showurl stable)'; return true;">$(gettext "Stable")</a>
271 <a class="button" onclick="document.forms['ConfigForm'].url.value = '$(tazinst showurl cooking)'; return true;">$(gettext "Cooking")</a>
272 $(gettext "URL:")
273 <input id="url" type="url" size="55" name="SRC_WEB" value="$get_SRC_WEB" placeholder="$(gettext "Full url to an ISO image file")" />
274 </label>
275 </div>
276 EOT
277 }
279 select_partition()
280 {
281 cat <<EOT
282 <a name="partition"></a>
283 <h4></span>$(gettext "Main Partition")</h4>
284 <div class="box">
285 $(gettext "Partition to use:")
286 <select name="TGT_PARTITION">
287 EOT
288 # List partitions
289 if fdisk -l | grep -q ^/dev/ ; then
290 echo "<option value="">$(gettext "None")</option>"
291 for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do
292 echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>"
293 done
294 else
295 echo "<option value="">$(gettext "Not found")</option>"
296 fi
297 cat << EOT
298 </select>
299 <br />
300 <input type="checkbox" name="MAIN_FMT" value="yes" $([ -n "$TGT_FS" ] && echo "checked") id="mainfs" />
301 <label for="mainfs">$(gettext "Format partition as"):</label>
302 <select name="MAIN_FS">
303 EOT
304 scan_mkfs
305 for i in $FS
306 do
307 echo "<option value='$i' $([ "$i" == "$TGT_FS" ] && echo "selected")>$i</option>"
308 done
309 cat <<EOT
310 </select>
311 </div>
312 EOT
313 }
315 select_old_slitaz()
316 {
317 cat <<EOT
318 <a name="partition"></a>
319 <h4></span>$(gettext "Existing SliTaz Partition")</h4>
320 <div class="box">
321 $(gettext "Partition in use:")
322 <select name="TGT_PARTITION">
323 EOT
324 # List partitions
325 if fdisk -l | grep -q ^/dev/ ; then
326 echo "<option value="">$(gettext "None")</option>"
327 for i in `blkid | cut -d ":" -f 1`; do
328 echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>"
329 done
330 else
331 echo "<option value="">$(gettext "Not found")</option>"
332 fi
333 cat <<EOT
334 </select>
335 </div>
336 EOT
337 }
339 select_home()
340 {
341 cat <<EOT
342 <a name="home"></a>
343 <h4>$(gettext "Home partition")</h4>
344 <input type="checkbox" name="HOME_SELECT" value="yes" $([ -n "$TGT_HOME" ] && echo "checked") id="homepart" />
345 <label for="homepart">$(gettext "Use a separate partition for /home:")</label>
346 <select name="TGT_HOME">
347 EOT
348 # List disk if plugged USB device
349 if fdisk -l | grep -q ^/dev/ ; then
350 echo "<option value="">$(gettext "None")</option>"
351 for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do
352 echo "<option value='$i' $([ "$i" == "$TGT_HOME" ] && echo "selected")>$i</option>"
353 done
354 else
355 echo "<option value="">$(gettext "Not found")</option>"
356 fi
357 cat <<EOT
358 </select>
360 <input type="checkbox" name="HOME_FMT" value="yes" $([ -n "$TGT_HOME_FS" ] && echo "checked") id="homefs" />
361 <label for="homefs">$(gettext "Format partition as:")</label>
362 <select name="HOME_FS">"
363 EOT
364 for i in $FS
365 do
366 echo "<option value='$i' $([ "$i" == "$TGT_HOME_FS" ] && echo "selected")>$i</option>"
367 done
368 echo "</select>"
369 }
371 select_hostname()
372 {
373 cat << EOT
374 <a name="hostname"></a>
375 <h4>$(gettext "Host")</h4>
376 $(gettext "Hostname:")
377 <input type="text" id="hostname" name="TGT_HOSTNAME" value="$TGT_HOSTNAME" placeholder="$(gettext "Name of your system")" onkeyup="checkLogin('hostname','msgHostname'); return false;" />
378 <span id="msgHostname"></span>
379 EOT
380 }
382 select_root()
383 {
384 cat << EOT
385 <a name="root"></a>
386 <h4>$(gettext "Root")</h4>
387 $(gettext "Root passwd:")
388 <input type="password" id="rootPwd1" name="TGT_ROOT_PWD" value="$TGT_ROOT_PWD" placeholder="$(gettext "Password of root")" onkeyup="checkPwd('rootPwd1','rootPwd2','msgRootPwd'); return false;" />
389 $(gettext "Confirm password:")
390 <input type="password" id="rootPwd2" value="$TGT_ROOT_PWD" placeholder="$(gettext "Password of root")" onkeyup="checkPwd('rootPwd1','rootPwd2','msgRootPwd'); return false;" />
391 <span id="msgRootPwd"></span>
392 EOT
393 }
395 select_user()
396 {
397 cat << EOT
398 <a name="user"></a>
399 <h4>$(gettext "User")</h4>
400 $(gettext "User login:")
401 <input type="text" id="user" name="TGT_USER" value="$TGT_USER" placeholder="$(gettext "Name of the first user")" onkeyup="checkLogin('user','msgUser'); return false;" />
402 <span id="msgUser"></span>
403 <br /><br />
404 $(gettext "User passwd:")
405 <input type="password" id="userPwd1" name="TGT_USER_PWD" value="$TGT_USER_PWD" placeholder="$(gettext "Password of the first user")" onkeyup="checkPwd('userPwd1','userPwd2','msgUserPwd'); return false;" />
406 $(gettext "Confirm password:")
407 <input class="confirm" type="password" id="userPwd2" value="$TGT_USER_PWD" placeholder="$(gettext "Password of the first user")" onkeyup="checkPwd('userPwd1','userPwd2','msgUserPwd'); return false;" />
408 <span id="msgUserPwd"></span>
409 EOT
410 }
412 select_grub()
413 {
414 cat << EOT
415 <a name="grub"></a>
416 <h4>$(gettext "Grub")</h4>
417 <input type="checkbox" name="TGT_GRUB" value="yes" $([ "$TGT_GRUB" == "yes" ] && echo "checked") id="grub" />
418 <label for="grub">$(gettext "Install Grub bootloader")<br /></label>
419 <input type="checkbox" name="TGT_WINBOOT" value="auto" $([ -n "$TGT_WINBOOT" ] && echo "checked") id="dualboot" />
420 <label for="dualboot">$(gettext "Enable Windows Dual-Boot")</label>
421 EOT
422 }
424 validate()
425 {
426 case $1 in
427 install)
428 cat << EOT
429 <script src="lib/user.js"></script>
430 <script type="text/javascript">
431 function SubmitForm() {
432 // hostname
433 if (false == checkLogin('hostname','msgHostname')) {
434 alert("Hostname error");
435 // root pwd
436 } else if (false == checkPwd('rootPwd1','rootPwd2','msgRootPwd')) {
437 alert("Root password error");
438 // user
439 } else if (false == checkLogin('user','msgUser')) {
440 alert("User login error");
441 // user pwd
442 } else if (false == checkPwd('userPwd1','userPwd2','msgUserPwd')) {
443 alert("User password error");
444 } else {
445 var r=confirm("$(gettext "Do you really want to continue?")");
446 if (r==true)
447 {
448 document.ConfigForm.submit();
449 }
450 }
451 }
452 </script>
453 EOT
454 ;;
455 *)
456 cat << EOT
457 <script>
458 function SubmitForm() {
459 var r=confirm("$(gettext "Do you really want to continue?")");
460 if (r==true)
461 {
462 document.ConfigForm.submit();
463 }
464 }
465 </script>
466 EOT
467 ;;
468 esac
469 }
471 moveto_page()
472 {
473 case $1 in
474 *)
475 page=home
476 title1=$(gettext "Back to Installer Start Page") ;;
477 esac
478 case $2 in
479 write|run)
480 title2=$(gettext "Proceed to SliTaz installation") ;;
481 reboot)
482 title2=$(gettext "Installation complete. You can now restart (reboot)") ;;
483 failed)
484 title2=$(gettext "Installation failed. See log") ;;
485 *)
486 page=home
487 title2=$(gettext "Back to Installer Start Page") ;;
488 esac
489 cat <<EOT
490 <hr />
491 <input type="hidden" name="page" value="$2" />
492 <a class="button" value="$1" href="$SCRIPT_NAME?page=$1" >$title1</a>
493 <a class="button" value="$2" onclick="SubmitForm()">$title2</a>
494 EOT
495 }
497 page_redirection()
498 {
499 cat <<EOT
500 <html>
501 <head>
502 <title>$(gettext "A web page that points a browser to a different page after 2 seconds")</title>
503 <meta http-equiv="refresh" content="0; URL=$SCRIPT_NAME?page=$1">
504 <meta name="keywords" content="automatic redirection">
505 </head>
506 <body>
507 $(gettext "If your browser doesn't automatically redirect within a few seconds,
508 you may want to go there manually")
509 <a href="$SCRIPT_NAME?page=$1">$1</a>
510 </body>
511 </html>
512 EOT
513 }
515 check_ressources()
516 {
517 local code
518 code=0
519 # Check tazinst
520 if ! tazinst usage | grep -q Usage: ; then
521 cat <<EOT
522 <h3>$(gettext "Tazinst Error")</h3>
523 <p><strong>tazinst</strong>, $(gettext "the lightweight SliTaz HDD installer
524 is missing. Any installation can not be done without tazinst.")</p>
525 <p>$(gettext "Check tazinst' permissions, or reinstall the slitaz-tools package:")</p>
526 <code># tazpkg get-install slitaz-tools --forced</code>
527 EOT
528 code=1
529 else
530 # Check tazinst required version
531 v=$(tazinst version | tr -d '[:alpha:]')
532 r=$TAZINST_REQUIRED_VERSION
533 if ! (echo "$v" | awk -v r=$r '{v=$v+0}{ if (v < r) exit 1}') ; then
534 cat <<EOT
535 <h3>$(gettext "Tazinst Error")</h3>
536 <p><strong>tazinst</strong> ($v) $(gettext "is not at the required version ($r),
537 use tazinst in a xterm or reinstall the slitaz-tools package:")</p>
538 <code># tazpkg get-install slitaz-tools --forced</code>
539 EOT
540 code=1
541 fi
542 fi
543 return $code
544 }
546 run_tazinst()
547 {
548 echo "<h4>$(gettext "Proceeding: ()")</h4>"
549 gettext "Please wait until processing is complete"
550 table_start
551 tazinst $(GET INST_ACTION) $INSTFILE | \
552 awk '{print "<tr><td><tt>" $0 "</tt></td></tr>"}'
553 table_end
554 gettext "Completed."
555 return $(grep -c "cancelled on error" $INSTFILE)
556 }
558 tazinst_log()
559 {
560 echo "<pre>"
561 tazinst log
562 echo "</pre>"
563 }
565 scan_mkfs()
566 {
567 for path in /bin /sbin /usr/bin /usr/sbin
568 do
569 [ -e $path/mkfs.btrfs ] && FS=btrfs
570 [ -e $path/mkfs.cramfs ] && FS="$FS cramfs"
571 [ -e $path/mkfs.ext2 ] && FS="$FS ext2"
572 [ -e $path/mkfs.ext3 ] && FS="$FS ext3"
573 [ -e $path/mkfs.ext4 ] && FS="$FS ext4"
574 [ -e $path/mkfs.jfs ] && FS="$FS jfs"
575 [ -e $path/mkfs.minix ] && FS="$FS minix"
576 [ -e $path/mkfs.reiserfs ] && FS="$FS reiserfs"
577 [ -e $path/mkfs.xfs ] && FS="$FS xfs"
578 done
579 }
581 form_start()
582 {
583 cat <<EOT
584 <form name="ConfigForm" method="get" action="$SCRIPT_NAME">
585 EOT
586 }
588 form_end()
589 {
590 echo "</form>"
591 }
593 #
594 # Main
595 #
597 case "$(GET page)" in
598 gparted)
599 su - -c "exec env DISPLAY=':0.0' XAUTHORITY='/var/run/slim.auth' /usr/sbin/gparted"
600 xhtml_header
601 page_redirection home
602 ;;
603 install)
604 xhtml_header
605 form_start
606 display_action install
607 validate install
608 read_setup
609 select_source
610 select_partition
611 select_home
612 select_hostname
613 select_root
614 select_user
615 select_grub
616 moveto_page home write
617 form_end
618 ;;
619 upgrade)
620 xhtml_header
621 form_start
622 display_action upgrade
623 validate upgrade
624 read_setup
625 select_source
626 select_old_slitaz
627 select_grub
628 moveto_page home write
629 form_end
630 ;;
631 write)
632 write_setup
633 xhtml_header
634 if ! (tazinst check $INSTFILE); then
635 page_redirection $(GET INST_ACTION)
636 else
637 read_setup
638 form_start
639 display_action $(GET INST_ACTION)
640 if run_tazinst; then
641 moveto_page home reboot
642 else
643 moveto_page home failed
644 fi
645 form_end
646 fi
647 ;;
648 reboot)
649 reboot ;;
650 home)
651 xhtml_header
652 select_action
653 select_gparted
654 select_install
655 select_upgrade
656 ;;
657 failed)
658 xhtml_header
659 display_log
660 ;;
661 menu_install)
662 xhtml_header
663 if check_ressources; then
664 page_redirection install
665 fi
666 ;;
667 menu_upgrade)
668 xhtml_header
669 if check_ressources; then
670 page_redirection upgrade
671 fi
672 ;;
673 *)
674 xhtml_header
675 if check_ressources; then
676 page_redirection home
677 fi
678 ;;
679 esac
681 xhtml_footer
683 exit 0