Esempio n. 1
0
static int DoPMake( pmake_data *data )
{
    pmake_list  *curr;
    int         res;
    char        cmd[PMAKE_COMMAND_SIZE];
    int         rc = 0;

    for( curr = data->dir_list; curr != NULL; curr = curr->next ) {
        res = SysChdir( curr->dir_name );
        if( res != 0 ) {
            if( !data->ignore_errors ) {
                return( res );
            }
            Log( false, "'cd %s' non-zero return: %d\n", curr->dir_name, res );
            rc = res;
            continue;
        }
        getcwd( IncludeStk->cwd, sizeof( IncludeStk->cwd ) );
        if( data->display )
            LogDir( IncludeStk->cwd );
        PMakeCommand( data, cmd );
        res = SysRunCommand( cmd );
        if( res != 0 ) {
            if( !data->ignore_errors ) {
                return( res );
            }
            Log( false, "'%s' non-zero return: %d\n", cmd, res );
            rc = res;
        }
    }
    return( rc );
}
Esempio n. 2
0
static int DoPMake( pmake_data *data )
{
    pmake_list  *curr;
    int         res;
    char        cmd[256];
    int         rc;

    res = 0;
    for( curr = data->dir_list; curr != NULL; curr = curr->next ) {
        rc = chdir( curr->dir_name );
        if( rc != 0 ) {
            res = rc;
            break;
        }
        if( data->display ) {
            fputs( "==== ", stdout );
            puts( curr->dir_name );
        }
        PMakeCommand( data, cmd );
        rc = RunCommand( cmd );
        if( rc != 0 ) {
            res = rc;
            if( data->ignore_err == 0 ) {
                break;
            }
        }
    }
    return( res );
}
Esempio n. 3
0
static unsigned DoPMake( pmake_data *data, bool ignore_errors )
{
    pmake_list  *curr;
    unsigned    res;
    char        cmd[256];

    for( curr = data->dir_list; curr != NULL; curr = curr->next ) {
        res = SysChdir( curr->dir_name );
        if( res != 0 ) {
            if( ignore_errors ) {
                Log( FALSE, "non-zero return: %d\n", res );
                continue;
            } else {
                return( res );
            }
        }
        getcwd( IncludeStk->cwd, sizeof( IncludeStk->cwd ) );
        if( data->display )
            LogDir( IncludeStk->cwd );
        PMakeCommand( data, cmd );
        res = SysRunCommand( cmd );
        if( res != 0 ) {
            if( ignore_errors ) {
                Log( FALSE, "non-zero return: %d\n", res );
            } else {
                return( res );
            }
        }
    }
    return( 0 );
}
Esempio n. 4
0
static void WriteCmdFile( pmake_data *data )
{
    FILE        *fp;
    pmake_list  *curr;

    fp = fopen( TMPBAT, "w+t" );
    if( fp == NULL ) {
        printf( "PMAKE: unable to open %s for writing: %s\n",
            TMPBAT, strerror( errno ) );
        exit( EXIT_FAILURE );
    }
#ifdef __UNIX__
    fprintf( fp, "#!/bin/sh\n" );
    fprintf( fp, "rm "TMPBAT"\n" );
    fchmod( fileno( fp ), 0777 );
#else
    fprintf( fp, "@echo off\n" );
#endif
    for( curr = data->dir_list; curr != NULL; curr = curr->next ) {
        if( curr->dir_name[0] != '\0' ) {
            fprintf( fp, "cd %s\n", curr->dir_name );
            if( data->display ) {
                fprintf( fp, "cdsay .\n" );
            }
        }
        PMakeCommand( data, buffer );
        fprintf( fp, "%s\n", buffer );
    }
    getcwd( buffer, sizeof( buffer ) );
    fprintf( fp, "cd %s\n", buffer );
    if( fclose( fp ) ) {
        printf( "PMAKE: unable to close %s: %s\n",
            TMPBAT, strerror( errno ) );
        exit( EXIT_FAILURE );
    }
}