Reviewed-by: Bernhard Bitsch Am 01.08.2023 um 17:48 schrieb Stefan Schantl: > Signed-off-by: Stefan Schantl > --- > 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 > -; > +&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 = ; > - 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 () { > + # Cut the line into pieces. > + my ($uuid, $fs, $path) = split( /\;/, $_ ); > > - print < - > - > - > - > - > -END > -; > + # Add the found entry to the hash of configured drives. > + $configured_drives{$uuid} = $path; > } > - print < -
 
$uuid$fs$path > -
> - > - > - > - > - > -
> -END > -; > > -&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); > + # Close the file handle. > + close(FILE); > + > print < > 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 < >