aboutsummaryrefslogtreecommitdiff
path: root/src/conditionfileexists.cpp
blob: fd21716d7ac6f0d4269e0471cb1997e79d32d873 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "conditionfileexists.h"
#include "target.h"

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

#include <bu/sio.h>
using namespace Bu;

#include <bu/plugger.h>
PluginInterface3( pluginConditionFileExists, fileExists, ConditionFileExists,
        Condition, "Mike Buland", 0, 1 );

ConditionFileExists::ConditionFileExists()
{
}

ConditionFileExists::~ConditionFileExists()
{
}

bool ConditionFileExists::shouldExec( class Runner &r, Target &rTarget )
{
    for( StrList::const_iterator j = rTarget.getOutputList().begin(); j; j++ )
    {
        // If any input exists, then return true, we should exec.
        if( !access( (*j).getStr(), F_OK ) )
        {
            return true;
        }
    }

    return false; 
}

Condition *ConditionFileExists::clone()
{
    return new ConditionFileExists();
}