package Iotta::Output::MkName; use strict; require Iotta::Elem; our @ISA = ("Iotta::Elem"); sub run { my $s = shift; my $meta = shift; my $data = shift; my $outp = $s->outp; my $inp = $s->inp; #print "using template ".$s->templ." for $outp\n"; $$meta{$outp} = $s->templ; my $f = $$meta{$inp}; my $dir = $f; $$meta{$outp} =~ s/\@INPUT\@/$f/g; $f =~ s#^.*/##; $dir =~ s#^(.*)/.*?#$1#; $$meta{$outp} =~ s/\@BASE\@/$f/g; $f =~ s#\..*?$##; $$meta{$outp} =~ s/\@STEM\@/$f/g; $$meta{$outp} =~ s/\@DIR\@/$dir/g; $s->next->run ($meta, $data) if ($s->next); return 0; } sub setup { my $s = shift; my $o = shift; $s->templ ($$o{template}) if $$o{template}; $s->inp ($$o{"prop-in"}) if $$o{"prop-in"}; $s->outp ($$o{"prop-out"}) if $$o{"prop-out"}; } sub initialize { my $self = shift; $self->SUPER::initialize (@_); $self->{templ}='@INPUT@'; $self->{inp}='input'; $self->{outp}='output'; } 1;