package Iotta::Output::Metafile;
use strict;
require Iotta::Elem;
our @ISA = ("Iotta::Elem");
sub run {
my $s = shift;
my $meta = shift;
my $data = shift;
my $file = $s->prepend . $$meta{input} . $s->append;
my $dir = $file;
$dir =~ s#^(.*)/.*?$#$1#;
mkdirp ($dir);
print STDERR " writing meta ($file)...\n";
open (FILE, ">$file") || return 1;
foreach (keys %$meta) {
print FILE "'$_' = '$$meta{$_}'\n";
}
close FILE;
$s->next->run ($meta, $data) if ($s->next);
return 0;
}
sub mkdirp {
my $dir = shift;
my $d;
my @dirs = split /\//, $dir;
for (@dirs) {
$d .= "$_/";
if (! -d $d) {
#print STDERR "creating: $d\n";
mkdir $d;
}
}
}
sub setup {
my $s = shift;
my $o = shift;
$s->append ($$o{append});
$s->prepend ($$o{prepend});
}
sub initialize {
my $self = shift;
$self->SUPER::initialize (@_);
$self->{prepend}="";
$self->{append}="";
}
1;
Platon Group <platon@platon.sk> http://platon.sk/
|