tazpanel diff installer.cgi @ rev 208
Add Install tab (thanks Dominique)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Sep 02 13:46:24 2011 +0200 (2011-09-02) |
parents | |
children | f85527dffa0c |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/installer.cgi Fri Sep 02 13:46:24 2011 +0200 1.3 @@ -0,0 +1,639 @@ 1.4 +#!/bin/sh 1.5 +# 1.6 +# Main CGI interface for Tazinst, the SliTaz installer. 1.7 +# 1.8 +# Copyright (C) 2011 SliTaz GNU/Linux - BSD License 1.9 +# 1.10 +# Authors : Dominique Corbex <domcox@slitaz.org> 1.11 +# 1.12 + 1.13 +VERSION=0.21 1.14 + 1.15 +# Common functions from libtazpanel 1.16 +. lib/libtazpanel 1.17 +header 1.18 +get_config 1.19 + 1.20 +# Include gettext helper script. 1.21 +. /usr/bin/gettext.sh 1.22 + 1.23 +# Export package name for gettext. 1.24 +TEXTDOMAIN='installer' 1.25 +export TEXTDOMAIN 1.26 + 1.27 +TITLE="- Installer" 1.28 + 1.29 +# Tazinst required version 1.30 +TAZINST_REQUIRED_VERSION="3.3" 1.31 + 1.32 +# Tazinst setup file 1.33 +INSTFILE=/var/lib/tazinst.conf 1.34 + 1.35 +read_setup() 1.36 +{ 1.37 + [ -e "$INSTFILE" ] && . $INSTFILE || gettext "Tazinst setup file not found!" 1.38 +} 1.39 + 1.40 +write_setup() 1.41 +{ 1.42 + if [ -e "$INSTFILE" ]; then 1.43 + # Install type 1.44 + INST_TYPE=$(GET INST_TYPE) 1.45 + # Source File 1.46 + case "$INST_TYPE" in 1.47 + usb) 1.48 + SRC_FILE=$(GET SRC_USB) ;; 1.49 + iso) 1.50 + SRC_FILE=$(GET SRC_ISO) ;; 1.51 + web) 1.52 + SRC_FILE=$(GET SRC_WEB) ;; 1.53 + esac 1.54 + SRC_FILE=$(echo "$SRC_FILE" | sed 's/\//\\\//'g) 1.55 + [ -n $(GET URL) ] && SRC_WEB=$(GET URL) 1.56 + # Main Partition 1.57 + TGT_PARTITION=$(echo "$(GET TGT_PARTITION)" | sed 's/\//\\\//'g) 1.58 + [ -n "$(GET MAIN_FMT)" ] && TGT_FS=$(GET MAIN_FS) || TGT_FS="" 1.59 + # Home Partition 1.60 + if [ -n "$(GET HOME_SPLIT)" ] ; then 1.61 + TGT_HOME=$(echo "$(GET HOME_PART)" | sed 's/\//\\\//'g) 1.62 + [ -n "$(GET HOME_FMT)" ] && TGT_HOME_FS=$(GET HOME_FS) 1.63 + else 1.64 + TGT_HOME="" 1.65 + TGT_HOME_FS="" 1.66 + fi 1.67 + # Hostname 1.68 + TGT_HOSTNAME=$(GET TGT_HOSTNAME) 1.69 + # Root pwd 1.70 + TGT_ROOT_PWD=$(GET TGT_ROOT_PWD) 1.71 + # User Login 1.72 + TGT_USER=$(GET TGT_USER) 1.73 + # User Pwd 1.74 + TGT_USER_PWD=$(GET TGT_USER_PWD) 1.75 + # Grub 1.76 + TGT_GRUB=$(GET TGT_GRUB) 1.77 + [ "$TGT_GRUB" == "yes" ] || TGT_GRUB=no 1.78 + # Win Dual-Boot 1.79 + TGT_WINBOOT=$(GET TGT_WINBOOT) 1.80 + 1.81 + # Save changes to INSTFILE 1.82 + sed -i s/"^INST_TYPE=.*"/"INST_TYPE=\"$INST_TYPE\"/" $INSTFILE 1.83 + sed -i s/"^SRC_FILE=.*"/"SRC_FILE=\"$SRC_FILE\"/" $INSTFILE 1.84 + sed -i s/"^TGT_PARTITION=.*"/"TGT_PARTITION=\"$TGT_PARTITION\"/" $INSTFILE 1.85 + sed -i s/"^TGT_FS=.*"/"TGT_FS=\"$TGT_FS\"/" $INSTFILE 1.86 + sed -i s/"^TGT_HOME=.*"/"TGT_HOME=\"$TGT_HOME\"/" $INSTFILE 1.87 + sed -i s/"^TGT_HOME_FS=.*"/"TGT_HOME_FS=\"$TGT_HOME_FS\"/" $INSTFILE 1.88 + sed -i s/"^TGT_HOSTNAME=.*"/"TGT_HOSTNAME=\"$TGT_HOSTNAME\"/" $INSTFILE 1.89 + sed -i s/"^TGT_ROOT_PWD=.*"/"TGT_ROOT_PWD=\"$TGT_ROOT_PWD\"/" $INSTFILE 1.90 + sed -i s/"^TGT_USER=.*"/"TGT_USER=\"$TGT_USER\"/" $INSTFILE 1.91 + sed -i s/"^TGT_USER_PWD=.*"/"TGT_USER_PWD=\"$TGT_USER_PWD\"/" $INSTFILE 1.92 + sed -i s/"^TGT_GRUB=.*"/"TGT_GRUB=\"$TGT_GRUB\"/" $INSTFILE 1.93 + sed -i s/"^TGT_WINBOOT=.*"/"TGT_WINBOOT=\"$TGT_WINBOOT\"/" $INSTFILE 1.94 + fi 1.95 +} 1.96 + 1.97 +check_setup() 1.98 +{ 1.99 + local ret 1.100 + IFS=$'\n' 1.101 + for line in $(tazinst check $INSTFILE; ret=$?) 1.102 + do 1.103 + line=$(echo $line | sed 's/\[1m//g') 1.104 + line=$(echo $line | sed 's/\[0m//g') 1.105 + line=$(echo $line | sed 's/\s/\ /g') 1.106 + line=$(echo $line | sed 's/</\</g') 1.107 + line=$(echo $line | sed 's/>/\>/g') 1.108 + echo "<font color=\"red\">$line<br /></font>" 1.109 + done 1.110 + unset IFS 1.111 + return $ret 1.112 +} 1.113 + 1.114 +select_action() 1.115 +{ 1.116 + cat <<EOT 1.117 +<div id="wrapper"> 1.118 + <h2>$(gettext "SliTaz Installer")</h2> 1.119 + <p>$(gettext "The SliTaz Installer installs or upgrade SliTaz to a hard disk 1.120 + drive from a device like a Live-CD or LiveUSB key, from a SliTaz ISO file, or 1.121 + from the web by downloading an ISO file.")<p> 1.122 +</div> 1.123 +EOT 1.124 +} 1.125 + 1.126 +select_gparted() 1.127 +{ 1.128 + cat <<EOT 1.129 +<table> 1.130 +<tr> 1.131 + <td>$(gettext "Before installation, you'll may need to resize partitions 1.132 +on your hard disk drive in order to make space for SlItaz GNU/Linux.")</td> 1.133 +</tr> 1.134 +</table> 1.135 +EOT 1.136 +} 1.137 + 1.138 +select_install() 1.139 +{ 1.140 + cat <<EOT 1.141 +</table> 1.142 +<form method="get" action="$SCRIPT_NAME"> 1.143 +<table> 1.144 +<tr> 1.145 + <td><h4>$(gettext "Install")</h4></td> 1.146 +</tr> 1.147 +<tr> 1.148 + <td>$(gettext "Install SliTaz on a partition of your hard disk drive. If 1.149 + you decide to format your HDD, all data will be lost. If you do not 1.150 + format, all data except for any existing /home directory will be removed, 1.151 + the home directory will be kept as is.")</td> 1.152 +</tr> 1.153 +<tr> 1.154 + <td><a class="button" href="$SCRIPT_NAME?page=install">$(gettext "Install SliTaz")</a></td> 1.155 +</tr> 1.156 +</table> 1.157 +EOT 1.158 +} 1.159 + 1.160 +select_upgrade() 1.161 +{ 1.162 + cat <<EOT 1.163 +<table> 1.164 +<tr> 1.165 + <td><h4>$(gettext "Upgrade")</h4></td> 1.166 +</tr> 1.167 +<tr> 1.168 + <td>$(gettext "Upgrade an already installed SliTaz system on your hard disk 1.169 + drive. Your /home /etc /var/www directories will be kept, all other directories 1.170 + will be removed. Any additional package added to your old Slitaz system 1.171 + will be updated as long you have an active internet connection.")</td> 1.172 +</tr> 1.173 +<tr> 1.174 + <td><a class="button" href="$SCRIPT_NAME?page=upgrade">$(gettext "Upgrade SliTaz")</a></td> 1.175 +</tr> 1.176 +</table> 1.177 +</form> 1.178 +EOT 1.179 +} 1.180 + 1.181 +display_action() 1.182 +{ 1.183 + case $1 in 1.184 + install) 1.185 + cat << EOT 1.186 +<div id="wrapper"> 1.187 +<h3>$(gettext "Install SliTaz")</h3> 1.188 +<p>$(gettext "You're going to install SliTaz on a partition of your hard disk drive. If 1.189 + you decide to format your HDD, all data will be lost. If you do not 1.190 + format, all data except for any existing /home directory will be removed, 1.191 + the home directory will be kept as is.")<p> 1.192 +</div> 1.193 +<input type="hidden" name="INST_ACTION" value="$1"> 1.194 +EOT 1.195 + ;; 1.196 + upgrade) 1.197 + cat << EOT 1.198 +<div id="wrapper"> 1.199 +<h2>$(gettext "Upgrade SliTaz")</h2> 1.200 +<p>$(gettext "You're going to upgrade an already installed SliTaz system on your hard disk 1.201 + drive. Your /home /etc /var/www directories will be kept, all other directories 1.202 + will be removed. Any additional package added to your old Slitaz system 1.203 + will be updated as long you have an active internet connection.")<p> 1.204 +</div> 1.205 +<input type="hidden" name="INST_ACTION" value="$1"> 1.206 +EOT 1.207 + ;; 1.208 + esac 1.209 +} 1.210 + 1.211 +select_source() 1.212 +{ 1.213 + cat <<EOT 1.214 +<a name="source"></a> 1.215 +<h4>$(gettext "Source")</h4> 1.216 + <table> 1.217 + <tr> 1.218 + <td><input type="radio" name="INST_TYPE" value="cdrom" $([ "$INST_TYPE" == "cdrom" ] && echo "checked") id="cdrom" /> 1.219 + <label for="cdrom">$(gettext "LiveCD")</td></label> 1.220 + </tr> 1.221 + <tr> 1.222 + <td><input type="radio" name="INST_TYPE" value="usb" $([ "$INST_TYPE" == "usb" ] && echo "checked") id="usb" /> 1.223 + <label for="usb">$(gettext "LiveUSB"):</label> 1.224 + <select name="SRC_USB"> 1.225 +EOT 1.226 + # List disks if plugged USB device 1.227 + usb=0 1.228 + if [ -d /proc/scsi/usb-storage ]; then 1.229 + for DEV in /sys/block/sd* ; do 1.230 + if readlink $DEV | grep -q usb; then 1.231 + DEV=$(basename $DEV) 1.232 + if [ -d /sys/block/${DEV}/${DEV}1 ]; then 1.233 + for i in $(fdisk -l /dev/$DEV | awk '/^\/dev/ {printf "%s ", $1}') ; do 1.234 + echo "<option value='$i' $([ "$i" == "$SRC_FILE" ] && echo "selected") >$i</option>" 1.235 + usb=$usb+1 1.236 + done 1.237 + fi 1.238 + fi 1.239 + done 1.240 + fi 1.241 + if [ $usb -lt 1 ]; then 1.242 + echo "<option value="">$(gettext "Not found")</option>" 1.243 + fi 1.244 + cat << EOT 1.245 + </select> 1.246 + </td> 1.247 + </tr> 1.248 + <tr> 1.249 + <td><input type="radio" name="INST_TYPE" value="iso" $([ "$INST_TYPE" == "iso" ] && echo "checked") id="iso" /> 1.250 + <label for="iso">$(gettext "ISO file"):</label> 1.251 + <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")" /> 1.252 + </td> 1.253 + </tr> 1.254 + <tr> 1.255 + <td><input type="radio" name="INST_TYPE" value="web" $([ "$INST_TYPE" == "web" ] && echo "checked" id="web") /> 1.256 + <label for="web">$(gettext "Web"): 1.257 + <a class="button" href="$SCRIPT_NAME?page=$(GET page)&SRC_WEB=stable">$(gettext "Stable")</a> 1.258 + <a class="button" href="$SCRIPT_NAME?page=$(GET page)&SRC_WEB=cooking">$(gettext "Cooking")</a> 1.259 + $(gettext "URL:")</label> 1.260 +EOT 1.261 + case $(GET SRC_WEB) in 1.262 + stable|cooking) 1.263 + get_SRC_WEB=$(tazinst showurl $(GET SRC_WEB)) ;; 1.264 + *) 1.265 + [ "$INST_TYPE" == "web" ] && get_SRC_WEB=$SRC_FILE ;; 1.266 + esac 1.267 +cat <<EOT 1.268 + <input type="url" size="55" name="SRC_WEB" value="$get_SRC_WEB" placeholder="$(gettext "Full url to an ISO image file")" /></td> 1.269 + </tr> 1.270 + </table> 1.271 +EOT 1.272 +} 1.273 + 1.274 +select_partition() 1.275 +{ 1.276 +cat <<EOT 1.277 +<a name="partition"></a> 1.278 +<h4></span>$(gettext "Main Partition")</h4> 1.279 +<table> 1.280 +<tr><td> 1.281 + $(gettext "Partition to use:") 1.282 + <select name="TGT_PARTITION"> 1.283 +EOT 1.284 + # List partitions 1.285 + if fdisk -l | grep -q ^/dev/ ; then 1.286 + for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do 1.287 + echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>" 1.288 + done 1.289 + else 1.290 + echo "<option value="">$(gettext "Not found")</option>" 1.291 + fi 1.292 + cat << EOT 1.293 + </select> 1.294 + <br /> 1.295 + <input type="checkbox" name="MAIN_FMT" value="yes" $([ -n "$TGT_FS" ] && echo "checked") id="mainfs" /> 1.296 + <label for="mainfs">$(gettext "Format partition as"):</label> 1.297 + <select name="MAIN_FS"> 1.298 +EOT 1.299 + scan_mkfs 1.300 + for i in $FS 1.301 + do 1.302 + echo "<option value='$i' $([ "$i" == "$TGT_FS" ] && echo "selected")>$i</option>" 1.303 + done 1.304 + cat <<EOT 1.305 +</select> 1.306 +</td></tr> 1.307 +</table> 1.308 +EOT 1.309 +} 1.310 + 1.311 +select_old_slitaz() 1.312 +{ 1.313 +cat <<EOT 1.314 +<a name="partition"></a> 1.315 +<h4></span>$(gettext "Existing SliTaz Partition")</h4> 1.316 +<table> 1.317 +<tr><td> 1.318 + $(gettext "Partition in use:") 1.319 + <select name="TGT_PARTITION"> 1.320 +EOT 1.321 + # List partitions 1.322 + if fdisk -l | grep -q ^/dev/ ; then 1.323 + for i in `blkid | cut -d ":" -f 1`; do 1.324 + echo "<option value='$i' $([ "$i" == "$TGT_PARTITION" ] && echo "selected")>$i</option>" 1.325 + done 1.326 + else 1.327 + echo "<option value="">$(gettext "Not found")</option>" 1.328 + fi 1.329 + cat <<EOT 1.330 +</select> 1.331 +</td></tr> 1.332 +</table> 1.333 +EOT 1.334 +} 1.335 + 1.336 +select_home() 1.337 +{ 1.338 + cat <<EOT 1.339 +<a name="home"></a> 1.340 +<h4>$(gettext "Home partition")</h4> 1.341 +<input type="checkbox" name="HOME_SPLIT" value="yes" $([ -n "$TGT_HOME" ] && echo "checked") id="homepart" /> 1.342 + <label for="homepart">$(gettext "Use a separate partition for /home:")</label> 1.343 + <select name="HOME_PART"> 1.344 +EOT 1.345 + # List disk if plugged USB device 1.346 + if fdisk -l | grep -q ^/dev/ ; then 1.347 + for i in $(fdisk -l | awk '/^\/dev/ {printf "%s " $1}'); do 1.348 + echo "<option value='$i' $([ "$i" == "$TGT_HOME" ] && echo "selected")>$i</option>" 1.349 + done 1.350 + else 1.351 + echo "<option value="">$(gettext "Not found")</option>" 1.352 + fi 1.353 +cat <<EOT 1.354 + </select> 1.355 + 1.356 + <input type="checkbox" name="HOME_FMT" value="yes" $([ -n "$TGT_HOME_FS" ] && echo "checked") id="homefs" /> 1.357 + <label for="homefs">$(gettext "Format partition as:")</label> 1.358 + <select name="HOME_FS">" 1.359 +EOT 1.360 + for i in $FS 1.361 + do 1.362 + echo "<option value='$i' $([ "$i" == "$TGT_HOME_FS" ] && echo "selected")>$i</option>" 1.363 + done 1.364 + echo "</select>" 1.365 +} 1.366 + 1.367 +select_hostname() 1.368 +{ 1.369 +cat << EOT 1.370 +<a name="hostname"></a> 1.371 +<h4>$(gettext "Host")</h4> 1.372 +$(gettext "Hostname:") 1.373 +<input type="text" name="TGT_HOSTNAME" value="$TGT_HOSTNAME" placeholder="$(gettext "Name of your system")" /> 1.374 +EOT 1.375 +} 1.376 + 1.377 +select_root() 1.378 +{ 1.379 +cat << EOT 1.380 +<a name="root"></a> 1.381 +<h4>$(gettext "Root")</h4> 1.382 +$(gettext "Root passwd:") 1.383 +<input type="text" name="TGT_ROOT_PWD" value="$TGT_ROOT_PWD" placeholder="$(gettext "Password of root")" /> 1.384 +EOT 1.385 +} 1.386 + 1.387 +select_user() 1.388 +{ 1.389 +cat << EOT 1.390 +<a name="user"></a> 1.391 +<h4>$(gettext "User")</h4> 1.392 +$(gettext "User login:") 1.393 +<input type="text" name="TGT_USER" value="$TGT_USER" placeholder="$(gettext "Name of the first user")" /> 1.394 +$(gettext "User passwd:") 1.395 +<input type="text" name="TGT_USER_PWD" value="$TGT_USER_PWD" placeholder="$(gettext "Password of the first user")" /> 1.396 +EOT 1.397 +} 1.398 + 1.399 +select_grub() 1.400 +{ 1.401 +cat << EOT 1.402 +<a name="grub"></a> 1.403 +<h4>$(gettext "Grub")</h4> 1.404 +<input type="checkbox" name="TGT_GRUB" value="yes" $([ "$TGT_GRUB" == "yes" ] && echo "checked") id="grub" /> 1.405 +<label for="grub">$(gettext "Install Grub bootloader")<br /></label> 1.406 +<input type="checkbox" name="TGT_WINBOOT" value="auto" $([ -n "$TGT_WINBOOT" ] && echo "checked") id="dualboot" /> 1.407 +<label for="dualboot">$(gettext "Enable Windows Dual-Boot")</label> 1.408 +EOT 1.409 +} 1.410 + 1.411 +moveto_page() 1.412 +{ 1.413 + case $1 in 1.414 + *) 1.415 + page=home 1.416 + title1=$(gettext "Back to Installer Start Page") ;; 1.417 + esac 1.418 + case $2 in 1.419 + write|run) 1.420 + title2=$(gettext "Proceed to SliTaz installation") ;; 1.421 + reboot) 1.422 + title2=$(gettext "Installation complete. You can now restart (reboot)") ;; 1.423 + failed) 1.424 + title2=$(gettext "Installation failed. See log") ;; 1.425 + *) 1.426 + page=home 1.427 + title2=$(gettext "Back to Installer Start Page") ;; 1.428 + esac 1.429 + cat <<EOT 1.430 +<script type="text/javascript"> 1.431 + function SubmitForm() { 1.432 + var r=confirm("$(gettext "Do you really want to continue?")"); 1.433 + if (r==true) 1.434 + { 1.435 + document.ConfigForm.submit(); 1.436 + } 1.437 + } 1.438 +</script> 1.439 +<hr /> 1.440 +<input type="hidden" name="page" value="$2" /> 1.441 +<a class="button" value="$1" href="$SCRIPT_NAME?page=$1" >$title1</a> 1.442 +<a class="button" value="$2" onclick="SubmitForm()">$title2</a> 1.443 +EOT 1.444 +} 1.445 + 1.446 +page_redirection() 1.447 +{ 1.448 + cat <<EOT 1.449 +<html> 1.450 +<head> 1.451 +<title>$(gettext "A web page that points a browser to a different page after 2 seconds")</title> 1.452 +<meta http-equiv="refresh" content="0; URL=$SCRIPT_NAME?page=$1"> 1.453 +<meta name="keywords" content="automatic redirection"> 1.454 +</head> 1.455 +<body> 1.456 +$(gettext "If your browser doesn't automatically go there within a few seconds, 1.457 +you may want to go manually to ") 1.458 +<a href="$SCRIPT_NAME?page=$1">$1</a> 1.459 +</body> 1.460 +</html> 1.461 +EOT 1.462 +} 1.463 + 1.464 +check_ressources() 1.465 +{ 1.466 + local code 1.467 + code=0 1.468 + # Check tazinst 1.469 + if ! tazinst usage | grep -q Usage: ; then 1.470 + cat <<EOT 1.471 +<h3>$(gettext "Tazinst Error")</h3> 1.472 +<p><strong>tazinst</strong>, $(gettext "the lightweight SliTaz HDD installer 1.473 +is missing. Any installation can't be done without tazinst.")</p> 1.474 +<p>$(gettext "Check tazinst' permissions, or reinstall the slitaz-tools package:")</p> 1.475 +<code># tazpkg get-install slitaz-tools --forced</code> 1.476 +EOT 1.477 + code=1 1.478 + else 1.479 + # Check tazinst required version 1.480 + v=$(tazinst version | tr -d '[:alpha:]') 1.481 + r=$TAZINST_REQUIRED_VERSION 1.482 + if ! (echo "$v" | awk -v r=$r '{v=$v+0}{ if (v < r) exit 1}') ; then 1.483 + cat <<EOT 1.484 +<h3>$(gettext "Tazinst Error")</h3> 1.485 +<p><strong>tazinst</strong> ($v) $(gettext "is not at the required version ($r), 1.486 +use tazinst in a xterm or reinstall the slitaz-tools package:")</p> 1.487 +<code># tazpkg get-install slitaz-tools --forced</code> 1.488 +EOT 1.489 + code=1 1.490 + fi 1.491 + # Check setup file 1.492 + if [ ! -e "$INSTFILE" ]; then 1.493 + gettext "Creating setup file $INSTFILE." 1.494 + tazinst new $INSTFILE 1.495 + fi 1.496 + if [ ! -e "$INSTFILE" ]; then 1.497 + cat <<EOT 1.498 +<h3>$(gettext "Setup File Error")</h3> 1.499 +<p>$(gettext "The setup file <strong>$INSTFILE</strong> doesn't exists.")</p> 1.500 +EOT 1.501 + code=1 1.502 + else 1.503 + if [ ! -r $INSTFILE ]; then 1.504 + cat <<EOT 1.505 +<h3>$(gettext "Setup File Error")</h3> 1.506 +<p>$(gettext "The setup file <strong>$INSTFILE</strong> is not readable. 1.507 +Check permissions and ownership.")</p> 1.508 +EOT 1.509 + code=1 1.510 + fi 1.511 + fi 1.512 + fi 1.513 + return $code 1.514 +} 1.515 + 1.516 +run_tazinst() 1.517 +{ 1.518 + echo "<h4>$(gettext "Proceeding: ()")</h4>" 1.519 + gettext "Please wait until processing is complete" 1.520 + table_start 1.521 + tazinst $(GET INST_ACTION) $INSTFILE | \ 1.522 + awk '{print "<tr><td><tt>" $0 "</tt></td></tr>"}' 1.523 + table_end 1.524 + return $(grep -c "cancelled on error" $INSTFILE) 1.525 +} 1.526 + 1.527 +tazinst_log() 1.528 +{ 1.529 + echo "<pre>" 1.530 + tazinst log 1.531 + echo "</pre>" 1.532 +} 1.533 + 1.534 +scan_mkfs() 1.535 +{ 1.536 + for path in /bin /sbin /usr/bin /usr/sbin 1.537 + do 1.538 + [ -e $path/mkfs.btrfs ] && FS=btrfs 1.539 + [ -e $path/mkfs.cramfs ] && FS="$FS cramfs" 1.540 + [ -e $path/mkfs.ext2 ] && FS="$FS ext2" 1.541 + [ -e $path/mkfs.ext3 ] && FS="$FS ext3" 1.542 + [ -e $path/mkfs.ext4 ] && FS="$FS ext4" 1.543 + [ -e $path/mkfs.vfat ] && FS="$FS fat32" 1.544 + [ -e $path/mkfs.jfs ] && FS="$FS jfs" 1.545 + [ -e $path/mkfs.minix ] && FS="$FS minix" 1.546 + [ -e $path/mkfs.ntfs ] && FS="$FS ntfs" 1.547 + [ -e $path/mkfs.reiserfs ] && FS="$FS reiserfs" 1.548 + [ -e $path/mkfs.xfs ] && FS="$FS xfs" 1.549 + done 1.550 +} 1.551 + 1.552 +form_start() 1.553 +{ 1.554 + cat <<EOT 1.555 +<form name="ConfigForm" method="get" action="$SCRIPT_NAME"> 1.556 +EOT 1.557 +} 1.558 + 1.559 +form_end() 1.560 +{ 1.561 + echo "</form>" 1.562 +} 1.563 + 1.564 +# 1.565 +# Main 1.566 +# 1.567 + 1.568 +case "$(GET page)" in 1.569 + gparted) 1.570 + /usr/sbin/gparted 1.571 + xhtml_header 1.572 + page_redirection home 1.573 + ;; 1.574 + install) 1.575 + read_setup 1.576 + xhtml_header 1.577 + form_start 1.578 + display_action install 1.579 + check_setup 1.580 + select_source 1.581 + select_partition 1.582 + select_home 1.583 + select_hostname 1.584 + select_root 1.585 + select_user 1.586 + select_grub 1.587 + moveto_page home write 1.588 + form_end 1.589 + ;; 1.590 + upgrade) 1.591 + read_setup 1.592 + xhtml_header 1.593 + form_start 1.594 + display_action upgrade 1.595 + check_setup 1.596 + select_source 1.597 + select_old_slitaz 1.598 + select_grub 1.599 + moveto_page home write 1.600 + form_end 1.601 + ;; 1.602 + write) 1.603 + write_setup 1.604 + xhtml_header 1.605 + if ! (tazinst check $INSTFILE); then 1.606 + page_redirection $(GET INST_ACTION) 1.607 + else 1.608 + read_setup 1.609 + form_start 1.610 + display_action $(GET INST_ACTION) 1.611 + if run_tazinst; then 1.612 + moveto_page home reboot 1.613 + else 1.614 + moveto_page home failed 1.615 + fi 1.616 + form_end 1.617 + fi 1.618 + ;; 1.619 + reboot) 1.620 + reboot ;; 1.621 + home) 1.622 + xhtml_header 1.623 + select_action 1.624 + select_gparted 1.625 + select_install 1.626 + select_upgrade 1.627 + ;; 1.628 + failed) 1.629 + xhtml_header 1.630 + display_log 1.631 + ;; 1.632 + *) 1.633 + xhtml_header 1.634 + if check_ressources; then 1.635 + page_redirection home 1.636 + fi 1.637 + ;; 1.638 +esac 1.639 + 1.640 +xhtml_footer 1.641 + 1.642 +exit 0