--- 42.pl 2009/07/19 13:08:33 4 +++ 42.pl 2009/07/19 13:33:51 5 @@ -11,11 +11,13 @@ my $dev = '/dev/sdb'; my $mnt = '/mnt/42'; -my ( $verbose, $init, $debug ) = ( 1 ); +my ( $verbose, $skip, $init, $debug ) = ( 0, 1 ); GetOptions( - 'init!' => \$init, - 'debug!' => \$debug, + 'verbose!' => \$verbose, + 'skip!' => \$skip, + 'init!' => \$init, + 'debug!' => \$debug, ) or die "unknown options: $!"; @@ -59,7 +61,7 @@ sleep 1; } } - warn "+ mount $node $mnt"; + warn " ready\n+ mount $node $mnt\n"; system("mount $node $mnt") == 0 or die "can't mount: $!"; } @@ -106,16 +108,23 @@ mkpath $fs unless -e $fs; $fs .= '/' . $file; -die "$fs exists!" if -e $fs; +if ( -e $fs ) { + if ( $skip ) { + warn "SKIP $fs\n"; + exit 0; + } else { + die "$fs exists! re-run with --skip\n"; + } +} my @stat = stat($path); die "can't stat $path: $!" unless @stat; warn "# $path ",$stat[7],$/; -my $size_mb = int( $stat[7] / 1000 / 1000 ) + 1; # FIXME correctly round to something? +my $size_mb = $stat[7] / 1000 / 1000; # FIXME correctly round to something? my ( $free_start, undef, $free_size ) = @{$part[0]}; -my $part_end = $free_start + $size_mb; +my $part_end = int( $free_start + $size_mb + 1 ); my $last_part = $#part;