]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/extrahd.cgi
extra hd: fix mountpoint check.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / extrahd.cgi
index 0afe9ef6e6ae54f9fcfe1cb55d6e213f36e63a18..2ea41788654939dc488cfce277b49d6c574d2f73 100644 (file)
@@ -1,16 +1,28 @@
 #!/usr/bin/perl
-#
-# IPFire CGIs
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) The IPFire Team
-#
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 use strict;
 # enable only the following on debugging purpose
-use warnings;
-use CGI::Carp 'fatalsToBrowser';
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
@@ -36,8 +48,8 @@ my $partitionentry = "";
 my $devicefile = "/var/ipfire/extrahd/devices";
 my $scanfile = "/var/ipfire/extrahd/scan";
 my $partitionsfile = "/var/ipfire/extrahd/partitions";
-system("/usr/local/bin/scanhd ide");
-system("/usr/local/bin/scanhd partitions");
+system("/usr/local/bin/extrahdctrl scanhd ide");
+system("/usr/local/bin/extrahdctrl scanhd partitions");
 
 &Header::showhttpheaders();
 
@@ -46,6 +58,7 @@ $extrahdsettings{'PATH'} = '';
 $extrahdsettings{'FS'} = '';
 $extrahdsettings{'DEVICE'} = '';
 $extrahdsettings{'ACTION'} = '';
+$extrahdsettings{'UUID'} = '';
 
 &General::readhash("${General::swroot}/extrahd/settings", \%extrahdsettings);
 &Header::getcgihash(\%extrahdsettings);
@@ -77,7 +90,7 @@ if ($extrahdsettings{'ACTION'} eq $Lang::tr{'add'})
        if ( "$ok" eq "true" ) {
                open(FILE, ">> $devicefile" ) or die "Unable to write $devicefile";
                print FILE <<END
-$extrahdsettings{'DEVICE'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'};
+UUID=$extrahdsettings{'UUID'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'};
 END
 ;
        system("/usr/local/bin/extrahdctrl mount $extrahdsettings{'PATH'}");
@@ -114,7 +127,7 @@ if ($errormessage) {
 ############################################################################################################################
 ############################################################################################################################
 
-&Header::openbox('100%', 'center', 'ExtraHD');
+&Header::openbox('100%', 'center', $Lang::tr{'extrahd'});
        open( FILE, "< $devicefile" ) or die "Unable to read $devicefile";
        @devices = <FILE>;
        close FILE;
@@ -126,12 +139,12 @@ END
        {
                @deviceline = split( /\;/, $deviceentry );
                my $color="$Header::colourred";
-               if ( `/bin/mount | /bin/fgrep $deviceline[2] | /bin/fgrep /dev/$deviceline[0]` ) {
+               if ( ! `/bin/mountpoint $deviceline[2] | grep " not "`  ) {
                        $color=$Header::colourgreen;
                }
                print <<END
                        <tr><td colspan="5">&nbsp;
-                       <tr><td align='center'><font color=$color><b>/dev/$deviceline[0]</b></font>
+                       <tr><td align='center'><font color=$color><b>$deviceline[0]</b></font>
                                <td align='center'>$deviceline[1]
                                <td align='center'>$deviceline[2]
                                <td align='center'>
@@ -152,7 +165,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'center', 'Gefundene Laufwerke');
+&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'});
        print <<END
                <table border='0' width='600' cellspacing="0">
 END
@@ -168,7 +181,7 @@ END
                @scanline = split( /\;/, $scanentry );
                print <<END
                        <tr><td colspan="5">&nbsp;
-                       <tr><td align='center'><b>/dev/$scanline[0]</b>
+                       <tr><td align='left' colspan="2"><b>/dev/$scanline[0]</b>
                                <td align='center' colspan="2">$scanline[1]
 END
 ;
@@ -193,18 +206,21 @@ END
                                $size = int($partitionline[1] / 1024);
                                print <<END
                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                               <tr><td align="center" bgcolor='#EAEAEA'>/dev/$partitionline[0]
-                               <td align="center" bgcolor='#EAEAEA'>$Lang::tr{'size'} $size MB
-                               <td align='center' bgcolor='#EAEAEA'><select name="FS">
+                               <tr><td align="left" colspan=5><b>UUID=$partitionline[2]</b></td></tr>
+                               <tr>
+                               <td align="list">/dev/$partitionline[0]</td>
+                               <td align="center">$Lang::tr{'size'} $size MB
+                               <td align="center"><select name="FS">
                                                                                <option value="auto">auto</option>
                                                                                <option value="ext3">ext3</option>
                                                                                <option value="reiserfs">reiserfs</option>
                                                                                <option value="vfat">fat</option>
                                                                                <option value="ntfs-3g">ntfs (experimental)</option>
                                                                           </select>
-                               <td align="center" bgcolor='#EAEAEA'><input type='text' name='PATH' value=/mnt/harddisk />
+                               <td align="center"><input type='text' name='PATH' value=/mnt/harddisk />
                                <td align="center">
                                        <input type='hidden' name='DEVICE' value='$partitionline[0]' />
+                                       <input type='hidden' name='UUID' value='$partitionline[2]' />
                                        <input type='hidden' name='ACTION' value=$Lang::tr{'add'} />
                                        <input type='image' alt=$Lang::tr{'add'} src='/images/add.gif' />
                                </form>