#!/bin/sh set -e . /usr/share/debconf/confmodule log() { logger -t load-media "$@" } warning() { log "warning: $@" } MNT=/media # SPARC floppy drives don't have an eject button. Dropping to PROM # and calling eject-floppy isn't the best way to go.. eject /dev/fd0 >/dev/null 2>&1 || true T=retriever/media/loadnow A=retriever/media/loadanother U=retriever/media/unknown W=retriever/media/warning Q=$T Q_default=true # some drivers are distributed on several disk # and the disk number follows the dependecy tree # this means that disk_N can not be loaded before disk_N-1 old_disk_type="" while true; do db_set $Q $Q_default || true db_input critical $Q || true if ! db_go; then exit 10 # backup fi db_get $Q if [ "$RET" = false ]; then exit 0 fi label="" mountmedia driver if [ -e $MNT/disk.lbl ]; then label=$(cat $MNT/disk.lbl | grep "^Label" | sed "s/Label://") fi umount $MNT # a disk_N (N>=2) must be loaded after disk_N-1 disk_name=$(echo $label | cut -d':' -f1) disk_type=$(echo $label | cut -d':' -f2) disk_nb=$(echo $label | cut -d':' -f3) if [ "$label" ] ; then Q_default=true if [ "$disk_nb" ] && [ $disk_nb -eq 2 ] && \ [ "$disk_type" != "$old_disk_type" ]; then # BEGIN WITH DISK1 disk_name_1=$(echo $disk_name | sed "s/[0-9]$/1/") warning "Loading $disk_name instead of $disk_name_1" db_subst $W DISK_LABEL "$disk_type 1" db_subst $W DISK_NAME "$disk_name_1" db_input critical $W || true db_go else # DISK OK anna media-retriever old_disk_type="$disk_type" Q=$A if [ ! "$disk_nb" ] || [ $disk_nb -eq 2 ]; then Q_default=false fi fi else warning "Unknown media present" db_set $U false || true db_input critical $U || true db_go db_get $U if [ "$RET" = true ]; then anna media-retriever old_disk_type="" Q=$A Q_default=false fi fi db_capb done