tazinst annotate installer.cgi @ rev 68

Tiny edits
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Mar 30 01:45:52 2016 +0300 (2016-03-30)
parents ce62c558e0b4
children 46b976024e21
rev   line source
domcox@0 1 #!/bin/sh
domcox@0 2 #
domcox@0 3 # Main CGI interface for Tazinst, the SliTaz installer.
domcox@0 4 #
al@68 5 # Copyright (C) 2012-2016 SliTaz GNU/Linux - BSD License
domcox@0 6 #
domcox@0 7 # Authors : Dominique Corbex <domcox@slitaz.org>
domcox@0 8 #
domcox@0 9
domcox@0 10
domcox@2 11 # restricted path
domcox@2 12 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
domcox@0 13
al@46 14 VERSION=3.98
domcox@2 15
domcox@13 16 # Common functions from libtazpanel
domcox@13 17 . lib/libtazpanel
domcox@13 18 get_config
domcox@2 19
domcox@13 20 TITLE=$(gettext 'TazPanel - Installer')
domcox@0 21
domcox@2 22 # export package name for gettext.
domcox@2 23 TEXTDOMAIN='installer'
domcox@2 24 export TEXTDOMAIN
domcox@0 25
domcox@2 26 # tazinst required version
domcox@2 27 TAZINST_MINIMUM_VERSION="3.8"
domcox@2 28 TAZINST_MAXIMUM_VERSION="4.99"
domcox@0 29
domcox@2 30 # tazinst setup file
domcox@2 31 INSTFILE=/root/tazinst.conf
domcox@0 32
al@50 33
pascal@22 34 #------
pascal@22 35 # menu
pascal@22 36 #------
al@50 37
pascal@22 38 case "$1" in
al@46 39 menu)
pascal@54 40 cat <<EOT
al@46 41 <li tabindex="0">
pascal@62 42 <span>$(gettext 'Installation')</span>
al@46 43 <menu>
al@46 44 <li><a data-icon="install"
pascal@62 45 href="installer.cgi" data-root>$(gettext 'Installation')</a></li>
al@46 46 <li><a data-icon="slitaz"
pascal@54 47 href="installer.cgi?page=install" data-root>$(gettext 'Install SliTaz')</a></li>
al@46 48 <li><a data-icon="upgrade"
pascal@54 49 href="installer.cgi?page=upgrade" data-root>$(gettext 'Upgrade system')</a></li>
al@46 50 </menu>
pascal@22 51 </li>
pascal@22 52 EOT
pascal@22 53 exit
pascal@22 54 esac
domcox@0 55
al@50 56
domcox@2 57 #-----------
domcox@2 58 # home page
domcox@2 59 #-----------
domcox@0 60
al@50 61 select_action() {
al@50 62 cat <<EOT
al@50 63 <!-- Welcome message -->
al@50 64
al@68 65 <h2>$(gettext "Welcome to the SliTaz Installer!")</h2>
al@50 66
al@50 67 <p>$(gettext "The SliTaz Installer installs or upgrades SliTaz to a \
al@6 68 hard disk drive from a device like a Live-CD or LiveUSB key, from a SliTaz \
al@50 69 ISO file, or from the web by downloading an ISO file.")</p>
al@50 70
al@50 71 <p>$(gettext "Which type of installation do you want to start?")</p>
al@50 72 EOT
domcox@0 73 }
domcox@0 74
al@50 75
al@50 76 select_install() {
al@50 77 cat <<EOT
al@50 78 <!-- Install message -->
al@50 79
al@50 80 <section>
al@50 81 <header>$(gettext 'Install')</header>
al@50 82
al@50 83 <div>
al@50 84 <p>$(gettext "Install SliTaz on a partition of your hard disk drive. If \
domcox@13 85 you decide to format your partition, all data will be lost. If you do not \
paul@16 86 format, all data except for any existing /home directory will be removed \
al@50 87 (the home directory will be kept as is).")</p>
al@50 88 <p>$(gettext "Before installation, you may need to create or resize \
al@6 89 partitions on your hard disk drive in order to make space for SliTaz \
al@50 90 GNU/Linux. You can graphically manage your partitions with Gparted")</p>
al@50 91 </div>
al@50 92
al@50 93 <footer>
al@50 94 <form>
al@50 95 <button name="page" value="install" data-icon="slitaz"
al@50 96 title="$(gettext 'Proceed to a new SliTaz installation')"
al@50 97 >$(gettext 'Install SliTaz')</button>
al@50 98 </form>
al@50 99 </footer>
al@50 100 </section>
al@50 101 EOT
domcox@0 102 }
domcox@0 103
al@50 104
al@50 105 select_upgrade() {
al@50 106 cat <<EOT
al@50 107 <!-- Upgrade message -->
al@50 108
al@50 109 <section>
al@50 110 <header>$(gettext 'Upgrade')</header>
al@50 111
al@50 112 <div>
al@50 113 <p>$(gettext "Upgrade an already installed SliTaz system on your hard disk \
al@6 114 drive. Your /home /etc /var/www directories will be kept, all other \
al@6 115 directories will be removed. Any additional packages added to your old \
al@68 116 SliTaz system will be updated as long you have an active internet connection.")</p>
al@50 117 </div>
al@50 118
al@50 119 <footer>
al@50 120 <form>
al@50 121 <button name="page" value="upgrade" data-icon="upgrade"
al@50 122 title="$(gettext 'Upgrade an existing SliTaz system')"
al@50 123 >$(gettext 'Upgrade SliTaz')</button>
al@50 124 </form>
al@50 125 </footer>
al@50 126 </section>
al@50 127 EOT
domcox@2 128 }
domcox@0 129
al@50 130
domcox@2 131 #--------------------
paul@31 132 # partitioning page
domcox@2 133 #--------------------
domcox@0 134
al@50 135 exec_gparted() {
domcox@13 136 /bin/su - -c \
domcox@13 137 "exec env DISPLAY=':0.0' XAUTHORITY='/var/run/slim.auth' /usr/sbin/gparted"
domcox@0 138 }
domcox@0 139
al@50 140
al@50 141 select_gparted() {
al@50 142 cat <<EOT
al@50 143 <!-- GParted message -->
al@50 144
al@50 145 <section>
al@50 146 <header>$(gettext "Partitioning")</header>
al@50 147
al@50 148 <div>
al@50 149 <p>$(gettext "On most used systems, the hard drive is already dedicated to \
pascal@60 150 partitions for Windows&trade;, or Linux, or another operating \
al@6 151 system. You'll need to resize these partitions in order to make space for \
al@6 152 SliTaz GNU/Linux. SliTaz will co-exist with other operating systems already \
al@50 153 installed on your hard drive.")</p>
al@50 154 <p>$(gettext "The amount of space needed depends on how much software you \
al@6 155 plan to install and how much space you require for users. It's conceivable \
al@6 156 that you could run a minimal SliTaz system in 300 megs or less, but 2 gigs \
al@50 157 is indeed more comfy.")</p>
al@50 158 <p>$(gettext "A separate home partition and a partition that will be used \
al@68 159 as Linux swap space may be created if needed. SliTaz detects and uses swap \
al@50 160 partitions automatically.")</p>
al@50 161 <hr/>
al@50 162 <p>$(gettext "You can graphically manage your partitions with GParted. \
al@6 163 GParted is a partition editor for graphically managing your disk partitions. \
al@6 164 GParted allows you to create, destroy, resize and copy partitions without \
al@50 165 data loss.")</p>
al@50 166 <p>$(gettext "GParted supports ext2, ext3, ext4, linux swap, ntfs and \
domcox@13 167 fat32 filesystems right out of the box. Support for xjs, jfs, hfs and other \
al@6 168 filesystems is available as well but you first need to add drivers for these \
al@6 169 filesystems by installing the related packages xfsprogs, jfsutils, linux-hfs \
al@50 170 and so on.")</p>
al@50 171 </div>
al@50 172
al@50 173 <footer>
al@50 174 <!-- Launch GParted -->
al@50 175 <form>
al@50 176 <button name="page" value="gparted" data-icon="hdd"
al@50 177 title="$(gettext 'Launch GParted, the partition editor tool')"
al@50 178 >$(gettext 'Execute GParted')</button>
al@50 179 </form>
al@50 180 </footer>
al@50 181 </section>
al@50 182
pascal@53 183 <section>
pascal@53 184 <header>$(gettext "Without Partitioning / Formating")</header>
pascal@53 185
pascal@53 186 <div>
pascal@60 187 <p>$(gettext "SliTaz and Windows&trade; can coexist in the same partition.")</p>
al@68 188 <p>$(gettext "SliTaz will be in the \slitaz directory like UMSDOS did \
pascal@53 189 in the previous century...")</p>
pascal@53 190 </div>
pascal@53 191
pascal@53 192 <footer>
pascal@53 193 <form action="boot.cgi">
pascal@53 194 <input type="hidden" name="iso"/>
pascal@53 195 <input type="hidden" name="action" value="install"/>
pascal@53 196 <button data-icon="install">$(gettext 'Install')</button>
pascal@53 197 </form>
pascal@53 198 </footer>
pascal@53 199 </section>
pascal@53 200
al@50 201
al@50 202 <h5>$(gettext "Continue installation")</h5>
al@50 203
al@50 204 <p>$(gettext "Once you've made room for SliTaz on your drive, you should \
al@50 205 be able to continue installation.")</p>
al@50 206 EOT
domcox@0 207 }
domcox@0 208
al@50 209
domcox@2 210 #------------
domcox@2 211 # input page
domcox@2 212 #------------
domcox@2 213
al@50 214 select_source() {
domcox@2 215 local media="$(/usr/sbin/tazinst get media "$INSTFILE")"
domcox@2 216 local source="$(/usr/sbin/tazinst get source "$INSTFILE")"
domcox@2 217 local list_media="$(/usr/sbin/tazinst list media)"
domcox@13 218 local error
domcox@2 219
domcox@13 220 # set default media
domcox@2 221 [ "$media" ] || media="$(tazinst list media | cut -d ' ' -f1)"
domcox@13 222
domcox@13 223 comment "Source selection"
domcox@2 224 # cdrom
domcox@13 225 if printf '%s' "$list_media" | grep -q "cdrom"; then
al@6 226 input_media "cdrom" \
al@6 227 "$media"
al@6 228 label_media "cdrom" \
al@6 229 "$(gettext 'LiveCD')" \
al@6 230 "$media" \
al@6 231 "$(gettext 'Use the SliTaz LiveCD')"
domcox@2 232 br
domcox@2 233 fi
domcox@2 234 # usb
domcox@13 235 if printf '%s' "$list_media" | grep -q "usb"; then
al@6 236 input_media "usb" \
al@6 237 "$media"
al@6 238 label_media "usb" \
al@6 239 "$(gettext 'LiveUSB:')" \
al@6 240 "$media" \
domcox@13 241 "$(gettext 'Enter the partition where SliTaz Live is located on
domcox@13 242 your USB Key')"
domcox@2 243 error="$?"
domcox@19 244 select "$(/usr/sbin/tazinst list usb "$INSTFILE" | cut -d' ' -f2)" \
al@6 245 "$source" \
al@6 246 "SRC_USB"
al@6 247 error_msg "$error" \
al@6 248 "source" \
al@6 249 2
domcox@2 250 br
domcox@2 251 fi
domcox@2 252 # iso
al@6 253 input_media "iso" \
al@6 254 "$media"
al@6 255 label_media "iso" \
al@6 256 "$(gettext 'ISO file:')" \
al@6 257 "$media" \
al@6 258 "$(gettext 'Select a SliTaz ISO file located on a local disk')"
domcox@2 259 error="$?"
domcox@2 260 if [ "$media" == "iso" ]; then
al@6 261 input "text" \
al@6 262 "src_iso" \
al@6 263 "$source" "" \
domcox@13 264 "$(gettext 'Select an ISO or enter the full path to the ISO file')"\
domcox@2 265 "iso"
domcox@2 266 else
al@6 267 input "text" \
al@6 268 "src_iso" \
al@6 269 "" \
al@6 270 "none" \
domcox@13 271 "$(gettext 'Select an ISO or enter the full path to the ISO file')"\
domcox@2 272 "iso"
domcox@2 273 fi
al@6 274 datalist "$(/usr/sbin/tazinst list iso "$INSTFILE")" \
al@6 275 "src_iso"
al@6 276 error_msg "$error" \
al@6 277 "source"
domcox@2 278 br
domcox@2 279 # web
al@6 280 input_media "web" \
al@6 281 "$media"
al@6 282 label_media "web" \
al@6 283 "$(gettext 'Web:')" \
al@6 284 "$media" \
al@6 285 "$(gettext 'Select a SliTaz version on the Web')"
domcox@2 286 error="$?"
domcox@2 287
domcox@2 288 if [ "$media" == "web" ]; then
al@6 289 input "text" \
al@6 290 "src_web" \
al@6 291 "$source" "" \
domcox@13 292 "$(gettext 'Select a version or enter the full url to an ISO file')"\
domcox@2 293 "web"
domcox@2 294 else
al@6 295 input "text" \
al@6 296 "src_web" \
al@6 297 "" \
al@6 298 "none" \
domcox@13 299 "$(gettext 'Select a version or enter the full url to an ISO file')"\
domcox@2 300 "web"
domcox@2 301 fi
al@6 302 datalist "$(/usr/sbin/tazinst help web "$INSTFILE")" \
al@6 303 "src_web"
al@6 304 error_msg "$error" \
al@6 305 "source"
domcox@2 306 }
domcox@2 307
domcox@2 308 select_root_uuid()
domcox@2 309 {
domcox@2 310 local root_uuid="$(/usr/sbin/tazinst get root_uuid "$INSTFILE")"
domcox@2 311 local mode="$(/usr/sbin/tazinst get mode "$INSTFILE")"
domcox@2 312 comment "root_uuid selection"
domcox@2 313 if [ "$mode" == "upgrade" ]; then
al@6 314 label "root_uuid" \
al@6 315 "$(gettext 'Existing SliTaz partition to upgrade:')" \
al@6 316 "$(gettext 'Specify the partition containing the system to upgrade')"
domcox@2 317 error="$?"
domcox@2 318 else
al@6 319 label "root_uuid" \
al@68 320 "$(gettext 'Install SliTaz to partition:')" \
al@6 321 "$(gettext 'Specify the partition where to install SliTaz')"
domcox@2 322 error="$?"
domcox@2 323 fi
al@6 324 select "$(/usr/sbin/tazinst list uuid "$INSTFILE")" \
al@6 325 "$root_uuid" \
al@6 326 "ROOT_UUID" \
domcox@28 327 0
al@6 328 error_msg "$error" \
al@6 329 "root_uuid" \
domcox@28 330 0
domcox@2 331 br
domcox@2 332 }
domcox@2 333
domcox@2 334 select_root_format()
domcox@2 335 {
domcox@2 336 local root_format="$(/usr/sbin/tazinst get root_format "$INSTFILE")"
domcox@2 337 comment "root_format selection"
al@6 338 format "$(/usr/sbin/tazinst list format "$INSTFILE")" \
al@6 339 "$root_format" \
al@6 340 "ROOT_FORMAT"
domcox@2 341 }
domcox@2 342
al@50 343 select_home_uuid() {
al@50 344 local home_uuid="$(/usr/sbin/tazinst get home_uuid "$INSTFILE")"
domcox@2 345
al@50 346 cat <<EOT
al@50 347 <!-- home_uuid selection -->
al@50 348
al@50 349 <fieldset>
al@50 350 <legend>$(gettext "home partition")</legend>
al@50 351
al@50 352 $(
al@6 353 label "home_uuid" \
al@6 354 "$(gettext 'Separate partition for /home:')" \
al@6 355 "$(gettext 'Specify the partition containing /home')"
al@6 356 select "$(/usr/sbin/tazinst list uuid "$INSTFILE")" \
al@6 357 "$home_uuid" \
al@6 358 "HOME_UUID" \
domcox@28 359 0
al@50 360 )
al@50 361 <br/>
al@50 362 EOT
domcox@2 363 }
domcox@2 364
domcox@2 365 select_home_format()
domcox@2 366 {
domcox@2 367 local home_format="$(/usr/sbin/tazinst get home_format "$INSTFILE")"
al@50 368
domcox@2 369 comment "home_format selection"
al@6 370 format "$(/usr/sbin/tazinst list format "$INSTFILE")" \
al@6 371 "$home_format" \
al@6 372 "HOME_FORMAT"
al@50 373 cat <<EOT
al@50 374 </fieldset>
al@50 375 EOT
domcox@2 376 }
domcox@2 377
al@50 378
al@50 379 select_hostname() {
domcox@2 380 local hostname="$(/usr/sbin/tazinst get hostname "$INSTFILE")" error
al@50 381
al@50 382 cat <<EOT
al@50 383 <!-- hostname selection -->
al@50 384
al@50 385 <fieldset>
al@50 386 <legend>$(gettext "Hostname")</legend>
al@50 387 $(
al@6 388 label "hostname" \
al@6 389 "$(gettext 'Set Hostname to:')" \
al@6 390 "$(gettext 'Hostname configuration allows you to specify the machine name')"
domcox@2 391 error=$?
al@6 392 input "text" \
al@6 393 "HOSTNAME" \
al@6 394 "$hostname" \
al@6 395 "" \
al@6 396 "$(gettext 'Name of your system')"
al@6 397 error_msg "$error" \
al@6 398 "hostname" \
al@6 399 2
al@50 400 )
al@50 401 </fieldset>
al@50 402 EOT
domcox@2 403 }
domcox@2 404
al@50 405
al@50 406 select_root_pwd() {
domcox@2 407 local root_pwd="$(/usr/sbin/tazinst get root_pwd "$INSTFILE")" error
al@50 408
al@50 409 cat <<EOT
al@50 410 <!-- root_pwd selection -->
al@50 411
al@50 412 <fieldset>
al@50 413 <legend>$(gettext "Root superuser")</legend>
al@50 414 $(
al@6 415 label "root_pwd" \
al@6 416 "$(gettext 'Root passwd:')" \
al@6 417 "$(gettext 'Enter the password for root')"
domcox@2 418 error="$?"
al@6 419 input "text" \
al@6 420 "ROOT_PWD" \
al@6 421 "$root_pwd" \
al@6 422 "" \
al@6 423 "$(gettext 'Password of root')"
al@6 424 error_msg "$error" \
al@6 425 "root_pwd"
al@50 426 )
al@50 427 </fieldset>
al@50 428 EOT
domcox@2 429 }
domcox@2 430
al@50 431
al@50 432 select_user_login() {
domcox@2 433 local user_login="$(/usr/sbin/tazinst get user_login "$INSTFILE")" error
al@50 434
al@50 435 cat <<EOT
al@50 436 <!-- user_login selection -->
al@50 437
al@50 438 <fieldset>
al@50 439 <legend>$(gettext "User")</legend>
al@50 440 $(
al@6 441 label "user_login" \
al@6 442 "$(gettext 'User login:')" \
al@6 443 "$(gettext 'Enter the name of the first user')"
domcox@2 444 error="$?"
al@6 445 input "text" \
al@6 446 "USER_LOGIN" \
al@6 447 "$user_login" \
al@6 448 "" \
domcox@2 449 "$(gettext 'Name of the first user')"
al@6 450 error_msg "$error" \
al@6 451 "user_login" \
al@6 452 2
al@50 453 )
al@50 454 <br/>
al@50 455 EOT
domcox@2 456 }
domcox@2 457
al@50 458
domcox@2 459 select_user_pwd()
domcox@2 460 {
domcox@2 461 local user_pwd="$(/usr/sbin/tazinst get user_pwd "$INSTFILE")" error
al@50 462
al@6 463 label "user_pwd" \
al@6 464 "$(gettext 'User passwd:')" \
al@6 465 "$(gettext 'The password for default user')"
domcox@2 466 error="$?"
al@6 467 input "text" \
al@6 468 "USER_PWD" \
al@6 469 "$user_pwd" \
al@6 470 "" \
domcox@2 471 "$(gettext 'Password of the first user')"
al@6 472 error_msg "$error" \
al@6 473 "user_pwd"
al@50 474 cat <<EOT
al@50 475 </fieldset>
al@50 476 EOT
domcox@2 477 }
domcox@2 478
al@50 479
domcox@2 480 select_bootloader()
domcox@2 481 {
domcox@2 482 local bootloader="$(/usr/sbin/tazinst get bootloader "$INSTFILE")" error
al@50 483
al@50 484 cat <<EOT
al@50 485 <!-- bootloader selection -->
al@50 486
al@50 487 <fieldset>
al@50 488 <legend>$(gettext "Bootloader")</legend>
al@50 489
al@50 490 $(
al@6 491 input "checkbox" \
al@6 492 "bootloader" \
al@6 493 "auto" \
al@6 494 "$bootloader"
al@6 495 label "bootloader" \
al@6 496 "$(gettext 'Install a bootloader.')" \
domcox@13 497 "$(gettext "Usually you should answer yes, unless you want to install \
domcox@13 498 a bootloader by hand yourself.")"
domcox@2 499 error="$?"
al@6 500 error_msg "$error" \
al@6 501 "bootloader"
al@50 502 )
al@50 503 <br/>
al@50 504 EOT
domcox@2 505 }
domcox@2 506
al@50 507
domcox@2 508 select_winboot()
domcox@2 509 {
domcox@2 510 local winboot="$(/usr/sbin/tazinst get winboot "$INSTFILE")" error
al@50 511
domcox@2 512 comment "winboot selection"
al@6 513 input "checkbox" \
al@6 514 "winboot" \
al@6 515 "auto" \
al@6 516 "$winboot"
al@6 517 label "winboot" \
al@6 518 "$(gettext 'Enable Windows Dual-Boot.')" \
domcox@13 519 "$(gettext "At start-up, you will be asked whether you want to boot \
pascal@60 520 into Windows&trade; or SliTaz GNU/Linux.")"
domcox@2 521 error="$?"
al@6 522 error_msg "$error" \
al@6 523 "winboot"
al@50 524 cat <<EOT
al@50 525 </fieldset>
al@50 526 EOT
domcox@2 527 }
domcox@2 528
al@50 529
domcox@2 530 errors_msg()
domcox@2 531 {
domcox@2 532 if [ "$CHECK" ]; then
domcox@13 533 echo '<span class="alert">'
domcox@28 534 p "$(gettext "Errors found. Please check your settings.")"
domcox@13 535 echo '</span>'
domcox@2 536 fi
domcox@2 537 }
domcox@2 538
al@50 539
al@50 540 select_settings() {
domcox@2 541 local settings="$(/usr/sbin/tazinst get settings "$INSTFILE")"
domcox@2 542 CHECK=$(GET CHECK)
domcox@2 543 errors_msg
al@50 544
al@50 545 cat<<EOT
al@50 546 <fieldset>
al@50 547 <legend>$(gettext "Select source media:")</legend>
al@50 548
al@50 549 <div class="media">$(select_source)</div>
al@50 550 </fieldset>
al@50 551
al@50 552
al@50 553 <fieldset>
al@50 554 <legend>$(gettext "Select destination")</legend>
al@50 555
al@50 556 <div>$(
al@50 557 select_root_uuid
al@50 558 printf '%s' "$settings" | grep -q "root_format" && select_root_format
al@50 559 )</div>
al@50 560 </fieldset>
al@50 561
al@50 562
al@50 563 <fieldset id="options">
al@50 564 <legend>$(gettext 'Options')</legend>
al@50 565
al@50 566 <div class="options">$(
domcox@13 567 printf '%s' "$settings" | grep -q "home_uuid" && select_home_uuid
al@50 568 printf '%s' "$settings" | grep -q "home_format" && select_home_format
domcox@13 569 printf '%s' "$settings" | grep -q "hostname" && select_hostname
domcox@13 570 printf '%s' "$settings" | grep -q "root_pwd" && select_root_pwd
domcox@13 571 printf '%s' "$settings" | grep -q "user_login" && select_user_login
domcox@13 572 printf '%s' "$settings" | grep -q "user_pwd" && select_user_pwd
al@50 573 )</div>
al@50 574
al@50 575 <div class="bootloader">$(
domcox@13 576 printf '%s' "$settings" | grep -q "bootloader" && select_bootloader
domcox@13 577 printf '%s' "$settings" | grep -q "winboot" && select_winboot
al@50 578 )</div>
al@50 579 </fieldset>
al@50 580
al@50 581 <br/>
al@50 582 EOT
domcox@2 583 }
domcox@2 584
al@50 585
domcox@2 586 #--------------
domcox@2 587 # execute page
domcox@2 588 #--------------
domcox@2 589
domcox@2 590 save_settings()
domcox@2 591 {
domcox@19 592 h5 "$(gettext "Checking settings...")"
al@50 593
domcox@2 594 # install type
domcox@2 595 /usr/sbin/tazinst set media "$(GET MEDIA)" "$INSTFILE"
al@50 596
domcox@2 597 # source File
domcox@2 598 case "$(/usr/sbin/tazinst get media "$INSTFILE")" in
domcox@2 599 usb)
domcox@2 600 /usr/sbin/tazinst set source "$(GET SRC_USB)" "$INSTFILE" ;;
domcox@2 601 iso)
domcox@2 602 /usr/sbin/tazinst set source "$(GET SRC_ISO)" "$INSTFILE" ;;
domcox@2 603 web)
domcox@2 604 /usr/sbin/tazinst set source "$(GET SRC_WEB)" "$INSTFILE" ;;
domcox@2 605 esac
al@50 606
domcox@2 607 # set defined url
domcox@2 608 [ $(GET URL) ] && SRC_WEB=$(GET URL)
al@50 609
domcox@2 610 # root Partition
domcox@2 611 /usr/sbin/tazinst set root_uuid "$(GET ROOT_UUID)" "$INSTFILE"
al@50 612
domcox@2 613 # format root partition
domcox@2 614 [ "$(GET ROOT_FORMAT)" ] \
domcox@2 615 && /usr/sbin/tazinst set root_format "$(GET ROOT_FORMAT)" "$INSTFILE" \
domcox@2 616 || /usr/sbin/tazinst unset root_format "$INSTFILE"
al@50 617
domcox@2 618 # home Partition
domcox@2 619 if [ "$(GET HOME_UUID)" ] ; then
domcox@2 620 /usr/sbin/tazinst set home_uuid "$(GET HOME_UUID)" "$INSTFILE"
domcox@2 621 [ "$(GET HOME_FORMAT)" ] \
domcox@2 622 && /usr/sbin/tazinst set home_format "$(GET HOME_FORMAT)" \
domcox@2 623 "$INSTFILE" \
domcox@2 624 || /usr/sbin/tazinst unset home_format "$INSTFILE"
domcox@2 625 else
domcox@2 626 /usr/sbin/tazinst unset home_uuid "$INSTFILE"
domcox@2 627 /usr/sbin/tazinst unset home_format "$INSTFILE"
domcox@2 628 fi
al@50 629
domcox@2 630 # hostname
domcox@2 631 /usr/sbin/tazinst set hostname "$(GET HOSTNAME)" "$INSTFILE"
al@50 632
domcox@2 633 # root pwd
domcox@2 634 /usr/sbin/tazinst set root_pwd "$(GET ROOT_PWD)" "$INSTFILE"
al@50 635
domcox@2 636 # user Login
domcox@2 637 /usr/sbin/tazinst set user_login "$(GET USER_LOGIN)" "$INSTFILE"
al@50 638
domcox@2 639 # user Pwd
domcox@2 640 /usr/sbin/tazinst set user_pwd "$(GET USER_PWD)" "$INSTFILE"
al@50 641
domcox@2 642 # win Dual-Boot
domcox@2 643 /usr/sbin/tazinst set winboot "$(GET WINBOOT)" "$INSTFILE"
al@50 644
domcox@2 645 # bootloader
domcox@2 646 if [ "$(GET BOOTLOADER)" == "auto" ]; then
domcox@2 647 /usr/sbin/tazinst set bootloader "auto" "$INSTFILE"
domcox@2 648 else
domcox@2 649 /usr/sbin/tazinst unset bootloader "$INSTFILE"
domcox@2 650 /usr/sbin/tazinst unset winboot "$INSTFILE"
domcox@2 651 fi
domcox@2 652 input_hidden "CHECK" "yes"
domcox@2 653 }
domcox@2 654
al@50 655
domcox@2 656 tazinst_run()
domcox@2 657 {
domcox@2 658 local mode="$(/usr/sbin/tazinst get mode "$INSTFILE")" error
pascal@67 659 h4 "$(gettext 'Proceeding to:') $(gettext "$mode")"
domcox@2 660 /usr/sbin/tazinst execute "$INSTFILE" | /bin/busybox awk '{
domcox@2 661 num=$1+0
domcox@2 662 if (num>0 && num<=100){
domcox@2 663 print "<script type=\"text/javascript\">"
domcox@2 664 printf "document.write(\047<div id=\"progress\">"
domcox@2 665 printf "<img src=\"/styles/default/images/loader.gif\" />"
domcox@2 666 printf $1 "&#37; " substr($0, length($1)+2, 40)
domcox@2 667 print "</div>\047)"
domcox@2 668 print "</script>"
domcox@2 669 }
domcox@2 670 }'
domcox@2 671 # end_of_install
domcox@2 672 if /usr/sbin/tazinst log | grep -q "x-x-" ; then
domcox@2 673 error=1
domcox@2 674 echo "<script type=\"text/javascript\">"
domcox@2 675 printf "document.write(\047<div id=\"progress\">"
domcox@2 676 printf "<img src=\"/styles/default/images/stop.png\" />"
al@6 677 printf "$(gettext 'Errors encountered.')"
domcox@2 678 printf "</div>\047)\n"
domcox@2 679 echo "</script>"
domcox@2 680 br
domcox@2 681 br
domcox@2 682 /usr/sbin/tazinst log | \
domcox@2 683 /bin/busybox awk '$1 == "-x-x-",$1 == "x-x-x"' | sed 's/-x-x-/ /' \
domcox@2 684 | grep -v "x-x-x"
domcox@2 685 else
domcox@2 686 error=0
domcox@2 687 echo "<script type=\"text/javascript\">"
domcox@2 688 printf "document.write(\047<div id=\"progress\">"
domcox@2 689 printf "<img src=\"/styles/default/images/tux.png\" />"
al@6 690 printf "$(gettext 'Process completed!')"
domcox@2 691 printf "</div>\047)\n"
domcox@2 692 echo "</script>"
domcox@2 693 br
domcox@2 694 br
domcox@2 695 br
al@6 696 p $(gettext "Installation is now finished, you can exit the installer \
al@6 697 or reboot on your new SliTaz GNU/Linux operating system.")
domcox@2 698 fi
domcox@2 699 return "$error"
domcox@2 700
domcox@2 701 }
domcox@2 702
al@50 703
domcox@2 704 tazinst_log()
domcox@2 705 {
domcox@13 706 h4 "$(gettext "Tazinst log")"
domcox@13 707 printf '<pre>%s</pre>' "$(/usr/sbin/tazinst log | sed 's/\%/ percent/g')"
domcox@2 708 }
domcox@2 709
domcox@2 710
domcox@2 711 #-----------------
domcox@2 712 # page navigation
domcox@2 713 #-----------------
domcox@2 714
al@50 715 display_mode() {
domcox@2 716 local mode="$(/usr/sbin/tazinst get mode "$INSTFILE")"
domcox@2 717 case $mode in
domcox@0 718 install)
al@50 719 cat <<EOT
al@50 720 <h2>$(gettext "Install SliTaz")</h2>
al@50 721
al@50 722 <p>$(gettext "You're going to install SliTaz on a partition of \
domcox@13 723 your hard disk drive. If you decide to format your HDD, all data will be \
al@6 724 lost. If you do not format, all data except for any existing /home \
al@50 725 directory will be removed (the home directory will be kept as is).")</p>
al@50 726 EOT
domcox@0 727 ;;
domcox@0 728 upgrade)
al@50 729 cat <<EOT
al@50 730 <h2>$(gettext "Upgrade SliTaz")</h2>
al@50 731
al@50 732 <p>$(gettext "You're going to upgrade an already installed SliTaz \
al@6 733 system on your hard disk drive. Your /home /etc /var/www directories \
al@6 734 will be kept, all other directories will be removed. Any additional \
al@68 735 packages added to your old SliTaz system will be updated as long you \
al@50 736 have an active internet connection.")</p>
al@50 737 EOT
domcox@0 738 ;;
domcox@0 739 esac
domcox@0 740 }
domcox@0 741
al@50 742
domcox@2 743 moveto_page()
domcox@0 744 {
domcox@13 745 local back_page="$1" next_page="$2" back_msg next_msg
al@50 746
domcox@13 747 case "$back_page" in
domcox@2 748 partitioning)
domcox@2 749 back_msg=$(gettext 'Back to partitioning') ;;
domcox@2 750 input)
domcox@2 751 back_msg=$(gettext 'Back to entering settings') ;;
domcox@2 752 *)
domcox@2 753 back_msg=$(gettext 'Back to Installer Start Page') ;;
domcox@2 754 esac
al@50 755
domcox@13 756 case "$next_page" in
domcox@2 757 execute|run)
domcox@2 758 next_msg=$(gettext 'Proceed to SliTaz installation') ;;
domcox@2 759 reboot)
domcox@2 760 next_msg=$(gettext 'Installation complete. You can now restart') ;;
domcox@2 761 failed)
domcox@2 762 next_msg=$(gettext 'Installation failed. See log') ;;
domcox@2 763 input)
domcox@2 764 next_msg=$(gettext 'Continue installation.') ;;
domcox@2 765 *)
domcox@2 766 next_msg=$(gettext 'Back to Installer Start Page') ;;
domcox@2 767 esac
al@50 768
al@50 769 cat <<EOT
al@50 770 <hr/>
al@50 771 <form>
al@50 772 <button name="page" value="$back_page" data-icon="back" >$back_msg</button>
al@50 773 <button name="page" value="$next_page" data-icon="start">$next_msg</button>
al@50 774 </form>
al@50 775 EOT
domcox@0 776 }
domcox@0 777
al@50 778
al@50 779 moveto_home() {
al@50 780 cat <<EOT
al@50 781 <form>
al@50 782 <button name="page" value="home" data-icon="back"
al@50 783 >$(gettext 'Back to Installer Start Page')</button>
al@50 784 </form>
al@50 785 EOT
domcox@0 786 }
domcox@0 787
al@50 788
al@50 789 page_redirection() {
domcox@2 790 local page="$1"
domcox@2 791 cat <<EOT
domcox@0 792 <!DOCTYPE html>
domcox@0 793 <html>
domcox@0 794 <head>
al@50 795 <meta charset="UTF-8">
domcox@0 796 <title>$(gettext "A web page that points a browser to a different page after \
domcox@0 797 2 seconds")</title>
domcox@0 798 <meta http-equiv="refresh" content="0; URL=$SCRIPT_NAME?page=$1">
domcox@0 799 <meta name="keywords" content="automatic redirection">
domcox@0 800 </head>
domcox@0 801 <body>
domcox@0 802 <p>$(gettext "If your browser doesn't automatically redirect within a few \
domcox@2 803 seconds, you may want to go there manually")
domcox@2 804 <a href="$SCRIPT_NAME?page=$page">$(gettext "here")</a></p>
domcox@0 805 </body>
domcox@0 806 </html>
domcox@0 807 EOT
domcox@0 808 }
domcox@0 809
al@50 810
domcox@2 811 #----------
domcox@2 812 # checking
domcox@2 813 #----------
domcox@2 814
al@50 815 check_ressources() {
domcox@2 816 local errorcode=0
domcox@2 817 comment "check_ressources"
domcox@0 818 if ! [ -x /usr/sbin/tazinst ] ; then
al@6 819 h4 $(gettext "Tazinst Error")
al@6 820 p $(gettext "<strong>tazinst</strong>, the backend to slitaz-installer \
al@6 821 is missing. Any installation can not be done without tazinst.")
al@6 822 p $(gettext "Check tazinst permissions, or reinstall the \
al@6 823 slitaz-installer package.")
domcox@2 824 errorcode=1
domcox@0 825 else
domcox@2 826 # check tazinst minimum version
domcox@2 827 v=$(/usr/sbin/tazinst version | tr -d '[:alpha:]')
domcox@2 828 r=$TAZINST_MINIMUM_VERSION
domcox@13 829 if ! (printf '%s' "$v" | /bin/busybox awk -v r=$r \
domcox@2 830 '{v=$v+0}{ if (v < r) exit 1}') ; then
al@6 831 h4 $(gettext "Tazinst Error")
al@6 832 p $(gettext "<strong>tazinst</strong>, the slitaz-installer \
al@6 833 backend, is not at the minimum required version. Any installation \
al@6 834 cannot be done without tazinst.")
al@6 835 p $(gettext "Reinstall the slitaz-installer package, or use \
al@6 836 tazinst in CLI mode.")
domcox@2 837 errorcode=1
domcox@2 838 fi
domcox@2 839 # check tazinst maximum version
domcox@2 840 v=$(/usr/sbin/tazinst version | tr -d '[:alpha:]')
domcox@2 841 r=$TAZINST_MAXIMUM_VERSION
domcox@13 842 if ! (printf '%s' "$v" | /bin/busybox awk -v r=$r \
domcox@2 843 '{v=$v+0}{ if (v > r) exit 1}') ; then
al@6 844 h4 $(gettext "Tazinst Error")
al@6 845 p $(gettext "<strong>tazinst</strong>, the slitaz-installer \
al@6 846 backend, is at a higher version than the maximum authorized \
al@6 847 by the slitaz-installer. Any installation cannot be done.")
al@6 848 p $(gettext "Reinstall the slitaz-installer package, or use \
al@6 849 tazinst in CLI mode.")
domcox@2 850 errorcode=1
domcox@0 851 fi
domcox@0 852 fi
domcox@2 853 return $errorcode
domcox@0 854 }
domcox@0 855
domcox@2 856
domcox@2 857 #---------------
domcox@2 858 # html snippets
domcox@2 859 #---------------
domcox@2 860
al@50 861 br() {
domcox@13 862 echo '<br />'
domcox@0 863 }
domcox@0 864
al@50 865 hr() {
domcox@13 866 echo '<hr />'
domcox@0 867 }
domcox@0 868
al@50 869 comment() {
domcox@13 870 printf '<!-- %s -->\n' "$@"
domcox@2 871 }
domcox@2 872
al@50 873 a() {
domcox@13 874 local page="$1" text="$2"
domcox@13 875 printf '<a class="button" value="%s" href="%s?page=%s">%s</a>\n' \
domcox@13 876 "$page" "$SCRIPT_NAME" "$page" "$text"
domcox@13 877 }
domcox@13 878
al@50 879 button() {
domcox@13 880 local action="$1" msg="$2" title="$3"
domcox@13 881 printf '<a class="button" href="%s?page=%s" title="%s">%s</a>\n' \
domcox@13 882 "$SCRIPT_NAME" "$action" "$title" "$msg"
domcox@2 883 }
domcox@2 884
al@50 885 open_div() {
domcox@13 886 [ "$1" ] && printf '<div %s>\n' "$1" || echo '<div>'
domcox@2 887 }
domcox@2 888
al@50 889 close_div() {
domcox@13 890 echo '</div>'
domcox@2 891 }
domcox@2 892
al@50 893 p() {
domcox@13 894 printf '<p>%s</p>\n' "$@"
domcox@2 895 }
domcox@2 896
al@50 897 h4() {
domcox@13 898 printf '<h4>%s</h4>\n' "$@"
domcox@2 899 }
domcox@2 900
al@50 901 h5() {
domcox@13 902 printf '<h5>%s</h5>\n' "$@"
domcox@2 903 }
domcox@2 904
al@50 905 label() {
domcox@2 906 local setting="$1" label="$2" title="$3" name="$4" error=0
domcox@2 907 [ -z "$name" ] && name="$setting"
domcox@13 908 printf '<label for="%s"' "$name"
domcox@13 909 [ "$title" ] && printf ' title="%s">' "$title" || printf '%s' '>'
domcox@2 910 # display label in red in case of error
domcox@2 911 if [ "$CHECK" ]; then
domcox@2 912 /usr/sbin/tazinst check "$setting" "$INSTFILE"
domcox@2 913 error="$?"
domcox@2 914 [ "$error" -gt "0" ] && [ "$error" -lt "127" ] && \
domcox@13 915 printf '%s' '<span class="alert">'
domcox@13 916 printf '%s' "$label"
domcox@2 917 [ "$error" -gt "0" ] && [ "$error" -lt "127" ] && \
domcox@13 918 printf '%s' "<sup>*</sup></span>"
domcox@2 919 else
domcox@13 920 printf '%s' "$label"
domcox@2 921 fi
domcox@13 922 echo '</label>'
domcox@2 923 return "$error"
domcox@2 924 }
domcox@2 925
al@50 926
al@50 927 label_media() {
domcox@2 928 local id="$1" label="$2" media="$3" title="$4" retcode=0
domcox@2 929 if [ "$media" == "$id" ]; then
al@6 930 label "source" \
al@6 931 "$label" \
al@6 932 "$title" \
al@6 933 "$media"
domcox@2 934 retcode="$?"
domcox@2 935 else
domcox@13 936 printf '<label for="%s"' "$id"
domcox@13 937 [ "$title" ] && printf ' title="%s">' "$title" || echo '>'
domcox@2 938 echo "$label</label>"
domcox@2 939 fi
domcox@2 940 return "$retcode"
domcox@2 941 }
domcox@2 942
al@50 943
al@50 944 error_msg() {
domcox@2 945 local error="$1" setting="$2" line="$3"
domcox@2 946 if [ "$CHECK" ]; then
domcox@2 947 if [ "$error" -gt "0" ]; then
domcox@13 948 [ "$error" -lt "128" ] && printf '%s' '<span class="alert">' \
domcox@13 949 || printf '%s' '<span class="warning">'
domcox@2 950 if [ "$line" ]; then
domcox@2 951 /usr/sbin/tazinst check "$setting" "$INSTFILE" 2>&1 | \
domcox@2 952 /bin/busybox awk -v LINE="$line" '{if (NR==LINE){print}}'
domcox@2 953 else
domcox@2 954 /usr/sbin/tazinst check "$setting" "$INSTFILE" 2>&1
domcox@2 955 fi
domcox@13 956 echo '</span>'
domcox@2 957 fi
domcox@2 958 fi
domcox@2 959 }
domcox@2 960
al@50 961
al@50 962 select() {
domcox@13 963 local list="$1" selected="$2" name="$3" type="$4"
domcox@13 964 printf '%s' "$list" | \
domcox@13 965 /bin/busybox awk -v SELECTED="$selected" -v NONE="$(gettext "None")" \
domcox@13 966 -v NAME="$name" -v TYPE="$type" 'BEGIN{
domcox@2 967 TYPE=TYPE+0
domcox@2 968 print "<select name=\"" NAME "\">"
domcox@2 969 print "<option value=>< " NONE " ></option>"
domcox@2 970 }
domcox@2 971 {
domcox@2 972 printf "<option value=\"" $1 "\""
domcox@2 973 if ($1 == SELECTED) printf " selected"
domcox@2 974 if (TYPE == 0)
domcox@2 975 print ">" $0 "</option>"
domcox@2 976 if (TYPE == 1)
domcox@2 977 print ">" substr($0,12) "</option>"
domcox@2 978 if (TYPE == 2)
domcox@2 979 print ">" $2 "</option>"
domcox@2 980 }
domcox@2 981 END{
domcox@2 982 print "</select>"
domcox@2 983 }'
domcox@2 984 }
domcox@2 985
domcox@2 986 input()
domcox@2 987 {
domcox@2 988 local type="$1" name="$2" value="$3" selected="$4" help="$5" action="$6"
domcox@13 989 printf '<input type="%s" id="%s" list="list_%s" ' "$type" "$name" "$name"
domcox@13 990 printf 'name="%s" class="%s" ' "$(printf $name | tr [a-z] [A-Z])" "$type"
domcox@13 991 [ "$value" ] && printf 'value="%s" ' "$value"
domcox@13 992 [ "$value" == "$selected" ] && printf '%s' "checked "
domcox@2 993 [ "$action" ] && printf \
domcox@13 994 'onInput="document.getElementById(%s).checked = true;" ' "'$action'"
domcox@13 995 [ "$help" ] && printf 'placeholder="%s" />\n' "$help" || echo "/>"
domcox@2 996 }
domcox@2 997
domcox@2 998 input_media()
domcox@2 999 {
domcox@2 1000 local id="$1" media="$2"
domcox@13 1001 printf '<input type="radio" name="MEDIA" value="%s" id="%s" ' "$id" "$id"
domcox@13 1002 [ "$media" == "$id" ] && echo 'checked />' || echo '/>'
domcox@2 1003 }
domcox@2 1004
domcox@2 1005 input_hidden()
domcox@2 1006 {
domcox@13 1007 local name="$1" value="$2"
domcox@13 1008 printf '<input type="hidden" name="%s" value="%s" />\n' "$name" "$value"
domcox@2 1009 }
domcox@2 1010
domcox@2 1011 datalist()
domcox@2 1012 {
domcox@13 1013 local list="$1" name="$2"
domcox@13 1014 printf '<datalist id="list_%s">\n' "$name"
domcox@2 1015 # workaround for browsers that don’t support the datalist element..
domcox@13 1016 local script="displaySelValue(\"select_$name\",\"$name\")"
domcox@13 1017 printf '<select class="workaround" id="select_%s" ' "$name"
domcox@13 1018 printf "onChange='%s' onBlur='%s'>\n" "$script" "$script"
domcox@13 1019
domcox@2 1020 # workaround ..end
domcox@13 1021 printf '%s' "$list" | \
domcox@13 1022 /bin/busybox awk -v NONE="$(gettext "None")" 'BEGIN{
domcox@2 1023 line=0
domcox@2 1024 }
domcox@2 1025 {
domcox@2 1026 TEXT=$1
domcox@2 1027 sub(".*/","",TEXT)
domcox@13 1028 printf "<option value=\"%s\">%s</option>\n", $1, TEXT
domcox@2 1029 line++
domcox@2 1030 }
domcox@2 1031 END{
domcox@2 1032 if (line < 1)
domcox@13 1033 printf "<option value=>< %s ></option>\n", NONE
domcox@2 1034 }'
domcox@2 1035 echo "</select>"
domcox@2 1036 echo "</datalist>"
domcox@2 1037 }
domcox@2 1038
domcox@2 1039 format()
domcox@2 1040 {
al@6 1041 list_fs="$1" selected="$2" name="$3" none="$(gettext 'Do not format')"
domcox@13 1042 printf '<label for="%s" ' "$name"
domcox@13 1043 printf 'title="%s">' "$(gettext "To format this partition, select a \
domcox@13 1044 filesystem, usually it's safe to use ext4")"
domcox@13 1045 printf '%s</label>\n' "$(gettext "Formatting option:")"
domcox@13 1046 printf '%s' "$list_fs" | \
domcox@13 1047 /bin/busybox awk -v SELECTED=$selected -v NONE="$none" -v NAME="$name" '
domcox@13 1048 BEGIN{
domcox@2 1049 RS=" "
domcox@2 1050 print "<select name=\"" NAME "\">"
domcox@2 1051 print "<option value=\"\">" NONE "</option>"
domcox@2 1052 line=0
domcox@2 1053 }
domcox@2 1054 {
domcox@2 1055 printf "<option value=\"" $1 "\""
domcox@2 1056 if ($1 == SELECTED) printf " selected"
domcox@2 1057 print ">" $0 "</option>"
domcox@2 1058 line++
domcox@2 1059 }
domcox@2 1060 END{
domcox@2 1061 if (line < 1)
domcox@2 1062 print "<option value=>< " NONE " ></option>"
domcox@2 1063 print "</select>"
domcox@2 1064 }'
domcox@2 1065 }
domcox@2 1066
domcox@0 1067 form_start()
domcox@0 1068 {
domcox@13 1069 printf '<form name="%s" method="get" ' "Form"
domcox@13 1070 printf 'onsubmit="return true" action="%s">\n' "$SCRIPT_NAME"
domcox@0 1071 }
domcox@0 1072
domcox@0 1073 form_end()
domcox@0 1074 {
domcox@13 1075 echo '</form>'
domcox@0 1076 }
domcox@0 1077
domcox@13 1078 add_style()
domcox@2 1079 {
domcox@13 1080 printf '<!-- add specific styles -->
domcox@13 1081 <style type="text/css">
al@50 1082 section label {
domcox@13 1083 display:inline-block;
domcox@13 1084 vertical-align:middle;
domcox@13 1085 width: 130px;
domcox@13 1086 }
domcox@13 1087 .media label {
domcox@13 1088 display:inline-block;
domcox@13 1089 vertical-align:middle;
domcox@13 1090 width: 110px;
domcox@13 1091 }
domcox@13 1092 .options label {
domcox@13 1093 display:inline-block;
domcox@13 1094 vertical-align:middle;
domcox@13 1095 width: 140px;
domcox@13 1096 }
al@50 1097 .text {
domcox@13 1098 width: 350px;
domcox@13 1099 }
domcox@13 1100 input {margin-bottom:3px;}
domcox@13 1101 span.alert {color: red}
domcox@13 1102 span.warning { color: darkgray}
domcox@13 1103 #progress {
domcox@13 1104 background-color: #f8f8f8;
domcox@13 1105 border: 1px solid #ddd;
domcox@13 1106 color: #666;
domcox@13 1107 cursor: progress;
domcox@13 1108 position: absolute;
domcox@13 1109 width: 348px;
domcox@13 1110 padding: 4px 4px 2px;
domcox@13 1111 }
domcox@13 1112 </style>
domcox@13 1113 <!-- workaround for browsers that do not support the datalist element -->
domcox@13 1114 <style type="text/css">
domcox@13 1115 .workaround {width: 110px;}
domcox@13 1116 </style>
domcox@13 1117 <script>
domcox@13 1118 function displaySelValue(selectId,inputId)
domcox@13 1119 {
domcox@13 1120 var slct = document.getElementById(selectId);
domcox@13 1121 var input = document.getElementById(inputId);
domcox@13 1122 document.getElementById("src_iso").value="";
domcox@13 1123 document.getElementById("src_web").value="";
domcox@13 1124 if (inputId =="src_iso"){
domcox@13 1125 document.getElementById("iso").checked = true;
domcox@2 1126 }
domcox@13 1127 if (inputId =="src_web"){
domcox@13 1128 document.getElementById("web").checked = true;
domcox@2 1129 }
domcox@13 1130 input.value = slct.options[slct.selectedIndex].value;
domcox@13 1131 }
domcox@13 1132 </script>
domcox@13 1133 <!-- datalist workaround end -->
domcox@13 1134 \n'
domcox@2 1135 }
domcox@2 1136
domcox@2 1137
domcox@0 1138 #
domcox@2 1139 # main
domcox@0 1140 #
domcox@0 1141
domcox@2 1142 header
domcox@2 1143
domcox@0 1144 case "$(GET page)" in
domcox@0 1145 home)
domcox@0 1146 xhtml_header
domcox@0 1147 select_action
domcox@0 1148 select_install
domcox@0 1149 select_upgrade
domcox@0 1150 ;;
domcox@2 1151 install)
domcox@2 1152 xhtml_header
domcox@2 1153 /usr/sbin/tazinst set mode install "$INSTFILE"
domcox@2 1154 page_redirection partitioning
domcox@2 1155 ;;
domcox@0 1156 partitioning)
domcox@0 1157 xhtml_header
domcox@2 1158 form_start
domcox@2 1159 display_mode
domcox@0 1160 select_gparted
domcox@2 1161 moveto_page home input
domcox@2 1162 form_end
domcox@0 1163 ;;
domcox@0 1164 gparted)
domcox@2 1165 exec_gparted
domcox@2 1166 xhtml_header
domcox@0 1167 page_redirection partitioning
domcox@0 1168 ;;
domcox@0 1169 upgrade)
domcox@0 1170 xhtml_header
domcox@2 1171 /usr/sbin/tazinst set mode upgrade "$INSTFILE"
domcox@2 1172 page_redirection input
domcox@2 1173 ;;
domcox@2 1174 input)
domcox@2 1175 xhtml_header
domcox@13 1176 add_style
domcox@2 1177 form_start
domcox@2 1178 display_mode
domcox@2 1179 select_settings
domcox@13 1180 moveto_page home execute
domcox@0 1181 form_end
domcox@0 1182 ;;
domcox@2 1183 execute)
domcox@0 1184 xhtml_header
domcox@2 1185 form_start
domcox@2 1186 display_mode
domcox@2 1187 save_settings
domcox@2 1188 if ! (/usr/sbin/tazinst check all $INSTFILE > /dev/null); then
domcox@2 1189 page_redirection "input&CHECK=yes"
domcox@0 1190 else
domcox@29 1191 tazinst_run && moveto_page home reboot \
domcox@29 1192 || moveto_page input failed
domcox@0 1193 fi
domcox@2 1194 form_end
domcox@0 1195 ;;
domcox@0 1196 reboot)
domcox@2 1197 /usr/sbin/tazinst clean "$INSTFILE"
domcox@0 1198 reboot ;;
domcox@0 1199 failed)
domcox@0 1200 xhtml_header
domcox@2 1201 form_start
domcox@2 1202 tazinst_log
domcox@2 1203 moveto_home
domcox@2 1204 form_end
domcox@0 1205 ;;
domcox@0 1206 *)
domcox@0 1207 xhtml_header
domcox@0 1208 if check_ressources; then
domcox@2 1209 /usr/sbin/tazinst new "$INSTFILE"
domcox@0 1210 page_redirection home
domcox@0 1211 fi
domcox@0 1212 ;;
domcox@0 1213 esac
domcox@0 1214
domcox@0 1215 xhtml_footer
domcox@0 1216
domcox@0 1217 exit 0