tazpanel view installer.cgi @ rev 275

Added links to gparted in the installer drop down and if partitions are not found
author Christian Mesh meshca@clarkson.edu
date Mon Mar 12 16:51:20 2012 +0000 (2012-03-12)
parents 64b3c8572756
children 5b379dc437a3
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/,"\\&nbsp;",str)
107 gsub(/</,"\\&lt",str)
108 gsub(/>/,"\\&gt",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 has_partitions=1
282 cat <<EOT
283 <a name="partition"></a>
284 <h4></span>$(gettext "Main Partition")</h4>
285 <div class="box">
286 $(gettext "Partition to use:")
287 <select name="TGT_PARTITION">
288 EOT
289 # List partitions
290 if fdisk -l | grep -q ^/dev/ ; then
291 echo "<option value="">$(gettext "None")</option>"
292 for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do
293 echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>"
294 done
295 else
296 has_partitions=0
297 echo "<option value="">$(gettext "Not found")</option>"
298 fi
299 echo "</select>"
301 if [ has_partitions == 0 ]; then
302 echo "<a class="button" href="$SCRIPT_NAME?page=gparted">$(gettext "Gparted")</a>"
303 fi
304 cat << EOT
305 <br />
306 <input type="checkbox" name="MAIN_FMT" value="yes" $([ -n "$TGT_FS" ] && echo "checked") id="mainfs" />
307 <label for="mainfs">$(gettext "Format partition as"):</label>
308 <select name="MAIN_FS">
309 EOT
310 scan_mkfs
311 for i in $FS
312 do
313 echo "<option value='$i' $([ "$i" == "$TGT_FS" ] && echo "selected")>$i</option>"
314 done
315 cat <<EOT
316 </select>
317 </div>
318 EOT
319 }
321 select_old_slitaz()
322 {
323 cat <<EOT
324 <a name="partition"></a>
325 <h4></span>$(gettext "Existing SliTaz Partition")</h4>
326 <div class="box">
327 $(gettext "Partition in use:")
328 <select name="TGT_PARTITION">
329 EOT
330 # List partitions
331 if fdisk -l | grep -q ^/dev/ ; then
332 echo "<option value="">$(gettext "None")</option>"
333 for i in `blkid | cut -d ":" -f 1`; do
334 echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>"
335 done
336 else
337 echo "<option value="">$(gettext "Not found")</option>"
338 fi
339 cat <<EOT
340 </select>
341 </div>
342 EOT
343 }
345 select_home()
346 {
347 cat <<EOT
348 <a name="home"></a>
349 <h4>$(gettext "Home partition")</h4>
350 <input type="checkbox" name="HOME_SELECT" value="yes" $([ -n "$TGT_HOME" ] && echo "checked") id="homepart" />
351 <label for="homepart">$(gettext "Use a separate partition for /home:")</label>
352 <select name="TGT_HOME">
353 EOT
354 # List disk if plugged USB device
355 if fdisk -l | grep -q ^/dev/ ; then
356 echo "<option value="">$(gettext "None")</option>"
357 for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do
358 echo "<option value='$i' $([ "$i" == "$TGT_HOME" ] && echo "selected")>$i</option>"
359 done
360 else
361 echo "<option value="">$(gettext "Not found")</option>"
362 fi
363 cat <<EOT
364 </select>
366 <input type="checkbox" name="HOME_FMT" value="yes" $([ -n "$TGT_HOME_FS" ] && echo "checked") id="homefs" />
367 <label for="homefs">$(gettext "Format partition as:")</label>
368 <select name="HOME_FS">"
369 EOT
370 for i in $FS
371 do
372 echo "<option value='$i' $([ "$i" == "$TGT_HOME_FS" ] && echo "selected")>$i</option>"
373 done
374 echo "</select>"
375 }
377 select_hostname()
378 {
379 cat << EOT
380 <a name="hostname"></a>
381 <h4>$(gettext "Host")</h4>
382 $(gettext "Hostname:")
383 <input type="text" id="hostname" name="TGT_HOSTNAME" value="$TGT_HOSTNAME" placeholder="$(gettext "Name of your system")" onkeyup="checkLogin('hostname','msgHostname'); return false;" />
384 <span id="msgHostname"></span>
385 EOT
386 }
388 select_root()
389 {
390 cat << EOT
391 <a name="root"></a>
392 <h4>$(gettext "Root")</h4>
393 $(gettext "Root passwd:")
394 <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;" />
395 $(gettext "Confirm password:")
396 <input type="password" id="rootPwd2" value="$TGT_ROOT_PWD" placeholder="$(gettext "Password of root")" onkeyup="checkPwd('rootPwd1','rootPwd2','msgRootPwd'); return false;" />
397 <span id="msgRootPwd"></span>
398 EOT
399 }
401 select_user()
402 {
403 cat << EOT
404 <a name="user"></a>
405 <h4>$(gettext "User")</h4>
406 $(gettext "User login:")
407 <input type="text" id="user" name="TGT_USER" value="$TGT_USER" placeholder="$(gettext "Name of the first user")" onkeyup="checkLogin('user','msgUser'); return false;" />
408 <span id="msgUser"></span>
409 <br /><br />
410 $(gettext "User passwd:")
411 <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;" />
412 $(gettext "Confirm password:")
413 <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;" />
414 <span id="msgUserPwd"></span>
415 EOT
416 }
418 select_grub()
419 {
420 cat << EOT
421 <a name="grub"></a>
422 <h4>$(gettext "Grub")</h4>
423 <input type="checkbox" name="TGT_GRUB" value="yes" $([ "$TGT_GRUB" == "yes" ] && echo "checked") id="grub" />
424 <label for="grub">$(gettext "Install Grub bootloader")<br /></label>
425 <input type="checkbox" name="TGT_WINBOOT" value="auto" $([ -n "$TGT_WINBOOT" ] && echo "checked") id="dualboot" />
426 <label for="dualboot">$(gettext "Enable Windows Dual-Boot")</label>
427 EOT
428 }
430 validate()
431 {
432 case $1 in
433 install)
434 cat << EOT
435 <script src="lib/user.js"></script>
436 <script type="text/javascript">
437 function SubmitForm() {
438 // hostname
439 if (false == checkLogin('hostname','msgHostname')) {
440 alert("Hostname error");
441 // root pwd
442 } else if (false == checkPwd('rootPwd1','rootPwd2','msgRootPwd')) {
443 alert("Root password error");
444 // user
445 } else if (false == checkLogin('user','msgUser')) {
446 alert("User login error");
447 // user pwd
448 } else if (false == checkPwd('userPwd1','userPwd2','msgUserPwd')) {
449 alert("User password error");
450 } else {
451 var r=confirm("$(gettext "Do you really want to continue?")");
452 if (r==true)
453 {
454 document.ConfigForm.submit();
455 }
456 }
457 }
458 </script>
459 EOT
460 ;;
461 *)
462 cat << EOT
463 <script>
464 function SubmitForm() {
465 var r=confirm("$(gettext "Do you really want to continue?")");
466 if (r==true)
467 {
468 document.ConfigForm.submit();
469 }
470 }
471 </script>
472 EOT
473 ;;
474 esac
475 }
477 moveto_page()
478 {
479 case $1 in
480 *)
481 page=home
482 title1=$(gettext "Back to Installer Start Page") ;;
483 esac
484 case $2 in
485 write|run)
486 title2=$(gettext "Proceed to SliTaz installation") ;;
487 reboot)
488 title2=$(gettext "Installation complete. You can now restart (reboot)") ;;
489 failed)
490 title2=$(gettext "Installation failed. See log") ;;
491 *)
492 page=home
493 title2=$(gettext "Back to Installer Start Page") ;;
494 esac
495 cat <<EOT
496 <hr />
497 <input type="hidden" name="page" value="$2" />
498 <a class="button" value="$1" href="$SCRIPT_NAME?page=$1" >$title1</a>
499 <a class="button" value="$2" onclick="SubmitForm()">$title2</a>
500 EOT
501 }
503 page_redirection()
504 {
505 cat <<EOT
506 <html>
507 <head>
508 <title>$(gettext "A web page that points a browser to a different page after 2 seconds")</title>
509 <meta http-equiv="refresh" content="0; URL=$SCRIPT_NAME?page=$1">
510 <meta name="keywords" content="automatic redirection">
511 </head>
512 <body>
513 $(gettext "If your browser doesn't automatically redirect within a few seconds,
514 you may want to go there manually")
515 <a href="$SCRIPT_NAME?page=$1">$1</a>
516 </body>
517 </html>
518 EOT
519 }
521 check_ressources()
522 {
523 local code
524 code=0
525 # Check tazinst
526 if ! tazinst usage | grep -q Usage: ; then
527 cat <<EOT
528 <h3>$(gettext "Tazinst Error")</h3>
529 <p><strong>tazinst</strong>, $(gettext "the lightweight SliTaz HDD installer
530 is missing. Any installation can not be done without tazinst.")</p>
531 <p>$(gettext "Check tazinst' permissions, or reinstall the slitaz-tools package:")</p>
532 <code># tazpkg get-install slitaz-tools --forced</code>
533 EOT
534 code=1
535 else
536 # Check tazinst required version
537 v=$(tazinst version | tr -d '[:alpha:]')
538 r=$TAZINST_REQUIRED_VERSION
539 if ! (echo "$v" | awk -v r=$r '{v=$v+0}{ if (v < r) exit 1}') ; then
540 cat <<EOT
541 <h3>$(gettext "Tazinst Error")</h3>
542 <p><strong>tazinst</strong> ($v) $(gettext "is not at the required version ($r),
543 use tazinst in a xterm or reinstall the slitaz-tools package:")</p>
544 <code># tazpkg get-install slitaz-tools --forced</code>
545 EOT
546 code=1
547 fi
548 fi
549 return $code
550 }
552 run_tazinst()
553 {
554 echo "<h4>$(gettext "Proceeding: ()")</h4>"
555 gettext "Please wait until processing is complete"
556 table_start
557 tazinst $(GET INST_ACTION) $INSTFILE | \
558 awk '{print "<tr><td><tt>" $0 "</tt></td></tr>"}'
559 table_end
560 gettext "Completed."
561 return $(grep -c "cancelled on error" $INSTFILE)
562 }
564 tazinst_log()
565 {
566 echo "<pre>"
567 tazinst log
568 echo "</pre>"
569 }
571 scan_mkfs()
572 {
573 for path in /bin /sbin /usr/bin /usr/sbin
574 do
575 [ -e $path/mkfs.btrfs ] && FS=btrfs
576 [ -e $path/mkfs.cramfs ] && FS="$FS cramfs"
577 [ -e $path/mkfs.ext2 ] && FS="$FS ext2"
578 [ -e $path/mkfs.ext3 ] && FS="$FS ext3"
579 [ -e $path/mkfs.ext4 ] && FS="$FS ext4"
580 [ -e $path/mkfs.jfs ] && FS="$FS jfs"
581 [ -e $path/mkfs.minix ] && FS="$FS minix"
582 [ -e $path/mkfs.reiserfs ] && FS="$FS reiserfs"
583 [ -e $path/mkfs.xfs ] && FS="$FS xfs"
584 done
585 }
587 form_start()
588 {
589 cat <<EOT
590 <form name="ConfigForm" method="get" action="$SCRIPT_NAME">
591 EOT
592 }
594 form_end()
595 {
596 echo "</form>"
597 }
599 #
600 # Main
601 #
603 case "$(GET page)" in
604 gparted)
605 su - -c "exec env DISPLAY=':0.0' XAUTHORITY='/var/run/slim.auth' /usr/sbin/gparted"
606 xhtml_header
607 page_redirection home
608 ;;
609 install)
610 xhtml_header
611 form_start
612 display_action install
613 validate install
614 read_setup
615 select_source
616 select_partition
617 select_home
618 select_hostname
619 select_root
620 select_user
621 select_grub
622 moveto_page home write
623 form_end
624 ;;
625 upgrade)
626 xhtml_header
627 form_start
628 display_action upgrade
629 validate upgrade
630 read_setup
631 select_source
632 select_old_slitaz
633 select_grub
634 moveto_page home write
635 form_end
636 ;;
637 write)
638 write_setup
639 xhtml_header
640 if ! (tazinst check $INSTFILE); then
641 page_redirection $(GET INST_ACTION)
642 else
643 read_setup
644 form_start
645 display_action $(GET INST_ACTION)
646 if run_tazinst; then
647 moveto_page home reboot
648 else
649 moveto_page home failed
650 fi
651 form_end
652 fi
653 ;;
654 reboot)
655 reboot ;;
656 home)
657 xhtml_header
658 select_action
659 select_gparted
660 select_install
661 select_upgrade
662 ;;
663 failed)
664 xhtml_header
665 display_log
666 ;;
667 menu_install)
668 xhtml_header
669 if check_ressources; then
670 page_redirection install
671 fi
672 ;;
673 menu_upgrade)
674 xhtml_header
675 if check_ressources; then
676 page_redirection upgrade
677 fi
678 ;;
679 *)
680 xhtml_header
681 if check_ressources; then
682 page_redirection home
683 fi
684 ;;
685 esac
687 xhtml_footer
689 exit 0