1995-04-27 20:05:10 +02:00
/*
* The new sysinstall program .
*
* This is probably the last attempt in the ` sysinstall ' line , the next
* generation being slated to essentially a complete rewrite .
*
1995-05-20 02:13:14 +02:00
* $ Id : media . c , v 1.6 1995 / 05 / 17 14 : 39 : 51 jkh Exp $
1995-04-27 20:05:10 +02:00
*
* Copyright ( c ) 1995
* Jordan Hubbard . 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 ,
* verbatim and that no modifications are made prior to this
* point in the file .
* 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 .
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement :
* This product includes software developed by Jordan Hubbard
* for the FreeBSD Project .
* 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
* endorse or promote products derived from this software without specific
* prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ` ` 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 JORDAN HUBBARD OR HIS PETS 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 , LIFE 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 .
*
*/
1995-05-16 13:37:27 +02:00
# include <stdio.h>
# include "sysinstall.h"
1995-04-27 20:05:10 +02:00
/*
1995-05-16 04:53:31 +02:00
* Return 1 if we successfully found and set the installation type to
1995-04-27 20:05:10 +02:00
* be a CD .
*/
int
1995-05-01 23:56:32 +02:00
mediaSetCDROM ( char * str )
1995-04-27 20:05:10 +02:00
{
1995-05-20 02:13:14 +02:00
Device * devs ;
int cnt ;
1995-05-16 04:53:31 +02:00
if ( OnCDROM = = TRUE )
return 1 ;
else {
1995-05-20 02:13:14 +02:00
devs = deviceFind ( NULL , MEDIA_TYPE_CDROM ) ;
cnt = deviceCount ( devs ) ;
if ( ! cnt ) {
msgConfirm ( " No CDROM devices found! Please check that your system's \n configuration is correct and that the CDROM drive is of a supported \n type. For more information, consult the hardware guide \n in the Doc menu. " ) ;
return 0 ;
}
else if ( cnt > 1 ) {
/* put up a menu */
}
else {
mediaDevice = devs [ 0 ] ;
1995-05-16 04:53:31 +02:00
}
}
1995-04-27 20:05:10 +02:00
return 0 ;
}
1995-04-29 21:33:06 +02:00
/*
1995-05-16 04:53:31 +02:00
* Return 1 if we successfully found and set the installation type to
1995-04-29 21:33:06 +02:00
* be a floppy
*/
int
1995-05-01 23:56:32 +02:00
mediaSetFloppy ( char * str )
1995-04-29 21:33:06 +02:00
{
1995-05-16 04:53:31 +02:00
dmenuOpenSimple ( & MenuMediaFloppy ) ;
if ( getenv ( MEDIA_DEVICE ) ) {
variable_set2 ( MEDIA_TYPE , " floppy " ) ;
return 1 ;
}
1995-04-29 21:33:06 +02:00
return 0 ;
}
/*
1995-05-16 04:53:31 +02:00
* Return 1 if we successfully found and set the installation type to
1995-04-29 21:33:06 +02:00
* be a DOS partition .
*/
int
1995-05-01 23:56:32 +02:00
mediaSetDOS ( char * str )
1995-04-29 21:33:06 +02:00
{
1995-05-16 04:53:31 +02:00
Device * * devs ;
devs = deviceFind ( NULL , DEVICE_TYPE_DISK ) ;
if ( ! devs )
msgConfirm ( " No disk devices found! " ) ;
1995-04-29 21:33:06 +02:00
return 0 ;
}
/*
1995-05-16 04:53:31 +02:00
* Return 1 if we successfully found and set the installation type to
1995-04-29 21:33:06 +02:00
* be a tape drive .
*/
int
1995-05-01 23:56:32 +02:00
mediaSetTape ( char * str )
1995-04-29 21:33:06 +02:00
{
return 0 ;
}
/*
* Return 0 if we successfully found and set the installation type to
* be an ftp server
*/
int
1995-05-01 23:56:32 +02:00
mediaSetFTP ( char * str )
1995-04-29 21:33:06 +02:00
{
1995-05-16 13:37:27 +02:00
dmenuOpenSimple ( & MenuMediaFTP ) ;
1995-05-16 04:53:31 +02:00
if ( getenv ( MEDIA_DEVICE ) ) {
variable_set2 ( MEDIA_TYPE , " ftp " ) ;
return 1 ;
}
1995-04-29 21:33:06 +02:00
return 0 ;
}
/*
* Return 0 if we successfully found and set the installation type to
* be some sort of mounted filesystem ( it ' s also mounted at this point )
*/
int
1995-05-01 23:56:32 +02:00
mediaSetFS ( char * str )
1995-04-29 21:33:06 +02:00
{
return 0 ;
}
1995-05-16 04:53:31 +02:00
FILE *
1995-05-16 13:37:27 +02:00
mediaOpen ( char * parent , char * me )
1995-05-16 04:53:31 +02:00
{
char fname [ FILENAME_MAX ] ;
1995-05-20 02:13:14 +02:00
if ( ! mediaVerify ( ) )
1995-05-16 04:53:31 +02:00
return NULL ;
1995-05-20 02:13:14 +02:00
1995-05-16 04:53:31 +02:00
if ( parent )
snprintf ( fname , FILENAME_MAX , " %s%s " , parent , me ) ;
else
strncpy ( fname , me , FILENAME_MAX ) ;
1995-05-20 02:13:14 +02:00
/* XXX mediaDevice points to where we want to get it from */
1995-05-16 13:37:27 +02:00
return NULL ;
}
Boolean
mediaExtractDist ( FILE * fp )
{
return TRUE ;
}
Boolean
mediaGetType ( void )
{
char * cp ;
dmenuOpenSimple ( & MenuMedia ) ;
cp = getenv ( MEDIA_TYPE ) ;
if ( ! cp )
return FALSE ;
return TRUE ;
1995-05-16 04:53:31 +02:00
}
1995-05-16 13:37:27 +02:00
/* Return TRUE if all the media variables are set up correctly */
Boolean
mediaVerify ( void )
{
1995-05-20 02:13:14 +02:00
if ( ! mediaDevice ) {
msgConfirm ( " Media type not set! Please select a media type \n from the Installation menu before proceeding. " ) ;
1995-05-17 16:40:00 +02:00
return FALSE ;
}
1995-05-16 13:37:27 +02:00
return TRUE ;
}