- open(NEW, ">", "$form->{templates}/$file")
- or $form->error("$form->{templates}/$file : $ERRNO");
+ my $newdir = File::Spec->catdir($oldcurrdir, $form->{templates});
+
+ find(
+ sub
+ {
+ next if ($_ eq ".");
+
+ if (-d $_) {
+ if (!mkdir (File::Spec->catdir($newdir, $File::Find::name))) {
+ chdir($oldcurrdir);
+ $form->error("$ERRNO: mkdir $File::Find::name");
+ }
+ } elsif (-l $_) {
+ if (!symlink (readlink($_),
+ File::Spec->catfile($newdir, $File::Find::name))) {
+ chdir($oldcurrdir);
+ $form->error("$ERRNO: symlink $File::Find::name");
+ }
+ } elsif (-f $_) {
+ if (!copy($_, File::Spec->catfile($newdir, $File::Find::name))) {
+ chdir($oldcurrdir);
+ $form->error("$ERRNO: cp $File::Find::name");
+ }
+ }
+ }, "./");
+
+ chdir($oldcurrdir);