2004-01-20 21:32:43 +03:00
/*
* Guillaume Cottenceau ( gc @ mandrakesoft . com )
*
* Copyright 2000 MandrakeSoft
*
* This software may be freely redistributed under the terms of the GNU
* public license .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*
*/
/*
* Portions from Erik Troan ( ewt @ redhat . com )
*
* Copyright 1996 Red Hat Software
*
*/
# include <stdlib.h>
# include <unistd.h>
# include <fcntl.h>
# include <stdarg.h>
# include <stdio.h>
# include <string.h>
# include <time.h>
# include <errno.h>
# include "stage1.h"
# include "log.h"
static FILE * logfile = NULL ;
void vlog_message ( const char * s , va_list args )
{
fprintf ( logfile , " * " ) ;
vfprintf ( logfile , s , args ) ;
fprintf ( logfile , " \n " ) ;
fflush ( logfile ) ;
}
void log_message ( const char * s , . . . )
{
va_list args ;
if ( ! logfile ) {
fprintf ( stderr , " Log is not open! \n " ) ;
return ;
}
va_start ( args , s ) ;
vlog_message ( s , args ) ;
va_end ( args ) ;
return ;
}
void log_perror ( char * msg )
{
log_message ( " %s: %s " , msg , strerror ( errno ) ) ;
}
void open_log ( void )
{
2010-11-18 14:56:54 +03:00
int i ;
int timeout = 60 ;
2004-01-20 21:32:43 +03:00
if ( ! IS_TESTING ) {
2010-11-18 14:56:54 +03:00
for ( i = 0 ; i < timeout ; i + + ) {
logfile = fopen ( " /dev/tty3 " , " w " ) ;
2010-11-19 23:28:16 +03:00
if ( logfile ! = NULL ) break ;
fprintf ( stderr , " \r waiting for /dev/tty3: %d " , i ) ;
2010-11-18 14:56:54 +03:00
sleep ( 1 ) ;
}
2004-01-20 21:32:43 +03:00
if ( ! logfile )
logfile = fopen ( " /tmp/install.log " , " a " ) ;
}
else
logfile = fopen ( " debug.log " , " w " ) ;
}
void close_log ( void )
{
if ( logfile ) {
log_message ( " stage1: disconnecting life support systems " ) ;
fclose ( logfile ) ;
}
}