94 lines
3.1 KiB
C
94 lines
3.1 KiB
C
/* @(#)create_hosts.c 1.1 94/10/31 SMI */
|
|
|
|
/*
|
|
* Copyright (c) 1988 by Sun Microsystems, Inc.
|
|
*/
|
|
|
|
#include "install.h"
|
|
|
|
extern char *sprintf(), *where_are_we();
|
|
|
|
create_hosts(sys, tape_drive_type, tapehost,
|
|
tapehost_ip, tape_device, progname)
|
|
struct system_info *sys;
|
|
char *tape_drive_type, *tapehost, *tapehost_ip, *tape_device, *progname;
|
|
{
|
|
register i;
|
|
char arch[25], path[MINSIZE];
|
|
FILE *hosts, *archlist, *extractlist;
|
|
char filename[MAXPATHLEN];
|
|
char buf[BUFSIZE];
|
|
char cmd[BUFSIZE];
|
|
char *where;
|
|
|
|
if( (hosts = fopen(HOSTS,"w")) == NULL ) {
|
|
(void) fprintf(stderr,
|
|
"%s:\tUnable to open /etc/hosts", progname);
|
|
exit(1);
|
|
}
|
|
(void) fprintf(hosts,"#\n");
|
|
(void) fprintf(hosts,"# If the NIS is running, this file is only consulted when booting\n");
|
|
(void) fprintf(hosts,"#\n");
|
|
(void) fprintf(hosts,"# These lines added by the Suninstall Program\n");
|
|
(void) fprintf(hosts,"#\n");
|
|
if ( strlen(sys->ip0) )
|
|
(void) fprintf(hosts,"%s\t%s loghost\n",sys->ip0,sys->hostname);
|
|
if ( strlen(sys->ip1) )
|
|
(void) fprintf(hosts,"%s\t%s\n",sys->ip1,sys->hostname1);
|
|
(void) sprintf(filename,"%sarchlist",INSTALL_DIR);
|
|
if((archlist = fopen(filename,"r")) != NULL ) {
|
|
while ( fgets(buf,BUFSIZ,archlist) != NULL ) {
|
|
(void) sscanf(buf,"arch=%s path=%s\n",arch,path);
|
|
if ( strlen(arch) ) {
|
|
(void) sprintf(filename,"%sextractlist.%s",
|
|
INSTALL_DIR,arch);
|
|
if((extractlist = fopen(filename,"r"))
|
|
!= NULL ) {
|
|
for (i=0;
|
|
fgets(buf,BUFSIZ,extractlist) != NULL;
|
|
i++ ) {
|
|
switch (i) {
|
|
case 0:
|
|
(void) sscanf(buf,"device=%s", tape_device);
|
|
break;
|
|
case 1:
|
|
(void) sscanf(buf,"drive=%s", tape_drive_type);
|
|
break;
|
|
case 2:
|
|
if ( !strcmp(tape_drive_type,"remote") ) {
|
|
(void) sscanf(buf, "tapehost=%s\n", tapehost);
|
|
}
|
|
break;
|
|
case 3:
|
|
if ( !strcmp(tape_drive_type,"remote") ) {
|
|
(void) sscanf(buf,"tapehostip=%s", tapehost_ip);
|
|
(void) fprintf(hosts, "%s\t%s\n", tapehost_ip,tapehost);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
(void) fclose(extractlist);
|
|
}
|
|
}
|
|
}
|
|
(void) fclose(archlist);
|
|
}
|
|
(void) fprintf(hosts,"\n");
|
|
if ( strlen(sys->ip0) )
|
|
(void) fprintf(hosts,"127.0.0.1 localhost\n");
|
|
else
|
|
(void) fprintf(hosts,"127.0.0.1 %s localhost loghost\n",sys->hostname);
|
|
(void) fprintf(hosts,"#\n");
|
|
(void) fprintf(hosts,"# End of lines added by the Suninstall Program\n");
|
|
(void) fprintf(hosts,"#\n");
|
|
(void) fclose(hosts);
|
|
|
|
where = where_are_we();
|
|
|
|
(void) sprintf(path,"%s/etc",where);
|
|
(void) makedirpath(path);
|
|
|
|
(void) sprintf(cmd,"cp %s %s 2>/dev/null\n", HOSTS, path);
|
|
(void) system(cmd);
|
|
}
|