aboutsummaryrefslogtreecommitdiff
path: root/bsdconfig/share/media/cdrom.subr
diff options
context:
space:
mode:
Diffstat (limited to 'bsdconfig/share/media/cdrom.subr')
-rw-r--r--bsdconfig/share/media/cdrom.subr217
1 files changed, 0 insertions, 217 deletions
diff --git a/bsdconfig/share/media/cdrom.subr b/bsdconfig/share/media/cdrom.subr
deleted file mode 100644
index bbbd638fec6e..000000000000
--- a/bsdconfig/share/media/cdrom.subr
+++ /dev/null
@@ -1,217 +0,0 @@
-if [ ! "$_MEDIA_CDROM_SUBR" ]; then _MEDIA_CDROM_SUBR=1
-#
-# Copyright (c) 2012-2013 Devin Teske
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# $FreeBSD$
-#
-############################################################ INCLUDES
-
-BSDCFG_SHARE="/usr/share/bsdconfig"
-. $BSDCFG_SHARE/common.subr || exit 1
-f_dprintf "%s: loading includes..." media/cdrom.subr
-f_include $BSDCFG_SHARE/device.subr
-f_include $BSDCFG_SHARE/dialog.subr
-f_include $BSDCFG_SHARE/media/common.subr
-f_include $BSDCFG_SHARE/struct.subr
-f_include $BSDCFG_SHARE/variable.subr
-
-BSDCFG_LIBE="/usr/libexec/bsdconfig"
-f_include_lang $BSDCFG_LIBE/include/messages.subr
-
-############################################################ GLOBALS
-
-CDROM_MOUNTED=
-CDROM_PREVIOUSLY_MOUNTED=
-CDROM_INIT_QUIET=
-
-############################################################ FUNCTIONS
-
-# f_media_set_cdrom
-#
-# Return success if we both found and set the media type to be a CD.
-#
-f_media_set_cdrom()
-{
- f_media_close
-
- local devs ndevs
- f_device_find "" $DEVICE_TYPE_CDROM devs
- f_count ndevs $devs
-
- if [ ${ndevs:=0} -eq 0 ]; then
- f_interactive && f_show_msg "$msg_no_cd_dvd_devices_found"
- return $FAILURE
- elif [ $ndevs -eq 1 ]; then
- f_struct_copy $devs device_media
- else
- local dev
- local title="$msg_choose_a_cd_dvd_type"
- local prompt="$msg_please_select_a_cd_dvd_drive"
- local hline=
-
- dev=$( f_device_menu \
- "$title" "$prompt" "$hline" $DEVICE_TYPE_CDROM \
- 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD ) ||
- return $FAILURE
-
- f_struct_copy "$dev" device_media
- fi
-
- f_struct device_media || return $FAILURE
-}
-
-# f_media_init_cdrom $device
-#
-# Initializes the CDROM media device. Returns success if able to mount the CD
-# device using mount_cd9660(8).
-#
-f_media_init_cdrom()
-{
- local funcname=f_media_init_cdrom
- local dev="$1" devname err
-
- f_struct "$dev" get devname devname || return $FAILURE
- f_dprintf "Init routine called for CDROM device. devname=[%s]" \
- "$devname"
-
- if [ "$CDROM_MOUNTED" ]; then
- f_dprintf "CDROM device already mounted."
- return $SUCCESS
- fi
-
- if [ ! -e "$MOUNTPOINT" ]; then
- f_eval_catch $funcname mkdir 'mkdir -p "%s"' "$MOUNTPOINT" ||
- return $FAILURE
- fi
-
- if ! f_eval_catch -dk err $funcname mount_cd9660 \
- 'mount_cd9660 "%s" "%s"' "$devname" "$MOUNTPOINT"
- then
- err="${err#mount_cd9660: }"; err="${err#$devname: }"
- case "$err" in
- "Device busy")
- # Perhaps the CDROM drive is already mounted as /cdrom
- if f_mounted /cdrom; then
- CDROM_PREVIOUSLY_MOUNTED=1
- MOUNTPOINT=/cdrom
- err=
- fi
- ;;
- esac
- case "$err" in
- "") : good ;; # no error
- *)
- [ "$CDROM_INIT_QUIET" ] ||
- f_show_msg "$msg_error_mounting_device" \
- "$devname" "$MOUNTPOINT" "$err"
- return $FAILURE
- esac
- fi
- CDROM_MOUNTED=1
-
- : xxx # /cdrom.inf has been deprecated since 9.0-R
-
- # No other CDROM media validation at this time
-
- return $SUCCESS
-}
-
-# f_media_get_cdrom $device $file [$probe_type]
-#
-# Returns data from $file on a mounted CDROM device. Similar to cat(1). If
-# $probe_type is present and non-NULL, returns success if $file exists. If
-# $probe_type is equal to $PROBE_SIZE, prints the size of $file in bytes to
-# standard-out.
-#
-f_media_get_cdrom()
-{
- local dev="$1" file="$2" probe_type="$3"
- local name
-
- $dev get name name
- f_dprintf "f_media_get_cdrom: dev=[%s] file=[%s] probe_type=%s" \
- "$name" "$file" "$probe_type"
-
- f_media_generic_get "$MOUNTPOINT" "$file" "$probe_type"
-}
-
-# f_media_shutdown_cdrom $device
-#
-# Shuts down the CDROM device. Return status should be ignored.
-#
-f_media_shutdown_cdrom()
-{
- local funcname=f_media_shutdown_cdrom
- local dev="$1" err
-
- [ "$CDROM_MOUNTED" ] || return $FAILURE
-
- if [ "$CDROM_PREVIOUSLY_MOUNTED" ]; then
- CDROM_MOUNTED=
- return $SUCCESS
- fi
-
- if ! f_eval_catch -dk err $funcname umount \
- 'umount -f "%s"' "$MOUNTPOINT"
- then
- err="${err#umount: }"; err="${err#*: }"
- f_show_msg "$msg_could_not_unmount_the_cdrom_dvd" \
- "$MOUNTPOINT" "$err"
- else
- CDROM_MOUNTED=
- fi
-}
-
-# f_media_eject_cdrom $device
-#
-# Eject the media from the CDROM device. Returns success.
-#
-f_media_eject_cdrom()
-{
- local funcname=f_media_eject_cdrom
- local dev="$1" name devname err
-
- f_struct "$dev" || return $SUCCESS
- $dev get name name || return $SUCCESS
- $dev get devname devname || return $SUCCESS
-
- # Don't eject labels
- case "$name" in */*) return $SUCCESS; esac
-
- f_dprintf "Ejecting CDROM/DVD at %s" "$devname"
- if ! f_eval_catch -dk err $funcname cdcontrol \
- 'cdcontrol -f "%s" eject' "$devname"
- then
- f_dprintf "Could not eject the CDROM/DVD from %s: %s" \
- "$devname" "${err#cdcontrol: }"
- fi
- return $SUCCESS
-}
-
-############################################################ MAIN
-
-f_dprintf "%s: Successfully loaded." media/cdrom.subr
-
-fi # ! $_MEDIA_CDROM_SUBR