Reviewed-by: Bernhard Bitsch bbitsch@ipfire.org
Am 01.08.2023 um 17:48 schrieb Stefan Schantl:
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
html/cgi-bin/extrahd.cgi | 71 ++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 39 deletions(-)
diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index f31bc2c44..bb0c22610 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -31,6 +31,9 @@ require "${General::swroot}/header.pl"; my %extrahdsettings = (); my $errormessage = "";
+# Hash to store the configured drives. +my %configured_drives;
- # SYSFS directory which contains all block device data. my $sysfs_block_dir = "/sys/class/block";
@@ -187,50 +190,26 @@ if ($errormessage) { ############################################################################################################################ ############################################################################################################################
- print <<END
<table border='0' width='600' cellspacing="0">
-END -; +&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'});
# Re-read mountpoints. %mountpoints = &get_mountpoints();
# Read-in the device config file. open( FILE, "< $devicefile" ) or die "Unable to read $devicefile";
my @configfile = <FILE>;
close FILE;
# Loop through the file content.
foreach my $entry (sort @configfile) {
my ($uuid, $fs, $path) = split( /\;/, $entry );
my $color="$Header::colourred";
# Check if the device is currently mounted.
if (&is_mounted($path)) {
$color=$Header::colourgreen;
}
- while (<FILE>) {
# Cut the line into pieces.
my ($uuid, $fs, $path) = split( /\;/, $_ );
print <<END
<tr><td colspan="4"> </td></tr>
<tr><td align='left'><font color=$color><b>$uuid</b></font></td>
<td align='left'>$fs</td>
<td align='left'>$path</td>
<td align='center'>
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
<input type='hidden' name='DEVICE' value='$uuid' />
<input type='hidden' name='FS' value='$fs' />
<input type='hidden' name='PATH' value='$path' />
<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' />
<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
</form></td></tr>
-END -;
# Add the found entry to the hash of configured drives.
}$configured_drives{$uuid} = $path;
- print <<END
</table>
-END -;
-&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'});
- # Close the file handle.
- close(FILE);
- print <<END
<table border='0' width='600' cellspacing="0"> END
@@ -270,21 +249,35 @@ END # Get the mountpoint. my $mountpoint = $mountpoints{$partition};
# If no mountpoint could be determined try to grab from
# configured drives.
unless($mountpoint) {
my $uuid = $uuids{$partition};
# Build uuid string.
$uuid = "UUID=" . $uuid;
# Try to obtain a possible moutpoint from configured drives.
$mountpoint = $configured_drives{$uuid} if ($configured_drives{$uuid});
}
# Check if the mountpoint is used as root or boot device. if ($mountpoint eq "/" or $mountpoint =~ "^/boot") { $disabled = "disabled";
# Check if it is mounted. } elsif(&is_mounted($mountpoint)) { $disabled = "disabled";
}
# Omit the used filesystem.
my $fs = $filesystems{$partition}; # Check if the device is used as swap.
if (&is_swap($partition)) {
} elsif (&is_swap($partition)) { $disabled = "disabled"; $mountpoint = "swap"; }
# Omit the used filesystem.
my $fs = $filesystems{$partition};
print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'>