#!/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'});