#!/usr/bin/perl use dirops; our @image; our $label; our $ret; dirops::walkthrough(); while(@image = dirops::getnextblk()) { # for each returned block $label = (split(/\//, $image[0]))[4]; $label = $label . '-' . (split(/\//, $image[-1]))[4]; print "Creating directory $dirops::IMAGE/$label.. "; if(!mkdir("$dirops::IMAGE/$label")) { print "failed [$!]\n"; next; # NOTREACHED } print "done\n"; # open file in just crated directory # XXX need to be more verbose here open(INDEX, ">>$dirops::IMAGE/$label/INDEX") or next; print INDEX scalar(localtime()) . "\n"; # move files there for(my $i = 0; $i < scalar(@image); $i++) { print "moving $image[$i] to $dirops::IMAGE/$label .. "; $ret = system("/bin/mv $image[$i] $dirops::IMAGE/$label"); if($ret != 0) { # mv returns error print "failed\n"; # XXX should be more good here # maybe not to die ? die("cannot move $image[$i] to $dirops::IMAGE/$label! $!"); } # okay print "done\n"; # update INDEX print INDEX "$image[$i]\n"; } close(INDEX); # make ISO 9660 filesystem image $ret = system("/usr/local/bin/mkisofs -o $dirops::IMAGE/$label.iso $dirops::IMAGE/$label"); if($ret != 0) { # error print "error in making of isofs!\n"; } else { # image ready # XXX cleanup print "system(\"/bin/rm -r $dirops::IMAGE/$label\")\n"; } }