summaryrefslogtreecommitdiffstats
path: root/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountoptical.sh.svn-base
blob: c4c324d29cb198d11ce40997bda30a74b08852ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/sh
# Functions which perform mounting / unmounting and switching of optical / usb media

. ${BACKEND}/functions.sh
. ${BACKEND}/functions-parse.sh

# Displays an optical failure message
opt_fail()
{
   # If we got here, we must not have a DVD/USB we can find :(
   get_value_from_cfg installInteractive
   if [ "${VAL}" = "yes" ]
   then
     # We are running interactive, and didn't find a DVD, prompt user again
     echo_log "DISK ERROR: Unable to find installation disk!"
     echo_log "Please insert the installation disk and press enter."
     read tmp
   else
    exit_err "ERROR: Unable to locate installation DVD/USB"
   fi
};

# Performs the extraction of data to disk
opt_mount()
{
 FOUND="0"

 # Ensure we have a directory where its supposed to be
 if [ ! -d "${CDMNT}" ]
 then
   mkdir -p ${CDMNT}
 fi


 # Start by checking if we already have a cd mounted at CDMNT
 mount | grep "${CDMNT} " >/dev/null 2>/dev/null
 if [ "$?" = "0" ]
 then
   if [ -e "${CDMNT}/${INSFILE}" ]
   then
     echo "MOUNTED" >${TMPDIR}/cdmnt
     echo_log "FOUND DVD: MOUNTED"
     FOUND="1"
     return
   fi

   # failed to find optical disk
   opt_fail
   return
 fi

# Setup our loop to search for installation media
 while
 z=1
 do

   # Loop though and look for an installation disk
   for i in `ls -1 /dev/acd* /dev/cd* /dev/scd* /dev/rscd* 2>/dev/null`
   do
     # Find the CD Device
     /sbin/mount_cd9660 $i ${CDMNT}

     # Check the package type to see if we have our install data
     if [ -e "${CDMNT}/${INSFILE}" ]
     then
       echo "${i}" >${TMPDIR}/cdmnt
       echo_log "FOUND DVD: ${i}"
       FOUND="1"
       break
     fi
     /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
   done

   # If no DVD found, try USB
   if [ "$FOUND" != "1" ]
   then
     # Loop though and look for an installation disk
     for i in `ls -1 /dev/da* 2>/dev/null`
     do
       # Check if we can mount this device UFS
       /sbin/mount -r $i ${CDMNT}

       # Check the package type to see if we have our install data
       if [ -e "${CDMNT}/${INSFILE}" ]
       then
         echo "${i}" >${TMPDIR}/cdmnt
         echo_log "FOUND USB: ${i}"
         FOUND="1"
         break
       fi
       /sbin/umount ${CDMNT} >/dev/null 2>/dev/null

       # Also check if it is a FAT mount
       /sbin/mount -r -t msdosfs $i ${CDMNT}

       # Check the package type to see if we have our install data
       if [ -e "${CDMNT}/${INSFILE}" ]
       then
         echo "${i}" >${TMPDIR}/cdmnt
         echo_log "FOUND USB: ${i}"
         FOUND="1"
         break
       fi
       /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
     done
   fi # End of USB Check


   if [ "$FOUND" = "1" ]
   then
     break
   fi
   
   # Failed to find a disk, take action now
   opt_fail

 done

};

# Function to unmount optical media
opt_umount()
{
  /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
};

OpenPOWER on IntegriCloud