X-Git-Url: https://v.licheni.net/stack/code/dboxswitch.git/blobdiff_plain/a529dbf810e21c26237889bcc20777f967c8cc3a..3e7de2135e7a5ea09bfc8de537eed95c3be0325c:/profhandler.py diff --git a/profhandler.py b/profhandler.py index 1008c4b..5ef71e5 100755 --- a/profhandler.py +++ b/profhandler.py @@ -1,4 +1,3 @@ -#!/usr/bin/python # -*- coding: utf-8 -*- """ @@ -94,7 +93,7 @@ class ProfHandler(): if self.isValidProfileName(profileName): os.makedirs(os.path.join(self.getProfileFolder(), profileName)) else: - raise AppError('Profile Name not valid') + raise AppError('Profile Name not valid.\nAllowed only ascii characters.') print("Profile "+profileName+" created.") def delProfile(self, profileName): @@ -117,26 +116,27 @@ class ProfHandler(): else: return False - def activateProfile(self, pname): - if pname in self.getProfilesList(): + def activateProfile(self, ppath): + if ppath in self.getProfilesList(): self.stopDropbox() try: - with open(os.path.join(self.getProfileFolder(), pname)) as pdir: + with open(ppath) as pdir: os.unlink(self.getDropboxDirectory()) - os.symlink(os.path.join(self.getProfileFolder(), pname), self.getDropboxDirectory()) + os.symlink(ppath, self.getDropboxDirectory()) except IOError as e: - raise AppError('Error on activating Profile: '+pname) + raise AppError('Error on activating Profile: '+ppath) self.startDropbox() else: raise AppError("Trying to acrivate non existant profile") def getDropboxDirectory(self): pl = platform.system() - if pl == 'Linux': + if pl in ('Linux', 'Darwin'): return os.path.join(os.path.expanduser('~'),".dropbox") elif pl == 'Windows': - raise NotImplementedError, "Not implemented yet." - elif pl == 'Darwin': + assert os.environ.has_key('APPDATA'), Exception('APPDATA env variable not found') + return os.path.join(os.environ['APPDATA'],'Dropbox') + else: raise NotImplementedError, "Not implemented yet."