X-Git-Url: https://v.licheni.net/stack/code/dboxswitch.git/blobdiff_plain/ee451b0ae08e635da522f3381b2a34d4e1c8b594..f7f331ca8166fd8b4a0c56f065d0021f954ee4c5:/profhandler.py diff --git a/profhandler.py b/profhandler.py old mode 100755 new mode 100644 index 18dda25..f2be538 --- a/profhandler.py +++ b/profhandler.py @@ -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'):