#include <stdio.h>
#include <string.h>
#include <sys/wait.h>

char *eargv[3];

void free_stuff()
{
    free( (char *) eargv[0] );
    free( (char *) eargv[1] );
}

int main( int argc, char **argv )
{
    FILE *fp;
    char logfile[40], oldlogfile[40], executable[40];
    char syscom[200];
    int pid;
    
    strcpy( executable, "/home/jac/cprogs/devel/acbot" );
    eargv[0] = (char *) malloc( 10 );
    eargv[1] = (char *) malloc( 2 );
    eargv[2] = NULL;
    strcpy( eargv[0], "acbot" );
    if( argc >= 2 && argv[1][0] == 'p' ) {
	strcpy(    logfile, "/home/jac/cprogs/devel/plogfile" );
	strcpy( oldlogfile, "/home/jac/cprogs/devel/plogold" );
	strcpy( eargv[1], "p" );
    } else if( argc >= 2 && argv[1][0] == 'm' ) {
	strcpy(    logfile, "/home/jac/cprogs/devel/mlogfile" );
	strcpy( oldlogfile, "/home/jac/cprogs/devel/mlogold" );
	strcpy( eargv[1], "m" );
    } else if( argc >= 2 && argv[1][0] == 'w' ) {
	strcpy(    logfile, "/home/jac/cprogs/devel/wlogfile" );
	strcpy( oldlogfile, "/home/jac/cprogs/devel/wlogold" );
	strcpy( eargv[1], "w" );
    } else if( argc >= 2 && argv[1][0] == 'd' ) {
	strcpy(    logfile, "/home/jac/cprogs/devel/dlogfile" );
	strcpy( oldlogfile, "/home/jac/cprogs/devel/dlogold" );
	strcpy( eargv[1], "d" );
    } else if( argc == 1 ) {
	printf( "Error -- missing doom name\n" );
	free_stuff();
	exit( 1 );
    } else if( argc == 2 ) {
	printf( "Error -- invalid doom name\n" );
	free_stuff();
	exit( 1 );
    }
    for( ;; ) {
	pid = fork();
	if( pid == -1 ) {
	    fprintf( stderr, "*** Fork failed!\n" );
	    free_stuff();
	    exit( 1 );
	}
	if( pid == 0 ) {
	    if( execve( executable, eargv, NULL ) == -1 )
		exit( -1 );
	}
	wait( NULL );
	    sprintf( syscom, "cat %s >> %s", logfile, oldlogfile );
	    system( syscom );
	sleep( 5 );
    }
    free_stuff();
    return( 0 );
}
