[BACK]Return to backup.pl CVS log [TXT][DIR] Up to [local] / wpscripts / wpbackup

Annotation of wpscripts/wpbackup/backup.pl, Revision 1.1.1.1

1.1       yason       1: #!/usr/bin/perl
                      2:
                      3: use dirops;
                      4:
                      5: our @image;
                      6: our $label;
                      7: our $ret;
                      8:
                      9: dirops::walkthrough();
                     10:
                     11: while(@image = dirops::getnextblk())
                     12: {
                     13:        # for each returned block
                     14:
                     15:        $label = (split(/\//, $image[0]))[4];
                     16:        $label = $label . '-' . (split(/\//, $image[-1]))[4];
                     17:
                     18:        print "Creating directory $dirops::IMAGE/$label.. ";
                     19:        if(!mkdir("$dirops::IMAGE/$label"))
                     20:        {
                     21:            print "failed [$!]\n";
                     22:            next;
                     23:            # NOTREACHED
                     24:        }
                     25:        print "done\n";
                     26:
                     27:        # open file in just crated directory
                     28:        # XXX need to be more verbose here
                     29:        open(INDEX, ">>$dirops::IMAGE/$label/INDEX") or next;
                     30:        print INDEX scalar(localtime()) . "\n";
                     31:
                     32:        # move files there
                     33:        for(my $i = 0; $i < scalar(@image); $i++)
                     34:        {
                     35:            print "moving $image[$i] to $dirops::IMAGE/$label .. ";
                     36:            $ret = system("/bin/mv $image[$i] $dirops::IMAGE/$label");
                     37:
                     38:            if($ret != 0)
                     39:            {
                     40:                # mv returns error
                     41:                print "failed\n";
                     42:
                     43:                # XXX should be more good here
                     44:                # maybe not to die ?
                     45:                die("cannot move $image[$i] to $dirops::IMAGE/$label! $!");
                     46:
                     47:            }
                     48:            # okay
                     49:            print "done\n";
                     50:
                     51:            # update INDEX
                     52:            print INDEX "$image[$i]\n";
                     53:        }
                     54:
                     55:        close(INDEX);
                     56:
                     57:        # make ISO 9660 filesystem image
                     58:        $ret = system("/usr/local/bin/mkisofs -o $dirops::IMAGE/$label.iso $dirops::IMAGE/$label");
                     59:        if($ret != 0)
                     60:        {
                     61:            # error
                     62:            print "error in making of isofs!\n";
                     63:        }
                     64:        else
                     65:        {
                     66:            # image ready
                     67:            # XXX cleanup
                     68:            print "system(\"/bin/rm -r $dirops::IMAGE/$label\")\n";
                     69:        }
                     70: }

CVSweb