FirstImplementation of main dialog profile manager
[stack/code/dboxswitch.git] / profhandler.py
index 5afefaa..f2be538 100644 (file)
@@ -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 """