tazinst annotate slitaz-installer @ rev 116

tazinst: typo
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Nov 09 15:11:39 2021 +0000 (2021-11-09)
parents e6d15a13acca
children
rev   line source
domcox@2 1 #!/bin/sh
al@14 2 #
domcox@2 3 # slitaz-installer - A CLI frontend to tazinst, the
domcox@2 4 # SliTaz GNU/Linux installer
domcox@2 5 #
al@68 6 # (C) 2007-2016 SliTaz - GNU General Public License v3.
domcox@2 7 #
domcox@2 8 # Authors : Christophe Lincoln <pankso@slitaz.org>
domcox@2 9 # Dominique Corbex <domcox@slitaz.org>
domcox@2 10 #
domcox@2 11
domcox@2 12 TAZINST_REQUIRED_VERSION="2.98"
domcox@2 13 BACKLIST="SliTaz GNU/Linux installer"
domcox@2 14 DIALOG=dialog
pascal@38 15 VERSION="3.96"
domcox@2 16
domcox@2 17 #--------------
domcox@2 18 # msgs section
domcox@2 19 #--------------
al@73 20 . /lib/libtaz.sh
domcox@2 21 # info msgs
domcox@2 22
al@73 23 MODE_MSG="\n$(_ 'Welcome to the slitaz-installer.')\n
al@73 24 \Z2$(_ 'Which type of installation do you want to start?')\Zn\n"
domcox@2 25
al@73 26 MEDIA_MSG="\n$(_ 'SliTaz can be installed from different media.')\n
al@73 27 \Z2$(_ 'Select a media from the following list:')\Zn\n"
domcox@2 28
paul@87 29 SOURCE_USB_MSG="\n$(_ 'You have selected the option to install SliTaz from a USB Key.')\n
al@73 30 \Z2$(_ 'Enter the partition where SliTaz Live is located:')\Zn\n"
domcox@2 31
al@73 32 SOURCE_ISO_MSG="\n$(_ "You have selected the option to install SliTaz \
al@73 33 from an ISO file located on a local disk.")\n
al@73 34 \Z2$(_ 'Please, select a file below:')\Zn\n"
domcox@2 35
al@73 36 SOURCE_WEB_MSG="\n$(_ 'You have selected the option to install SliTaz from the web.')\n
al@73 37 \\Z2$(_ 'Please, select a version:')\Zn\n"
domcox@2 38
al@73 39 SOURCE_DEF_MSG="\n$(_ 'Select the source:')\n"
domcox@2 40
al@73 41 ROOT_UUID_DEFAULT_MSG="\n$(_ 'Drive selection')\n
al@73 42 \Z2$(_ 'Please specify the partition where to install SliTaz:')\Zn\n"
domcox@2 43
al@73 44 ROOT_UUID_UPGRADE_MSG="$(_ "The installer will upgrade the existing \
domcox@2 45 SliTaz system by saving all configuration files and the list of installed \
domcox@2 46 packages. Then, it will clean the partition and install the new version \
domcox@2 47 of SliTaz, restore the configuration files and reinstall any packages which \
al@73 48 are not present on the CD-ROM.")
al@73 49 $(_ 'You will need an active internet connection before upgrading.')
al@73 50 \Z2$(_ 'Partition containing the system to upgrade:')\Zn\n"
domcox@2 51
al@73 52 ROOT_FORMAT_MSG="\n$(_ "Only the filesystems actually installed on your \
domcox@2 53 system are listed. If you intend to use another filesystem, you have to \
al@73 54 install it before. Unless you know what you are doing, it is safe to use ext2, \
al@73 55 ext3 or ext4.")\n
al@73 56 \Z2$(_ 'To format this partition, please select a filesystem below:')\Zn\n"
domcox@2 57
al@73 58 HOME_UUID_MSG="\n$(_ 'Separate /home partition')\n
al@73 59 \Z2$(_ 'Please, select the partition to use:')\Zn\n"
domcox@2 60
al@73 61 HOSTNAME_MSG="\n$(_ "Hostname configuration allows you to specify the \
domcox@2 62 machine name. The hostname is used internally to identify the host on the \
al@73 63 network. This value can be changed after the system is installed.")\n
al@73 64 \Z2$(_ 'Enter a hostname:')\Zn\n)"
domcox@2 65
al@73 66 ROOT_PWD_MSG="\n$(_ "The root administrator privilege lets you manage \
domcox@2 67 and configure the full system. A root user can damage your system so you \
al@73 68 should always setup a strong password with special characters and/or numbers.")\n
al@73 69 \Z2$(_ 'Enter the password for root:')\Zn\n"
domcox@2 70
al@73 71 USER_LOGIN_MSG="\n$(_ "The default user for the system will have their \
domcox@2 72 personal files stored in /home/*user* (and will be automatically added to the \
al@73 73 audio group)")\n
al@73 74 \Z2$(_ 'Enter the name of the first user:')\Zn\n"
domcox@2 75
al@73 76 USER_PWD_MSG="\n$(_ 'The password for default user.')
al@73 77 $(_ "It may be a security risk if too weak and should always be strong \
domcox@2 78 if you use a SSH connection through the web.")\n
al@73 79 \Z2$(_ 'Enter the password for the default user:')\Zn\n"
domcox@2 80
al@73 81 END_OF_INSTALL_MSG="\n$(_ "Installation is now finished, you can exit \
al@73 82 the installer or reboot on your new SliTaz GNU/Linux operating system.")"
domcox@2 83
domcox@2 84
domcox@2 85 # questions msgs
domcox@2 86
al@73 87 ASK_ROOT_FORMAT="\n$(_ "The next step lets you format the target \
domcox@2 88 partition. Choose between robust, stable and/or journaled filesystem. If the \
al@73 89 partition is already formated you can skip this stage, if not just accept.")\n
al@73 90 $(_ 'Warning! formating a partition will destroy all current data.')\n
al@73 91 \Z2$(_ 'Do you wish to format the partition?')\Zn)"
domcox@2 92
al@73 93 ASK_HOME_UUID="\n$(_ "On most GNU/Linux systems users personal \
domcox@2 94 files are stored in the directory /home. Home can be on a separate partition \
al@73 95 or another hard disk.")\n
al@73 96 \Z2$(_ 'Do you want to use a separate Home partition?')\Zn)"
domcox@2 97
al@73 98 ASK_HOME_FORMAT="\n$(_ "/home will be installed on a separate partition. \
domcox@2 99 The next step lets you format the /home partition. If the partition \
al@73 100 is already formated you can skip this stage, if not just accept.")
al@73 101 $(_ 'Warning! formating a partition will destroy all current data.')\n
al@73 102 \Z2$(_ 'Do you wish to format the /home partition?')\Zn)"
domcox@2 103
al@73 104 ASK_BOOTLOADER="\n$(_ "You have now the option to install a \
al@73 105 bootloader which is capable of booting almost any kind of operating system.")\n
al@73 106 $(_ "If you want to use an existing bootloader installation, skip this step \
paul@16 107 and configure your bootloader to boot SliTaz (refer to your bootloader \
al@73 108 documentation on how to do this).")\n
al@73 109 \Z2$(_ 'Install a bootloader?')\Zn\n"
domcox@2 110
al@73 111 ASK_WINBOOT="\n$(_ "Do you want to implement a dual-boot with \
domcox@2 112 Windows? At start-up, you will be asked whether you want to boot into \
al@73 113 Windows or SliTaz GNU/Linux.")\n
al@73 114 \Z2$(_ 'Install a dual-boot with Windows?')\n"
domcox@2 115
al@73 116 ASK_SUMMARY="$(_ "Installation settings summary and last chance to \
domcox@2 117 cancel or restart all installation steps.")\n
al@73 118 \Z2$(_ 'Go and install SliTaz?')\Zn\n\n"
domcox@2 119
al@73 120 EMPTY_MENU_MSG="\n$(_ 'Sorry, no device, nor file found or available.')"
domcox@2 121
domcox@2 122 #---------------"
domcox@2 123 # check section
domcox@2 124 #---------------
domcox@2 125
domcox@2 126 check_tazinst()
domcox@2 127 {
domcox@2 128 local version
domcox@2 129 # search for tazinst
domcox@2 130 if ! [ -x /usr/sbin/tazinst ] ; then
al@73 131 _ 'Error 2:'
al@73 132 _ "The lightweight SliTaz HDD installer '%s' is missing." 'tazinst'
al@73 133 _ 'Check permissions, or reinstall the %s package.' 'slitaz-installer'
al@73 134 newline; exit 2
domcox@2 135 fi
domcox@2 136 # check version
domcox@2 137 version=$(tazinst version | tr -d '[:alpha:]')
domcox@2 138 if ! (echo "$version" | awk -v req="$TAZINST_REQUIRED_VERSION" '
domcox@2 139 {ver=$0+0}{ if (ver < req) exit 1}') ; then
al@73 140 _ 'Error 2:'
al@73 141 _ 'The lightweight SliTaz HDD installer tazinst (%s) is not at the required version (%s).' \
al@73 142 "$version" "$TAZINST_REQUIRED_VERSION"
al@73 143 _ 'Use %s in an xterm or reinstall the %s package.' 'tazinst' 'slitaz-installer'
al@73 144 newline; exit 2
domcox@2 145 fi
domcox@2 146 }
domcox@2 147
domcox@2 148 #----------------
domcox@2 149 # dialog section
domcox@2 150 #----------------
domcox@2 151
domcox@2 152 # select msgs to display
domcox@2 153 msg()
domcox@2 154 {
domcox@2 155 local option="$1"
domcox@2 156 case "$option" in
domcox@2 157 mode)
domcox@2 158 printf "$MODE_MSG" ;;
domcox@2 159 media)
al@73 160 printf "$MEDIA_MSG" ;;
domcox@2 161 source)
domcox@2 162 local media="$(tazinst get media)"
domcox@2 163 case "$media" in
domcox@2 164 usb)
domcox@2 165 printf "$SOURCE_USB_MSG" ;;
domcox@2 166 iso)
domcox@2 167 printf "$SOURCE_ISO_MSG" ;;
domcox@2 168 web)
domcox@2 169 printf "$SOURCE_WEB_MSG" ;;
domcox@2 170 *)
domcox@2 171 printf "$SOURCE_DEF_MSG" ;;
domcox@2 172 esac ;;
domcox@2 173 root_uuid)
domcox@2 174 local mode="$(tazinst get mode)"
pascal@98 175 if [ "$mode" = 'upgrade' ]; then printf "$ROOT_UUID_UPGRADE_MSG";
al@73 176 else printf "$ROOT_UUID_DEFAULT_MSG"; fi ;;
domcox@2 177 root_format|home_format)
domcox@2 178 printf "$ROOT_FORMAT_MSG" ;;
domcox@2 179 home_uuid)
domcox@2 180 printf "$HOME_UUID_MSG" ;;
domcox@2 181 hostname)
domcox@2 182 printf "$HOSTNAME_MSG" ;;
domcox@2 183 root_pwd)
domcox@2 184 printf "$ROOT_PWD_MSG" ;;
domcox@2 185 user_login)
domcox@2 186 printf "$USER_LOGIN_MSG" ;;
domcox@2 187 user_pwd)
domcox@2 188 printf "$USER_PWD_MSG" ;;
domcox@2 189 esac
domcox@2 190 }
domcox@2 191
domcox@2 192 # select questions to ask
domcox@2 193 ask()
domcox@2 194 {
domcox@2 195 local option="$1"
domcox@2 196 case "$option" in
domcox@2 197 root_format)
domcox@2 198 printf "$ASK_ROOT_FORMAT" ;;
domcox@2 199 home_uuid)
domcox@2 200 printf "$ASK_HOME_UUID" ;;
domcox@2 201 home_format)
domcox@2 202 printf "$ASK_HOME_FORMAT" ;;
domcox@2 203 bootloader)
domcox@2 204 printf "$ASK_BOOTLOADER" ;;
domcox@2 205 winboot)
domcox@2 206 printf "$ASK_WINBOOT" ;;
domcox@2 207 summary)
domcox@2 208 printf "$ASK_SUMMARY"
domcox@2 209
domcox@2 210 esac
domcox@2 211 }
domcox@2 212
domcox@2 213 # make text dialog compatible
domcox@2 214 text2dlg()
domcox@2 215 {
domcox@2 216 printf "$@" | awk '
domcox@2 217 {
domcox@2 218 num=split($0,list)
domcox@2 219 printf "%s ",$1
domcox@2 220 for (x=2; x<=num; x++){
domcox@2 221 if (x!=num)
domcox@2 222 printf "%s ", list[x]
domcox@2 223 else
domcox@2 224 printf "%s\n", list[x]
domcox@2 225 }
domcox@2 226 }'
domcox@2 227 }
domcox@2 228
domcox@2 229 # menu items msgs
domcox@2 230 list_items()
domcox@2 231 {
domcox@2 232 local data ref
domcox@2 233 case "$1" in
domcox@2 234 mode)
domcox@2 235 text2dlg "$(tazinst help mode)" ;;
domcox@2 236 media)
domcox@2 237 text2dlg "$(tazinst help media)" ;;
domcox@2 238 usb)
domcox@2 239 tazinst list usb ;;
domcox@2 240 iso)
domcox@2 241 tazinst list iso | awk '{print $0, " "}' ;;
domcox@2 242 web)
domcox@2 243 text2dlg "$(tazinst help web)" ;;
domcox@2 244 root_uuid)
domcox@2 245 tazinst list uuid ;;
domcox@2 246 root_format)
domcox@2 247 for i in $(tazinst list format); do
domcox@2 248 text2dlg "$(tazinst help root_format | grep $i)"
domcox@2 249 done ;;
domcox@2 250 home_uuid)
domcox@2 251 tazinst list uuid ;;
domcox@2 252 home_format)
domcox@2 253 for i in $(tazinst list format); do
domcox@2 254 text2dlg "$(tazinst help home_format | grep $i)"
domcox@2 255 done ;;
domcox@2 256 bootloader)
domcox@2 257 text2dlg "$(tazinst help bootloader)" ;;
domcox@2 258 esac
domcox@2 259 }
domcox@2 260
domcox@2 261 summary_list()
domcox@2 262 {
domcox@2 263 local option
domcox@2 264 for option in $SEQUENCE; do
domcox@2 265 case "$option" in
domcox@2 266 mode)
domcox@2 267 local mode="$(tazinst get mode)"
al@73 268 printf "\n\n$(_ 'Mode: %s')" \
al@73 269 "$(tazinst help mode | grep "$mode")" ;;
domcox@2 270 media)
al@73 271 printf "\n$(_ 'From media: %s')" "$(tazinst get media)" ;;
domcox@2 272 source)
domcox@2 273 local source="$(tazinst get source)"
domcox@2 274 [ -n "$source" ] && printf " ($source)" ;;
domcox@2 275 root_uuid)
al@73 276 printf "\n$(_ 'To the disk: %s')" "$(tazinst get root_uuid)" ;;
domcox@2 277 root_format)
domcox@2 278 local root_format="$(tazinst get root_format)"
al@73 279 if [ -n "$root_format" ];
al@73 280 then printf " $(_ '(Formatting as %s)' "$root_format")";
al@73 281 else printf " $(_ '(No formatting)')"; fi ;;
domcox@2 282 home_uuid)
domcox@2 283 local home_uuid="$(tazinst get home_uuid)"
al@73 284 if [ -n "$home_uuid" ];
al@73 285 then printf "\n$(_ 'Separate /home is: %s' "$home_uuid")";
al@73 286 else printf "\n$(_ 'No separate /home partition')"; fi ;;
domcox@2 287 home_format)
domcox@2 288 local home_format="$(tazinst get home_format)"
al@73 289 if [ -n "$home_uuid" ]; then if [ -n "$home_format" ];
al@73 290 then printf " $(_ '(Formatting as %s)' "$home_format")";
al@73 291 else printf " $(_ '(No /home formatting)')"; fi; fi ;;
domcox@2 292 hostname)
al@73 293 printf "\n$(_ 'Hostname: %s' "$(tazinst get hostname)")" ;;
domcox@2 294 user_login)
al@73 295 printf "\n$(_ 'User login: %s' "$(tazinst get user_login)")" ;;
domcox@2 296 bootloader)
domcox@2 297 local bootloader="$(tazinst get bootloader)"
al@73 298 if [ -n "$bootloader" ];
al@73 299 then printf "\n$(_ 'Bootloader: installed')";
al@73 300 else printf "\n$(_ 'No bootloader installed')"; fi ;;
domcox@2 301 winboot)
domcox@2 302 local winboot="$(tazinst get winboot)"
al@73 303 if [ -n "$winboot" ];
al@73 304 then printf "$(_ ", with Windows dual-boot")";
al@73 305 else printf "$(_ ", no dual-boot")"; fi ;;
domcox@2 306 esac
domcox@2 307 done
domcox@2 308 }
domcox@2 309
domcox@2 310 dialog_menu()
domcox@2 311 {
domcox@2 312 local option="$1" items="$2" sighup=1 sigint=2 sigquit=3
domcox@2 313 if [ -z "$items" ]; then
domcox@2 314 "$DIALOG" \
domcox@2 315 --title " Select $option " --clear \
domcox@2 316 --msgbox "$EMPTY_MENU_MSG" 10 41
domcox@2 317 fi
domcox@2 318 tempfile="$(mktemp)"
domcox@2 319 trap "rm -f $tempfile ; exit 1" $sighup $sigint $sigquit
domcox@2 320 "$DIALOG" \
domcox@2 321 --clear --colors \
al@73 322 --title " $(_ 'Select %s' "$option") " \
domcox@2 323 --backtitle "$BACKLIST" \
domcox@2 324 --default-item "$(tazinst get "$option")" \
al@73 325 --ok-label "$(_ 'Next')" \
al@73 326 --cancel-label "$(_ 'Back')" \
domcox@2 327 --menu "$(msg $option)" 18 70 6 $items 2> "$tempfile"
domcox@2 328 retval="$?"
domcox@2 329 choice=$(cat "$tempfile")
domcox@2 330 rm -f "$tempfile"
domcox@2 331 case "$retval" in
domcox@2 332 0)
domcox@2 333 # a '$choice' was selected
domcox@2 334 tazinst set "$option" "$choice" && move up || \
domcox@2 335 "$DIALOG" \
al@73 336 --title " $(_ 'Select %s' "$option") " --clear \
domcox@2 337 --msgbox "\n$(tazinst check "$option" 2>&1)" 10 41 ;;
domcox@2 338 1|255)
domcox@2 339 # voluntary exit or ESC pressed
domcox@2 340 move back ;;
domcox@2 341 esac
domcox@2 342 return "$retval"
domcox@2 343 }
domcox@2 344
domcox@2 345 dialog_yesno()
domcox@2 346 {
domcox@2 347 local option="$1"
domcox@2 348 "$DIALOG" \
domcox@2 349 --clear --colors \
al@73 350 --title " $(_ 'Select %s' "$option") " \
domcox@2 351 --backtitle "$BACKLIST" \
al@73 352 --ok-label "$(_ 'Yes')" \
al@73 353 --cancel-label "$(_ 'Back')" \
al@73 354 --extra-button --extra-label "$(_ 'No')" \
domcox@2 355 --yesno "$(ask $option)" 18 70
domcox@2 356 retval="$?"
domcox@2 357 case "$retval" in
domcox@2 358 # 0: yes
domcox@2 359 1) # cancel
domcox@2 360 move back ;;
domcox@2 361 3) # no
domcox@2 362 tazinst unset "$option"
domcox@2 363 move up ;;
domcox@2 364 255)# ESC pressed
domcox@2 365 move back ;;
domcox@2 366 esac
domcox@2 367 return "$retval"
domcox@2 368 }
domcox@2 369
domcox@2 370 dialog_input()
domcox@2 371 {
domcox@2 372 local option="$1" sighup=1 sigint=2 sigquit=3
domcox@2 373 local value="$(tazinst get "$option")"
domcox@2 374 tempfile="$(mktemp)"
domcox@2 375 trap "rm -f $tempfile; exit 1" $sighup $sigint $sigquit
domcox@2 376 $DIALOG \
domcox@2 377 --clear --colors \
al@73 378 --title " $(_ 'Select %s' "$option") " \
al@73 379 --ok-label "$(_ 'Next')" \
al@73 380 --cancel-label "$(_ 'Back')" \
domcox@2 381 --inputbox "$(msg $option)" 16 51 "$value" 2> "$tempfile"
domcox@2 382 retval="$?"
domcox@2 383 choice="$(cat $tempfile)"
domcox@2 384 rm -f "$tempfile"
domcox@2 385 case "$retval" in
domcox@2 386 0) # new value
domcox@2 387 tazinst set "$option" "$choice"
domcox@2 388 retcode=$?
domcox@2 389 [ "$retcode" -gt "0" ] && \
domcox@2 390 "$DIALOG" \
al@73 391 --title " $(_ 'Select %s' "$option") " --clear \
domcox@2 392 --msgbox "\n$(tazinst check "$option" 2>&1)" 10 41
domcox@2 393 # continue if no error (0) or only warning (>127)
domcox@2 394 [ "$retcode" -le "0" ] && move up
domcox@2 395 [ "$retcode" -gt "127" ] && move up ;;
domcox@2 396 1) # cancel pressed."
domcox@2 397 move back ;;
domcox@2 398 255)# ESC pressed
domcox@2 399 move back ;;
domcox@2 400 esac
domcox@2 401 return "$retval"
domcox@2 402 }
domcox@2 403
domcox@2 404 # tiny summary and last chance to cancel or restart
domcox@2 405 summary()
domcox@2 406 {
domcox@2 407 "$DIALOG" \
domcox@2 408 --clear --colors \
al@73 409 --title " $(_ 'Summary') " \
domcox@2 410 --backtitle "$BACKLIST" \
al@73 411 --yes-label "$(_ 'Yes')" \
al@73 412 --no-label "$(_ 'No')" \
domcox@2 413 --yesno "$(ask summary)$(summary_list)" 18 70
domcox@2 414 retval="$?"
domcox@2 415 case "$retval" in
domcox@2 416 0) # yes
domcox@2 417 move up ;;
domcox@2 418 1) # Cancel
al@73 419 _ 'SliTaz install cancelled.'; echo
domcox@28 420 exit 1 ;;
domcox@2 421 3) # no
domcox@2 422 return 3 ;;
domcox@2 423 255)# ESC pressed
domcox@2 424 move back ;;
domcox@2 425 esac
domcox@2 426 }
domcox@2 427
domcox@2 428 #--------------------
domcox@2 429 # sequencing section
domcox@2 430 #--------------------
domcox@2 431
domcox@2 432 # get list of settings
domcox@2 433 sequence()
domcox@2 434 {
domcox@2 435 SEQUENCE="$(tazinst get settings) summary"
domcox@2 436 MAX="$(echo "$SEQUENCE" | wc -w)"
domcox@2 437 }
domcox@2 438
domcox@2 439 # get the setting name corresponding to an index in the list of settings
domcox@2 440 key()
domcox@2 441 {
domcox@2 442 local index="$1" num=1 string
domcox@2 443 for string in $SEQUENCE; do
domcox@2 444 [ "$num" = "$index" ] && printf "$string"
domcox@2 445 num=$(($num + 1))
domcox@2 446 done
domcox@2 447 }
domcox@2 448
domcox@2 449 # move index in list of settings
domcox@2 450 move()
domcox@2 451 {
domcox@2 452 local way="$1"
domcox@2 453 case "$way" in
domcox@2 454 init)
domcox@2 455 INDEX=1
domcox@2 456 WAY="up" ;;
domcox@2 457 up)
domcox@2 458 INDEX=$(($INDEX+1))
domcox@2 459 WAY="up" ;;
domcox@2 460 back)
domcox@2 461 INDEX=$(($INDEX-1))
domcox@2 462 WAY="down" ;;
domcox@2 463 away)
domcox@2 464 # continue to move in the same way (move up or move back)
domcox@2 465 [ "$WAY" = "up" ] && INDEX=$(($INDEX+1)) || INDEX=$(($INDEX-1)) ;;
domcox@2 466 esac
domcox@2 467 }
domcox@2 468
domcox@2 469 source_menu()
domcox@2 470 {
domcox@2 471 media="$(tazinst get media)"
domcox@2 472 case "$media" in
domcox@2 473 cdrom)
domcox@2 474 tazinst unset source || exit 2
domcox@2 475 move away ;;
domcox@2 476 usb)
domcox@2 477 dialog_menu source "$(list_items usb)" ;;
domcox@2 478 iso)
domcox@2 479 dialog_menu source "$(list_items iso)" ;;
domcox@2 480 web)
domcox@2 481 dialog_menu source "$(list_items web)" ;;
domcox@2 482 *)
domcox@2 483 move away ;;
domcox@2 484 esac
domcox@2 485 }
domcox@2 486
domcox@2 487 #--------------
domcox@2 488 # main section
domcox@2 489 #--------------
domcox@2 490
domcox@2 491 check_tazinst && tazinst new
domcox@2 492 tazinst get mode || exit 1
domcox@2 493 sequence
domcox@2 494 move init
domcox@2 495
domcox@2 496 while [ "$INDEX" -le "$MAX" ]
domcox@2 497 do
domcox@2 498 OPTION="$(key $INDEX)"
domcox@2 499 case "$OPTION" in
domcox@2 500 "")
domcox@2 501 exit 0 ;;
domcox@2 502 mode)
domcox@2 503 dialog_menu mode "$(list_items mode)" && sequence ;;
domcox@2 504 media)
domcox@2 505 dialog_menu media "$(list_items media)" ;;
domcox@2 506 source)
domcox@2 507 source_menu ;;
domcox@2 508 root_uuid)
domcox@2 509 dialog_menu root_uuid "$(list_items root_uuid)" ;;
domcox@2 510 root_format)
domcox@2 511 dialog_yesno root_format && \
domcox@2 512 dialog_menu root_format "$(list_items root_format)" ;;
domcox@2 513 home_uuid)
domcox@2 514 dialog_yesno home_uuid && \
domcox@2 515 dialog_menu home_uuid "$(list_items home_uuid)" ;;
domcox@2 516 home_format)
domcox@2 517 if [ -n "$(tazinst get home_uuid)" ]; then
domcox@2 518 dialog_yesno home_format && \
domcox@2 519 dialog_menu home_format "$(list_items home_format)"
domcox@2 520 else
domcox@2 521 tazinst unset home_format
domcox@2 522 move away
domcox@2 523 fi ;;
domcox@2 524 hostname)
domcox@2 525 dialog_input hostname ;;
domcox@2 526 root_pwd)
domcox@2 527 dialog_input root_pwd ;;
domcox@2 528 user_login)
domcox@2 529 dialog_input user_login ;;
domcox@2 530 user_pwd)
domcox@2 531 dialog_input user_pwd ;;
domcox@2 532 bootloader)
domcox@2 533 dialog_yesno bootloader && \
domcox@2 534 { tazinst set bootloader "auto" && move up; } || \
domcox@2 535 { tazinst unset bootloader ;
domcox@2 536 tazinst unset winboot ; } ;;
domcox@2 537 winboot)
domcox@2 538 if [ -n "$(tazinst get bootloader)" ]; then
domcox@2 539 dialog_yesno winboot && \
domcox@2 540 { tazinst set winboot "auto" && move up; } || \
domcox@2 541 tazinst unset winboot
domcox@2 542 else
domcox@2 543 move away
domcox@2 544 fi ;;
domcox@2 545 summary)
domcox@2 546 summary ;;
domcox@2 547 *)
domcox@2 548 exit 1 ;;
domcox@2 549 esac
domcox@2 550 done
domcox@2 551
domcox@2 552 # execute process
domcox@2 553 tazinst execute | awk 'BEGIN{
domcox@2 554 printf "XXX\n0\n"
domcox@2 555 }
domcox@2 556 {
domcox@2 557 num=$1+0
domcox@2 558 if (num>=1){
domcox@2 559 printf "XXX\nXXX\n%s\n", num
domcox@2 560 printf "\n%s\n",substr($0,length($1)+2)
domcox@2 561 }
domcox@2 562 else
domcox@2 563 printf "%s\n",$0
domcox@2 564 }
domcox@2 565 END{
domcox@2 566 print "XXX"
al@73 567 }' | $DIALOG --title " $(_ 'SliTaz Installer') " --gauge "$(_ 'Installing...')" 20 70 0
domcox@2 568
domcox@2 569
domcox@2 570 # end_of_install
domcox@2 571 if tazinst log | grep -q "x-x-" ; then
domcox@2 572 tazinst clean
al@73 573 $DIALOG --title " $(_ 'Installation complete') " \
domcox@2 574 --backtitle "$BACKLIST" \
al@73 575 --yes-label "$(_ 'Exit')" \
al@73 576 --no-label "$(_ 'Reboot')" \
domcox@2 577 --clear --colors --yesno "$END_OF_INSTALL_MSG" 18 70
domcox@2 578 retval=$?
domcox@2 579 case $retval in
domcox@2 580 0)
domcox@2 581 exit 0 ;;
domcox@2 582 1)
domcox@2 583 reboot || reboot -f ;;
domcox@2 584 255)
al@73 585 _ 'ESC pressed.'; newline; exit 0 ;;
domcox@2 586 esac
domcox@2 587 else
al@73 588 $DIALOG --title " $(_ 'Process not completed') " \
domcox@2 589 --backtitle "$BACKLIST" \
domcox@2 590 --clear --msgbox \
domcox@2 591 "$(tazinst log | awk '$1 == "-x-x-",$1 == "x-x-x"')" 18 70
domcox@2 592 retval=$?
domcox@2 593 case $retval in
domcox@2 594 0)
domcox@2 595 exit 0 ;;
domcox@2 596 255)
al@73 597 _ 'ESC pressed.'; newline; exit 0 ;;
domcox@2 598 esac
domcox@2 599 fi