################################################################################
# Copyright 2014 by Marcel Greter
# This file is part of Webmerge (GPL3)
################################################################################
package OCBNET::Webmerge::Makro::Exec;
################################################################################

use strict;
use warnings;
use File::chdir;
use Carp qw(croak);

################################################################################
# accessor methods
################################################################################

# return node type
sub type { 'MAKRO::EXE' }

################################################################################
# execute eval
################################################################################

sub execute
{
	# get arguments
	my ($node) = @_;
	# execute code

	my $cmd = $node->attr('cmd');

	my @args = map { $_->text } ($node->find('arg'));

	print "executing $cmd ", join(" ", @args), "\n";

	local $CWD = $node->workroot or die "chdir";

	my $rv = system $cmd, @args;

	croak "exec makro failed" if $?;

}

################################################################################
################################################################################
1;

