aboutsummaryrefslogtreecommitdiff
path: root/src/functionunlink.cpp
blob: 11cad23330033e4c044c99cc1e4f7f4348076cb1 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * Copyright (C) 2007-2014 Xagasoft, All rights reserved.
 *
 * This file is part of the Xagasoft Build and is released under the
 * terms of the license contained in the file LICENSE.
 */

#include "functionunlink.h"

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

#include <bu/plugger.h>
PluginInterface3( pluginFunctionUnlink, unlink, FunctionUnlink, Function,
        "Mike Buland", 0, 1 );

FunctionUnlink::FunctionUnlink()
{
}

FunctionUnlink::~FunctionUnlink()
{
}

Bu::String FunctionUnlink::getName() const
{
    return "unlink";
}

Variable FunctionUnlink::call( Variable &/*input*/, VarList lParams )
{
    //sio << "Unlink called: " << lParams << sio.nl;
    for( VarList::iterator p = lParams.begin(); p; p++ )
    {
        switch( (*p).getType() )
        {
            case Variable::typeString:
                //sio << " xx> " << (*p).getString() << sio.nl;
                unlink( (*p).getString().getStr() );
                break;

            case Variable::typeList:
                //sio << " xx>";
                for( VarList::iterator i = (*p).begin(); i; i++ )
                {
                    //sio << " " << (*i).getString();
                    unlink( (*i).getString().getStr() );
                }
                //sio << sio.nl;
                break;

            default:
                throw Bu::ExceptionBase("Hey, wrong type passed.");
                break;
        }
    }

    return Variable();
}