package Iotta::Output::File; use strict; require Iotta::Elem; our @ISA = ("Iotta::Elem"); sub run { my $s = shift; my $meta = shift; my $data = shift; my $file = $$meta{output}; my $dir = $file; $dir =~ s#^(.*)/.*?$#$1#; mkdirp ($dir); #$file =~ $s->transform; print STDERR " writing ($file)...\n"; open (FILE, ">$file") || return 1; print FILE $data; close FILE; #print $meta."\n"; $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; } sub initialize { my $self = shift; $self->SUPER::initialize (@_); } 1;