fixed indentation typo in gui.py
[stack/code/dboxswitch.git] / profhandler.py
old mode 100755 (executable)
new mode 100644 (file)
index d0fbb17..f2be538
@@ -63,7 +63,7 @@ class ProfHandler():
         """ Generate and returns the profiles 
             it assumes that self.pdir is defined """
         #this is generated every time to handle the case of the user renaming the directories by hand
-        return [os.path.join(self.pdir, f) for f in os.listdir(self.pdir)]
+        return sorted([os.path.join(self.pdir, f) for f in os.listdir(self.pdir)])
 
     def getProfileFolder(self):
         """ Generates, in a os dependant way, the local folder where all profiles are stored """
@@ -92,7 +92,13 @@ class ProfHandler():
 
         print("Creating a new profile")
         if self.isValidProfileName(profileName):
-            os.makedirs(os.path.join(self.getProfileFolder(), profileName)) 
+            try:
+                os.makedirs(os.path.join(self.getProfileFolder(), profileName)) 
+            except OSError,e:
+                if e.errno == errno.EEXIST:
+                    raise AppError("Profile exists.")
+                else:
+                    raise AppError(str(e))
         else:
             raise AppError('Profile Name not valid.\nAllowed only ascii characters.')
         print("Profile "+profileName+" created.")
@@ -109,7 +115,7 @@ class ProfHandler():
                 raise AppError('Profile Name does not exists')
         else:
             raise AppError('Profile Name not valid')
-        print("Profile "+profileName+" created.")
+        print("Profile "+profileName+" deleted.")
 
     def isCurrentProfile(self, ppath):
         """ Returns true if the current profile path is currently activated """
@@ -133,8 +139,6 @@ class ProfHandler():
         if ppath in self.getProfilesList():
             self.stopDropbox()
             try:
-                print self.getDropboxDirectory()
-                print ppath 
                 if pl in ('Linux','Darwin'):
                     if os.path.exists(self.getDropboxDirectory()):
                         os.unlink(self.getDropboxDirectory())
@@ -142,11 +146,16 @@ class ProfHandler():
                 else:
                     raise NotImplementedError, "Not implemented yet."
             except IOError as e:
-                raise AppError('Error on activating Profile: '+ os.path.basename(ppath))
+                raise AppError('Error on activating Profile: '+ self.getBaseProfileName(ppath))
             self.startDropbox()
         else:
             raise AppError("Trying to acrivate non existant profile")
 
+    def getBaseProfileName(self, ppath):
+        """ Returns the base name given a profile returned by getProfilesList """
+
+        return os.path.basename(ppath)
+
     def getDropboxDirectory(self):
         pl = platform.system()
         if pl in ('Linux', 'Darwin'):
@@ -160,6 +169,8 @@ class ProfHandler():
     def stopDropbox(self):
         """ Stop dropbox Daemon """
         pl = platform.system()
+        if pl == 'Linux':
+            os.system("dropbox stop")
         if pl in ('Linux','Darwin'):
             pidfile = os.path.expanduser("~/.dropbox/dropbox.pid")                    
             try: