Can check if directory is a Moodle instance
authorFred <fmcell@gmail.com>
Sun, 29 Jul 2012 07:50:14 +0000 (15:50 +0800)
committerFred <fmcell@gmail.com>
Sun, 29 Jul 2012 07:50:14 +0000 (15:50 +0800)
lib/moodle.py
lib/workplace.py

index 7bf2aec..6333822 100644 (file)
@@ -48,9 +48,24 @@ class Moodle():
         info['installed'] = self.installed
         return info
 
-    def reload(self):
-        self._loaded = False
-        return self._load()
+    @staticmethod
+    def isInstance(path):
+        version = os.path.join(path, 'version.php')
+        try:
+            f = open(version, 'r')
+            lines = f.readlines()
+            f.close()
+        except:
+            return False
+        found = False
+        for line in lines:
+            if line.find('MOODLE VERSION INFORMATION') > -1:
+                found = True
+                break
+        if not found:
+            return False
+
+        return True
 
     def _load(self):
 
@@ -76,3 +91,8 @@ class Moodle():
 
         self._loaded = True
         return True
+
+    def reload(self):
+        self._loaded = False
+        return self._load()
+
index ad1e3ff..88e80e7 100644 (file)
@@ -57,26 +57,14 @@ class Workplace():
     def isMoodle(self, name):
         d = os.path.join(self.path, name)
         if not os.path.isdir(d):
-            raise Exception('Directory %s not found' % d)
+            return False
 
         wwwDir = os.path.join(d, self.wwwDir)
         dataDir = os.path.join(d, self.dataDir)
         if not os.path.isdir(wwwDir) or not os.path.isdir(dataDir):
             return False
 
-        version = os.path.join(wwwDir, 'version.php')
-        try:
-            f = open(version, 'r')
-            lines = f.readlines()
-            f.close()
-        except:
-            return False
-        found = False
-        for line in lines:
-            if line.find('MOODLE VERSION INFORMATION') > -1:
-                found = True
-                break
-        if not found:
+        if not moodle.Moodle.isInstance(wwwDir):
             return False
 
         return True