From 2dcc6852ee2dd49f88999bb6141df1d56f8bbb3f Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Fri, 31 Jan 2003 00:50:56 +0000 Subject: create diskdrake::resize_ntfs to factorize code --- perl-install/diskdrake/interactive.pm | 11 ++++------- perl-install/diskdrake/resize_ntfs.pm | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 perl-install/diskdrake/resize_ntfs.pm (limited to 'perl-install') diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm index dd5f73a8d..a50eabed7 100644 --- a/perl-install/diskdrake/interactive.pm +++ b/perl-install/diskdrake/interactive.pm @@ -655,12 +655,9 @@ sub Resize { } } elsif (isThisFs('ntfs', $part)) { write_partitions($in, $hd) or return; - my $dev = devices::make($part->{device}); - my $r = run_program::get_stdout('ntfsresize', '-f', '-i', $dev); - if ($r =~ /minimal size: (\d+) KiB/) { - $min = $1 * 2; - $nice_resize{ntfs} = $dev; - } + require diskdrake::resize_ntfs; + $nice_resize{ntfs} = resize_fat::main->new($part->{device}, devices::make($part->{device})); + $min = $nice_resize{ntfs}->min_size or delete $nice_resize{ntfs}; } elsif (isThisFs("reiserfs", $part)) { write_partitions($in, $hd) or return; if (defined(my $free = fs::df($part))) { @@ -726,7 +723,7 @@ sub Resize { run_program::run("resize2fs", "-pf", $nice_resize{ext2}, $s); } elsif ($nice_resize{ntfs}) { log::l("ntfs resize to $part->{size} sectors"); - run_program::run_or_die('ntfsresize', '-ff', '-s' . int($part->{size}/2) . 'ki', devices::make($part->{device})); + $nice_resize{ntfs}->resize($part->{size}); } elsif ($nice_resize{reiserfs}) { log::l("reiser resize to $part->{size} sectors"); run_program::run('resize_reiserfs', '-f', '-q', '-s' . int($part->{size}/2) . 'K', devices::make($part->{device})); diff --git a/perl-install/diskdrake/resize_ntfs.pm b/perl-install/diskdrake/resize_ntfs.pm new file mode 100644 index 000000000..30e860f6f --- /dev/null +++ b/perl-install/diskdrake/resize_ntfs.pm @@ -0,0 +1,26 @@ +package diskdrake::resize_ntfs; + +use diagnostics; +use strict; + +use run_program; +use common; + + +sub new { + my ($type, $_device, $dev) = @_; + bless { dev => $dev }, $type; +} + +sub min_size { + my ($o) = @_; + my $r = run_program::get_stdout('ntfsresize', '-f', '-i', $o->{dev}); + $r =~ /minimal size: (\d+) KiB/ && $1 * 2 +} + +sub resize { + my ($o, $size) = @_; + run_program::run_or_die('ntfsresize', '-ff', '-s' . int($size / 2) . 'ki', $o->{dev}); +} + +1; -- cgit v1.2.1