#!/usr/local/bin/perl # Show partitions on one disk use strict; use warnings; require './bsdfdisk-lib.pl'; our (%in, %text, $module_name); &ReadParse(); my $extwidth = 300; # Get the disk my @disks = &list_disks_partitions(); my ($disk) = grep { $_->{'device'} eq $in{'device'} } @disks; $disk || &error($text{'disk_egone'}); &ui_print_header($disk->{'desc'}, $text{'disk_title'}, ""); # Show disk details my @info = ( ); push(@info, &text('disk_dsize', &nice_size($disk->{'size'}))); if ($disk->{'model'}) { push(@info, &text('disk_model', $disk->{'model'})); } push(@info, &text('disk_cylinders', $disk->{'cylinders'})); print &ui_links_row(\@info),"
\n";
# Show partitions table
my @links = ( "".$text{'disk_add'}."" );
if (@{$disk->{'parts'}}) {
print &ui_links_row(\@links);
print &ui_columns_start([
$text{'disk_no'},
$text{'disk_type'},
$text{'disk_extent'},
$text{'disk_size'},
$text{'disk_start'},
$text{'disk_end'},
$text{'disk_use'},
]);
foreach my $p (@{$disk->{'parts'}}) {
# Create images for the extent
my $ext = "";
$ext .= sprintf "
",
$extwidth*($p->{'start'} - 1) /
$disk->{'cylinders'};
$ext .= sprintf "
",
$p->{'extended'} ? "ext" : "use",
$extwidth*($p->{'end'} - $p->{'start'}) /
$disk->{'cylinders'};
$ext .= sprintf "
",
$extwidth*($disk->{'cylinders'} - ($p->{'end'} - 1)) /
$disk->{'cylinders'};
# Create usage description
my @stat = &fdisk::device_status($p->{'device'});
my $stat = &fdisk::device_status_link(@stat);
# Add row for the partition
my $url = "edit_part.cgi?device=".&urlize($disk->{'device'}).
"&part=".$p->{'number'};
print &ui_columns_row([
"$p->{'number'}",
"".&fdisk::tag_name($p->{'type'})."",
$ext,
&nice_size($p->{'size'}),
$p->{'start'},
$p->{'end'},
$stat,
]);
}
print &ui_columns_end();
}
else {
print "$text{'disk_none'}
\n"; } print &ui_links_row(\@links); &ui_print_footer("", $text{'index_return'});