Viewing file: index.cgi (2.6 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl # index.cgi # Display a list of known disks and partitions
require './fdisk-lib.pl'; &error_setup($text{'index_err'}); &check_fdisk();
# Work out which disks are accessible @disks = &list_disks_partitions(); @disks = grep { $access{'view'} || &can_edit_disk($_->{'device'}) } @disks; if (@disks == 1 && &can_edit_disk($disks[0]->{'device'})) { # Just one .. go direct to it's page &redirect("edit_disk.cgi?device=$disks[0]->{'device'}"); edit; }
$pdesc = $has_parted ? $text{'index_parted'} : $text{'index_fdisk'}; &ui_print_header($pdesc, $module_info{'desc'}, "", undef, 1, 1, 0, &help_search_link("fdisk", "man", "doc", "howto")); $extwidth = 250;
# Check for critical commands if ($has_parted) { &has_command("parted") || &ui_print_endpage(&text('index_ecmd', '<tt>parted</tt>')); } else { &has_command("fdisk") || &ui_print_endpage(&text('index_ecmd', '<tt>fdisk</tt>')); }
# Show a table of just disks @disks = sort { $a->{'device'} cmp $b->{'device'} } @disks; if (@disks) { ($hasctrl) = grep { defined($d->{'scsiid'}) || defined($d->{'controller'}) || $d->{'raid'} } @disks; print &ui_columns_start([ $text{'index_dname'}, $text{'index_dsize'}, $text{'index_dmodel'}, $text{'index_dparts'}, $hasctrl ? ( $text{'index_dctrl'} ) : ( ), $text{'index_dacts'} ]); foreach $d (@disks) { $ed = &can_edit_disk($d->{'device'}); $smart = &supports_smart($d); @links = ( ); @ctrl = ( ); if (defined($d->{'scsiid'}) && defined($d->{'controller'})) { push(@ctrl, &text('index_dscsi', $d->{'scsiid'}, $d->{'controller'})); } if ($d->{'raid'}) { push(@ctrl, &text('index_draid', $d->{'raid'})); } if ($ed && &supports_hdparm($d)) { # Display link to IDE params form push(@links, "<a href='edit_hdparm.cgi?". "disk=$d->{'index'}'>$text{'index_dhdparm'}</a>"); } if (&supports_smart($d)) { # Display link to smart module push(@links, "<a href='../smart-status/index.cgi?". "drive=$d->{'device'}:'>$text{'index_dsmart'}</a>"); } if ($ed) { push(@links, "<a href='blink.cgi?". "disk=$d->{'index'}'>$text{'index_blink'}</a>"); } print &ui_columns_row([ $ed ? "<a href='edit_disk.cgi?device=$d->{'device'}'>". $d->{'desc'}."</a>" : $d->{'desc'}, $d->{'size'} ? &nice_size($d->{'size'}) : "", $d->{'model'}, scalar(@{$d->{'parts'}}), $hasctrl ? ( join(" ", @ctrl) ) : ( ), &ui_links_row(\@links), ]); } print &ui_columns_end(); } else { print "<b>$text{'index_none2'}</b><p>\n"; }
&ui_print_footer("/", $text{'index'});
|