refs bug #429
[enigma2.git] / lib / python / Components / Harddisk.py
index 637c8898a71927a6dbf80ef96ac6e1a1df6f9739..e8e612a40af93e7510c2114f03809dbaadb46ed5 100755 (executable)
@@ -6,11 +6,7 @@ import time
 from Components.Console import Console
 
 def readFile(filename):
-       try:
-               file = open(filename)
-       except IOError:
-               return ""
-
+       file = open(filename)
        data = file.read().strip()
        file.close()
        return data
@@ -170,7 +166,7 @@ class Harddisk:
                lines = mounts.readlines()
                mounts.close()
 
-               cmd = "/bin/umount"
+               cmd = "umount"
 
                for line in lines:
                        parts = line.strip().split(" ")
@@ -181,12 +177,12 @@ class Harddisk:
                return (res >> 8)
 
        def createPartition(self):
-               cmd = 'printf "0,\n;\n;\n;\ny\n" | /sbin/sfdisk -f ' + self.disk_path
+               cmd = 'printf "0,\n;\n;\n;\ny\n" | sfdisk -f ' + self.disk_path
                res = system(cmd)
                return (res >> 8)
 
        def mkfs(self):
-               cmd = "/sbin/mkfs.ext3 "
+               cmd = "mkfs.ext3 "
                if self.diskSize() > 4 * 1024:
                        cmd += "-T largefile "
                cmd += "-m0 -O dir_index " + self.partitionPath("1")
@@ -206,7 +202,7 @@ class Harddisk:
                for line in lines:
                        parts = line.strip().split(" ")
                        if path.realpath(parts[0]) == self.partitionPath("1"):
-                               cmd = "/bin/mount -t ext3 " + parts[0]
+                               cmd = "mount -t ext3 " + parts[0]
                                res = system(cmd)
                                break
 
@@ -222,7 +218,7 @@ class Harddisk:
        def fsck(self):
                # We autocorrect any failures
                # TODO: we could check if the fs is actually ext3
-               cmd = "/sbin/fsck.ext3 -f -p " + self.partitionPath("1")
+               cmd = "fsck.ext3 -f -p " + self.partitionPath("1")
                res = system(cmd)
                return (res >> 8)
 
@@ -230,7 +226,7 @@ class Harddisk:
                part = self.partitionPath(n)
 
                if access(part, 0):
-                       cmd = '/bin/dd bs=512 count=3 if=/dev/zero of=' + part
+                       cmd = 'dd bs=512 count=3 if=/dev/zero of=' + part
                        res = system(cmd)
                else:
                        res = 0
@@ -294,7 +290,10 @@ class Harddisk:
        # any access has been made to the disc. If there has been no access over a specifed time,
        # we set the hdd into standby.
        def readStats(self):
-               l = readFile("/sys/block/%s/stat" % self.device)
+               try:
+                       l = open("/sys/block/%s/stat" % self.device).read()
+               except IOError:
+                       return -1,-1
                (nr_read, _, _, _, nr_write) = l.split()[:5]
                return int(nr_read), int(nr_write)
 
@@ -323,7 +322,7 @@ class Harddisk:
                l = sum(stats)
                print "sum", l, "prev_sum", self.last_stat
 
-               if l != self.last_stat: # access
+               if l != self.last_stat and l >= 0: # access
                        print "hdd was accessed since previous check!"
                        self.last_stat = l
                        self.last_access = t